重写lookup方法:
public void lookup(FormControl _formControl, str _filterStr)
{
Query query =new Query();
QueryBuildDataSource qbds;
QueryBuildRange qbr;
SysTableLookup sysTableLookup = SysTableLookup::newParameters(tablenum(ProdTable),_formControl);
;
sysTableLookup.addLookupfield(fieldnum(ProdTable, ItemId), true);
sysTableLookup.setLabel("@SYS12836");//Item number
qbds = query.addDataSource(tablenum(ProdTable));
qbr = qbds.addRange(fieldnum(ProdTable, routeid));
qbr.value(sunTAFMPO.Route);
sysTableLookup.parmQuery(query);
sysTableLookup.performFormLookup();
}
当然,这个方法显然是有些笨拙,不适合扩展。那么,我们换个思路,把方法写道对应Table里去:
public void lookupItemId(FormControl _formControl, Route _route)
{
Query query =new Query();
QueryBuildDataSource qbds;
QueryBuildRange qbr;
SysTableLookup sysTableLookup = SysTableLookup::newParameters(tablenum(ProdTable),_formControl);
;
sysTableLookup.addLookupfield(fieldnum(ProdTable, ItemId), true);
sysTableLookup.setLabel("@SYS12836");//Item number
qbds = query.addDataSource(tablenum(ProdTable));
qbr = qbds.addRange(fieldnum(ProdTable, routeid));
qbr.value(_route);//将这里的参数改变
sysTableLookup.parmQuery(query);
sysTableLookup.performFormLookup();
}
之后在回到本地lookup方法中,重载:
Table::lookupItemid(this, sunTAFMPO.Route);