Peoplesoft CreateRowset 相关显示记录
Peoplesoft CreateRowset with related display record
根据Peoplebook here,CreateRowset函数有参数{FIELD.fieldname,RECORD.recname}用来指定相关的显示记录。
我曾尝试像下面这样使用它(仅作为示例):
&rs1 = CreateRowset(Record.User, Field.UserId, Record.UserName);
&rs1.Fill();
For &k = 1 To &rs1.ActiveRowCount
MessageBox(0, "", 999999, 99999, &rs1(&k).UserName.Name.Value);
End-for;
(Record.User 只包含 UserId(key), Password.
Record.User名称包含 UserId(key)、名称。)
我无法获取UserName.Name的值,我是否误解了该参数的用法?
填充是个问题。来自 doco:
Note: Fill reads only the primary database record. It does not read
any related records, nor any subordinate rowset records.
话虽如此,这是我所知道的从数据库批量填充独立行集的唯一方法,因此我无法轻易地看到行集中字段的用途。
最简单的解决方案就是创建一个视图,但如果您必须经常这样做,它很快就会过时。另一种方法是自己循环遍历行集来加载相关字段。类似于:
For &k = 1 To &rs1.ActiveRowCount
&rs1(&k).UserName.UserId.value = &rs1(&k).User.UserId.value;
&rs1(&k).UserName.SelectByKey();
End-for;
根据Peoplebook here,CreateRowset函数有参数{FIELD.fieldname,RECORD.recname}用来指定相关的显示记录。
我曾尝试像下面这样使用它(仅作为示例):
&rs1 = CreateRowset(Record.User, Field.UserId, Record.UserName);
&rs1.Fill();
For &k = 1 To &rs1.ActiveRowCount
MessageBox(0, "", 999999, 99999, &rs1(&k).UserName.Name.Value);
End-for;
(Record.User 只包含 UserId(key), Password.
Record.User名称包含 UserId(key)、名称。)
我无法获取UserName.Name的值,我是否误解了该参数的用法?
填充是个问题。来自 doco:
Note: Fill reads only the primary database record. It does not read any related records, nor any subordinate rowset records.
话虽如此,这是我所知道的从数据库批量填充独立行集的唯一方法,因此我无法轻易地看到行集中字段的用途。
最简单的解决方案就是创建一个视图,但如果您必须经常这样做,它很快就会过时。另一种方法是自己循环遍历行集来加载相关字段。类似于:
For &k = 1 To &rs1.ActiveRowCount
&rs1(&k).UserName.UserId.value = &rs1(&k).User.UserId.value;
&rs1(&k).UserName.SelectByKey();
End-for;