Monday, 11 February 2019

current record in a lookup event handler D365

[ExtensionOf(FormStr(ProjJournalTransEmpl))]
final public class INTC_ProjCategoerylookUp_Extension
{
    #define.datasourceName("ProjJournalTrans")
    #define.projName("NON CHARGEABLE")
    [FormControlEventHandler(formControlStr(ProjJournalTransEmpl, ProjJournalTrans_CategoryId), FormControlEventType::Lookup)]
    public void ProjJournalTrans_CategoryId_OnLookup(FormControl sender, FormControlEventArgs e)
    {
        FormControlCancelableSuperEventArgs formControlCancelSuper = e as FormControlCancelableSuperEventArgs;
        formControlCancelSuper.CancelSuperCall();

        ProjJournalTrans            projJournalTrans;
        ProjTable                   projTable;
        SysTableLookup              sysTableLookUp;
        QueryBuildDataSource        qbds;
        Query                       query = new Query();
        FormDataSource              projJournalTrans_ds;
       
        projJournalTrans_ds     =   sender.formRun().dataSource(#datasourceName);
        projJournalTrans        =   projJournalTrans_ds.cursor();
        projTable               =   ProjTable::find(projJournalTrans.ProjId);

        sysTableLookUp          =   SysTableLookup::newParameters(tableNum(ProjCategory), sender, true);
        sysTableLookUp.addLookupfield(fieldNum(ProjCategory, CategoryId));
        sysTableLookUp.addLookupfield(fieldNum(ProjCategory, name));

        qbds    =   query.addDataSource(tableNum(ProjCategory));
        if(projTable.Name   ==  #projName)
        {
            qbds.addRange(fieldNum(ProjCategory, CategoryId)).value(strfmt("NC*"));
        }
        else
        {
            qbds.clearRanges();
        }
        sysTableLookUp.parmQuery(query);
        sysTableLookup.parmUseLookupValue(true);
        sysTableLookUp.performFormLookup();
    }

}

No comments:

Post a Comment