根据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(密钥),密码 Record.UserName包含UserId(key),Name。)
我无法获取UserName.Name的值,我是否误解了此参数的用法?
答案 0 :(得分:2)
填充是问题所在。来自doco:
注意:Fill只读取主数据库记录。它不读 任何相关记录,也不包含任何从属行集记录。
话虽如此,这是我知道从数据库批量填充独立行集的唯一方法,因此我无法轻易看到行集中字段的使用。
最简单的解决方案就是创建一个视图,但如果你必须做很多事情,这很快就会变老。另一种方法是自己在加载相关字段时循环遍历行集。类似的东西:
For &k = 1 To &rs1.ActiveRowCount
&rs1(&k).UserName.UserId.value = &rs1(&k).User.UserId.value;
&rs1(&k).UserName.SelectByKey();
End-for;