Lookup on item id with Different range
Lookup of Item id with Different range
[ExtensionOf(formStr(SalesTable))]
final class CblClsSalesLineNotGarment_ItemId_Extension
{
//init METHOD
public void init()
{
next init();
FormStringControl _Control = this.design().controlName(formControlStr(SalesTable, SalesLine_ItemId));
_Control.registerOverrideMethod(methodStr(FormDataObject, lookup), formMethodStr(SalesTable, overridenItemIDLookup));
}
//LookUp METHOD
public void overridenItemIDLookup(FormStringControl _formControl)
{
FormDataSource salesLine_ds = this.dataSource(formDataSourceStr(SalesTable,SalesLine));
SalesLine salesLine = salesLine_ds.cursor();
SalesTable salesTable;
BfpSalesType bfpSalesType;
select firstonly salesTable where salesTable.SalesId == salesLine.SalesId;
if (bfpSalesType.SalesTypeId == 'SOWastes' )
{
Query query;
QueryBuildDataSource qbds;
QueryBuildRange queryBuildRange;
SysTableLookup sysTableLookup;
query = new Query();
sysTableLookup = SysTableLookup::newParameters(tableNum(InventTable), _formControl);
sysTableLookup.addLookupField(fieldNum(InventTable, ItemId));
qbds = query.addDataSource(tableNum(InventTable));
queryBuildRange = qbds.addRange(fieldNum(InventTable,ItemId));
queryBuildRange.value(strfmt('((%1 like "%2"))',
fieldStr(InventTable, ItemId),
queryValue('WS*')
));
queryBuildRange.status(RangeStatus::Hidden);
sysTableLookup.parmUseLookupValue(false);
sysTableLookup.parmQuery(query);
sysTableLookup.performFormLookup();
}
}
}
Comments
Post a Comment