我需要在表单字段中创建动态查找,该字段应显示来自两个不同数据源的字段。我尝试将其执行为:
public void lookup()
{
query = new Query();
sysTableLookup = SysTableLookup::newParameters(tableNum(smmBusRelTable), this);
qbds = query.addDataSource(tablenum(smmBusRelTable));
// qbds.addDataSource(tableNum(DirPartyTable));
//qbds.relations(true);
sysTableLookup.parmQuery(query);
sysTableLookup.addLookupField(fieldNum(smmBusRelTable, Busrelaccount));
//sysTableLookup.addLookupfield(fieldNum(DirPartyTable, Name));
sysTableLookup.performFormLookup();
}
注释行是我尝试执行的添加不同数据源的操作。
据我所知 SysTableLookup 类不支持显示其他表中的字段。 addLookup() 方法不采用 TableId,并假定所有字段都位于查询的第一个数据源中。
您可以编写自己的 SysTableLookup 版本,支持引用各种表中的字段。一种更简单、更实用(且更便宜)的方法可能是在 SmmBusRelTable 上创建一个显示方法,以从 DirPartyTable 中获取名称(如果它尚不存在)并将其用作查找中的字段。如果我没记错的话,支持主表上的显示方法。
根据您想要完成的具体任务,可能有一种更简单的方法。您可以将显示方法添加到 SmmBusRelTable 的 AutoLookup 表字段组中,并避免重写 Lookup() 方法。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)