Lookup on item id with Different range

 Lookup of Item id with Different range


[ExtensionOf(formStr(SalesTable))]
final class CblClsSalesLineNotGarment_ItemId_Extension
{
    
    //init METHOD
    public void init()
    {
        next init();



        FormStringControl _Control = this.design().controlName(formControlStr(SalesTable, SalesLine_ItemId));
        _Control.registerOverrideMethod(methodStr(FormDataObject, lookup), formMethodStr(SalesTable, overridenItemIDLookup));
    }

    //LookUp METHOD
    public void overridenItemIDLookup(FormStringControl _formControl)
    {
        FormDataSource salesLine_ds = this.dataSource(formDataSourceStr(SalesTable,SalesLine));
        SalesLine salesLine = salesLine_ds.cursor();

        SalesTable salesTable;
        BfpSalesType bfpSalesType;

        select firstonly salesTable where salesTable.SalesId == salesLine.SalesId;
        if  (bfpSalesType.SalesTypeId == 'SOWastes'  )
            {
                Query                                   query;
                QueryBuildDataSource                    qbds;
                QueryBuildRange                         queryBuildRange;
                SysTableLookup                          sysTableLookup;


                query = new Query();

                sysTableLookup = SysTableLookup::newParameters(tableNum(InventTable), _formControl);

                sysTableLookup.addLookupField(fieldNum(InventTable, ItemId));

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

                queryBuildRange = qbds.addRange(fieldNum(InventTable,ItemId));

                queryBuildRange.value(strfmt('((%1 like "%2"))',
                    fieldStr(InventTable, ItemId),
                    queryValue('WS*')
                    ));

                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++