Reputation: 41
I am new to Dynamics AX 2012, in our project, we have a lookup for reference Group, lookup values are coming like :
A C B D C B C A D
The values are correct , But I want the lookup only shows distinct values like
A B C D
I need To Write the code in the Resolve reference method.But I dont know How to Filter the Distinct values, Lookup Values Are RECIDs. I dont Know How to Filter the values Please check the Code.
public Common lookupReference(FormReferenceControl _formReferenceControl)
{
Common ret;
SysReferenceTableLookup sysReferenceTableLookup;
QueryBuildDataSource qbdsPositionDetails,qbdsJobDetails,qbdsJob;
HcmJob _HcmJob;
Query query = new Query();
sysReferenceTableLookup = SysReferenceTableLookup::newParameters(tableNum(HcmJob),_formReferenceControl, true);
qbdsJob = query.addDataSource(tableNum(HcmJob));
qbdsPositionDetails = qbdsJob.addDataSource(tableNum(HcmPositionDetail));
qbdsPositionDetails.relations(true);
qbdsPositionDetails.addRange(fieldNum(HcmPositionDetail,Department)).value(queryValue(HCMResRequirement.Department));
sysReferenceTableLookup.addLookupField(fieldNum(HcmJob,JobId));
sysReferenceTableLookup.addLookupMethod('description');
sysReferenceTableLookup.parmQuery(query);
_HcmJob = sysReferenceTableLookup.performFormLookup();
return _HcmJob;
}
Upvotes: 0
Views: 3047
Reputation: 18051
Your two tables are inner joined and that is not what you want!
You want an exists join, returning the jobs that already exists in a department.
This can be done with line:
qbdsPositionDetails.joinMode(JoinMode::ExistsJoin);
Cleaned up this gives us:
public Common lookupReference(FormReferenceControl _formReferenceControl)
{
SysReferenceTableLookup lookup = SysReferenceTableLookup::newParameters(tableNum(HcmJob),_formReferenceControl, true);
QueryBuildDataSource ds = lookup.parmQuery().dataSourceNo(1).addDataSource(tableNum(HcmPositionDetail));
ds.addRange(fieldNum(HcmPositionDetail,Department)).value(queryValue(HCMResRequirement.Department));
ds.joinMode(JoinMode::ExistsJoin);
ds.relations(true);
lookup.addLookupField(fieldNum(HcmJob,JobId));
lookup.addLookupMethod(tableMethodStr(HcmJob,description));
return lookup.performFormLookup();
}
Upvotes: 1