qbds = query.addDataSource(tablenum(tablename));
QueryBuildRange = qbds.addRange(fieldnum(tablename,RegionCode));
QueryBuildRange.value(RegionCode.valueStr()); // Make the auto declaration yes for that control and do it.
if(sysTableLookup)
{
sysTableLookup.parmQuery(query);
sysTableLookup.performFormLookup();
}
Use SysTableFieldLookup class. Pass the form query to the constructor, save TableId to TmpSysTableField table (DictTableId field) and pass it to performLookupField().
at classDeclaration
SysTableFieldLookup tableFieldLookup; // function for lookup field
TmpSysTableField tmpSysTableField; // to catch selected lookup value
at lookup method:
Query query = new Query();
;
query.addDataSource(tableNum(SalesLine));
tableFieldLookup = new SysTableFieldLookup(query);
tmpSysTableField.DictTableId = tableNum(SalesLine);
tableFieldLookup.performLookupField(this, tmpSysTableField); // lookup display label description
at modified method after super
FieldId fieldIdNum;
fieldIdNum = tableFieldLookup.parmSelectedRecord().FieldId; // get the field id