Create Lookup with group by through UIBuilder Class in D365fo x++
Create Lookup with group by through UIBuilder Class in D365fo x++
Public class ClassUIBuilder extends SysOperationAutomaticUIBuilder
{
ContracClass _contract;
DialogField DialogProcessCode;
public void build()
{
_contract = this.dataContractObject() as ContracClass;
// Create the dialog fields
DialogProcessCode = this.addDialogField(methodStr( ContracClass, ParmItemId), _contract);
}
public void postBuild()
{
super();
// Register lookup for Itemid Id field
DialogProcessCode.value('---');
DialogProcessCode = this.bindInfo().getDialogField(_contract,methodStr( ContracClass , ParmItemId));
DialogProcessCode.registerOverrideMethod(methodStr(FormStringControl, lookup), methodStr(ClassUIBuilder, ItemidLookup), this);
}
public void postRun()
{
//super();
}
private void ItemidLookup(FormStringControl _control)
{
// Perform the lookup for Item Id field
Query query = new Query();
QueryBuildDataSource qbds;
SysTableLookup sysTablelookup;
QueryBuildRange qbr;
// Set up the query
sysTablelookup = SysTableLookup::newParameters(tableNum(InventTable ),_control);
sysTableLookup.addLookupField(fieldNum(InventTable, Itemid),true);
qbds = query.addDataSource(tableNum(InventTable ));
sysTableLookup.addSelectionField(fieldNum(InventTable , Itemid));
qbds.addSortField(fieldNum(InventTable ,Itemid));
qbds.orderMode(OrderMode::GroupBy);
sysTablelookup.parmUseLookupValue(false);
sysTablelookup.parmQuery(query);
sysTablelookup.performFormLookup();
}
}
Comments
Post a Comment