PeopleSoft 开发 02 对象基础

来源:互联网 发布:淘宝优惠券公众号 编辑:程序博客网 时间:2024/05/13 22:37
PeopleSoft 预定义了部分类 (such as Array, File, Field, SQL, and so on). 也可以自己创建类

实例化对象
一般通过 built-in 函数或对象的方法实例化对象.
一些对象可以通过data buffer已经存在的数据进行实例化。
一些对象可以通过已创建的 definition 实例化. 
Local field &MyField&MyField = GetField();
&ROWSET = GetRowSet();/*the next two lines of code are equivalent */&ROW = &ROWSET.GetRow(5);&ROW = &ROWSET(5);
GetXXX(),可以通过data buffer 中已经存在的数据实例化对象,已经包含了数据。包括GetField, GetRecord等。

&REC2 = CreateRecord(EMP_CHKLST_ITM);
&RS = CreateRowset(Record.LS_EPORT_WRK);

CreateXXX(),是通过定义的definition创建对象。其中没有数据。CreateObject, CreateArray, CreateRecord

对于没有built-in 方法的对象,只能通过Session Class 创建。

属性方法和方法调用
可以通过 方法对象的属性或方法。这一方式是很常见的。 
&MYFIELD.Visible = False
&MYROW = &MYROWSET.GetCurrEffRow();

有些对象会提供一种默认方法的方式,这样可以省略方法名直接采用对象名+参数的方法:
&FIELD = &RECORD.GetField(FIELD.EMPLID);&FIELD = &RECORD.EMPLID;
&ROWSET = GetRowSet();/*the next two lines of code are equivalent */&ROW = &ROWSET.GetRow(5);&ROW = &ROWSET(5);
GetRowset(SCROLL.EMPLOYEE_CHECKLIST).GetRow(1).GetRecord(EMPL_CHKLST_ITM).GetField(FIELD.NAME).Enabled = True;
GetRowset(SCROLL.EMPLOYEE_CHECKLIST)(1).EMPL_CHKLST_ITM.NAME.Enabled = True;

&temp = RECORD.JOB.IsChanged; 等价于 &temp = GetRecord(RECORD.JOB).IsChanged;

JOB.EMPLID.Visible = False; 等价于 GetField(JOB.EMPLID).Visible = False;.


对象在赋值和传递时,都是引用方式的。
Local Array of Number &A1, &A2;&A1 = CreateArray(2, 4, 6, 8, 10);&A2 = &A1;
上面代码中 &A1和&A2是指向同一个对象的:

Local Rowset &RS;
Local Record &REC;

Function Process_RowSet(&ROWSET as Rowset);
   For &I = 1 To &ROWSET.Rowcount
      For &J = 1 To &ROWSET.Recordcount
         &REC = &ROWSET.GetRow(&I).GetRecord(&J);
         &REC.Update();
      End-For;
   End-For; 
End-Function;

&RS = GetLevel0();
Process_RowSet(&RS);

Function Get_My_Row(&PASSED_ROWSET, &PASSED_RECORD)   For &ROWSET_ROW = 1 To &PASSED_ROWSET.RowCount      &UNDERLYINGREC = "RECORD." | &PASSED_ROWSET.DBRecordName;      &ROW_RECORD = &PASSED_ROWSET.GetRow(&ROWSET_ROW).GetRecord(@&UNDERLYINGREC);          /* Do other processing */        End-For;End-Function; 
原创粉丝点击