Showing posts with label Get Lookup fields using SystableLookUp in Ax 2012. Show all posts
Showing posts with label Get Lookup fields using SystableLookUp in Ax 2012. Show all posts

Monday, 7 May 2018

Get Lookup fields using SystableLookUp in Ax 2012

public void lookup()
{
    Query query = new Query();
    QueryBuildDataSource queryBuildDataSource,qbdDirparty,qbdEmail;
    QueryBuildRange queryBuildRange,queryBuildRangeEmail;
    SysTableLookup sysTableLookup;

    //LogisticsElectronicAddress
    qbdEmail = query.addDataSource(tableNum(LogisticsElectronicAddress));
    queryBuildRangeEmail = qbdEmail.addRange(fieldNum(LogisticsElectronicAddress,DIPL_IsSend));
    queryBuildRangeEmail.value(queryValue(NoYes::Yes));

    //DirPartyTable
    qbdDirparty = qbdEmail.addDataSource(tableNum(DirPartyTable));
    qbdDirparty.addLink(fieldNum(LogisticsElectronicAddress,PrivateForParty),fieldNum(DirPartyTable,RecId));

    //CustTable
    queryBuildDataSource = qbdDirparty.addDataSource(tableNum(CustTable));
    queryBuildDataSource.relations(true);
    queryBuildDataSource.joinMode(JoinMode::InnerJoin);

    queryBuildRange = queryBuildDataSource.addRange(fieldNum(CustTable, AccountNum));
    queryBuildRange.value(SalesTable_CustAccount.valueStr());


    sysTableLookup = SysTableLookup::newParameters(tableNum(LogisticsElectronicAddress), this);

    sysTableLookup.addLookupField(fieldNum(LogisticsElectronicAddress, Locator));
    sysTableLookup.addLookupField(fieldNum(LogisticsElectronicAddress, DIPL_IsSend));

    sysTableLookup.parmQuery(query);
    sysTableLookup.performFormLookup();

}