我需要在表单字段中创建动态查找,该动态查找应显示来自两个不同数据源的字段。.我尝试将其执行为:
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()方法。