Item id Lookup on search criteria in d365fo x++

 Item id Lookup on search criteria in d365fo x++

Code: 

public void overridenItemIDLookup(FormStringControl _formControl)
    {
        MCRFullTextIndexField                   MCRFullTextIndexField;
        Query                                   query;
        QueryBuildDataSource                    qbds, qbds1;
        QueryBuildRange                         queryBuildRange;
        SysTableLookup                          sysTableLookup;
        query = new Query();

        container con = [DHSS_ProductType::PurchasableItem, DHSS_ProductType::Both];

        sysTableLookup = SysTableLookup::newParameters(tableNum(MCRProductSearchView), _formControl);
        sysTableLookup.addLookupField(fieldNum(MCRProductSearchView, DisplayProductNumber), true);

        while
        select MCRFullTextIndexField
        where MCRFullTextIndexField.SOURCE == 'MCRProductSearchView'
        {
            sysTableLookup.addLookupField(fieldName2Id(tableName2Id(tableStr(MCRProductSearchView)), MCRFullTextIndexField.Field));
        }

        qbds = query.addDataSource(tableNum(MCRProductSearchView));
        qbds1= qbds.addDataSource(tableNum(EcoResProduct));
        qbds1.addLink(fieldNum(MCRProductSearchView, DisplayProductNumber), fieldNum(EcoResProduct, DisplayProductNumber));
        qbds1.joinMode(JoinMode::InnerJoin);

        queryBuildRange = qbds1.addRange(fieldNum(EcoResProduct, DHSS_ProductType));
        queryBuildRange.value(con2Str(con));
        queryBuildRange.status(RangeStatus::Hidden);



        sysTableLookup.parmUseLookupValue(false);
        sysTableLookup.parmQuery(query);
        sysTableLookup.performFormLookup();
    }

Comments

Popular posts from this blog

D365FO – AX – X++ –Refresh, Reread, Research, and ExecuteQuery

Create Inventory Journal through Code in D365FO X++

SalesLine Reservation in D365fo x++