PeopleSoft 开发 02 对象基础

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; 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值