D365FFO – AX – X++ – Custom Lookup for a dialog field

This post discusses about creating a custom lookup field on a dialog.
Following are the methods and code required to achieve the purpose.(Assuming the class is extending the RunbaseBatch)

–> A lookup method is required in the first place. Below is the sample code to lookup the exchange rates.
private void exchRate_Lookup(FormStringControl _control)
{
SysTableLookup sysTableLookUp;
QueryBuildDataSource qbds;
Query query = new Query();

qbds = query.addDataSource(tableNum(ExchangeRateType));

sysTableLookUp = SysTableLookup::newParameters(tableNum(ExchangeRateType), _control, true);

sysTableLookUp.addLookupfield(fieldNum(ExchangeRateType, Name));
sysTableLookUp.addLookupfield(fieldNum(ExchangeRateType, Description));

sysTableLookUp.parmQuery(query);
sysTableLookUp.performFormLookup();
}
–> The above method can then be called in the dialog method of the runbase class

public Object dialog()

{

FormStringControl control;

dialog = super();

dlgExcRate = dialog.addField(extendedTypeStr(ExchangeRateTypeName));

control = dlgExcRate.control();

control.registerOverrideMethod(methodstr(FormStringControl, lookUp),methodstr(SampleBatchClass, exchRate_Lookup),this);

return dialog;

}

Note:When we are using this FormStringControl lookup then the batch class “runon” property shouldn’t be “server”

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s