3

根据这里的 Peoplebook, 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.UserName
包含 UserId(key)、Name。)

我无法获取 UserName.Name 的值,我误解了这个参数的用法吗?

4

1 回答 1

2

填充是问题。从doco

注意:填充只读取主数据库记录。它不读取任何相关记录,也不读取任何从属行集记录。

话虽如此,这是我知道从数据库中批量填充独立行集的唯一方法,因此我无法轻易看到行集中该字段的用途。

最简单的解决方案就是创建一个视图,但如果你必须做很多事情,它很快就会变老。另一种方法是自己循环遍历行集,加载相关字段。就像是:

For &k = 1 To &rs1.ActiveRowCount
  &rs1(&k).UserName.UserId.value = &rs1(&k).User.UserId.value;
  &rs1(&k).UserName.SelectByKey();
End-for;
于 2016-02-19T02:16:36.780 回答