To Add Lookup Method for Dimension fields like division ,branch etc using UI Builder class in Axapta SSRS Report you can refer below code.
Division dimension lookup method is as below.
You can call lookup method on post build method in UI Builder class.
You need to call contract object in following method.
#define.DimensionName("Branch")
Query query;
QueryBuildDataSource qbds,qbds1;
SysTableLookup sysTableLookup;
DimensionAttribute dimAttr;
;
dimAttr = DimensionAttribute::findByName(#DimensionName);
sysTableLookup = SysTableLookup::newParameters(tablenum(OMOperatingUnit),branchCodeLookup);
sysTableLookup.addLookupfield(fieldnum(OMOperatingUnit, OmoperatingunitNumber));
sysTableLookup.addLookupfield(fieldNum(OMOperatingUnit,Name));
query = new Query();
qbds = query.addDataSource(tableNum(OMOperatingUnit));
qbds.addRange(fieldNum(OMOperatingUnit, OMOperatingUnitType)).value(queryvalue(OMOperatingUnitType::OMBusinessUnit));
sysTableLookup.parmQuery(query);
sysTableLookup.parmUseLookupValue(False);
sysTableLookup.performFormLookup();
Division dimension lookup method is as below.
private void divisionCodeLookup(FormStringControl divisionCodeLookup)
{
#define.DimensionName("Division")
Query query;
QueryBuildDataSource qbds,qbds1;
SysTableLookup sysTableLookup;
DimensionAttribute dimAttr;
;
dimAttr = DimensionAttribute::findByName(#DimensionName);
sysTableLookup = SysTableLookup::newParameters(tablenum(DimensionFinancialTag),divisionCodeLookup);
sysTableLookup.addLookupfield(fieldnum(DimensionFinancialTag, Value));
sysTableLookup.addLookupfield(fieldNum(DimensionFinancialTag,Description));
query = new Query();
qbds = query.addDataSource(tableNum(DimensionFinancialTag));
qbds1 = qbds.addDataSource(tableNum(DimensionAttributeDirCategory));
qbds1.addLink(fieldNum(DimensionFinancialTag,FinancialTagCategory),fieldnum(DimensionAttributeDirCategory,RecId));
qbds1.addRange(fieldNum(DimensionAttributeDirCategory, DimensionAttribute)).value(queryvalue(dimAttr.recid));
sysTableLookup.parmQuery(query);
sysTableLookup.parmUseLookupValue(False);
sysTableLookup.performFormLookup();
}
You can call lookup method on post build method in UI Builder class.
dialogregion.registerOverrideMethod(methodStr(FormStringControl, lookup), methodStr(GOD_CustomerOutstandingUIBuilder,regionCodeLookup), this);
dialogbranch.registerOverrideMethod(methodStr(FormStringControl, lookup), methodStr(GOD_CustomerOutstandingUIBuilder,branchCodeLookup), this);
You need to call contract object in following method.
public void getFromDialog()
{
contract = this.dataContractObject();
super();
}