我需要在表单字段中创建动态查找,该动态查找应显示来自两个不同数据源的字段。.我尝试将其执行为:

  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()方法。

07-26 00:35