Advance LookUp in D365fo x++

Advance LookUp in D365fo x++ 

internal final class ClsSysUserManagement_SalesTypes_EventHandlers
{
   static  SysLookupMultiSelectCtrl refLookupCtrl;
    

    /// <summary>
    ///
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    [FormControlEventHandler(formControlStr(SysUserManagement, CblSalesTypesSecurity_SalesTypesSelect), FormControlEventType::Lookup)]
    public static void CblSalesTypesSecurity_SalesTypesSelect_OnLookup(FormControl sender, FormControlEventArgs e)
    {
        FormRun _formRun = sender.formRun();

        FormDataSource              UserInfo_ds = sender.formRun().dataSource("UserInfo");
        UserInfo                    userInfo    = UserInfo_ds.cursor();

        Query query = new Query();
        QueryBuildDataSource qbdsSalesType,dsView;
        qbdsSalesType = query.addDataSource(tableNum(bfpSalesType));
        qbdsSalesType.fields().dynamic(false);
        qbdsSalesType.fields().clearFieldList();
        qbdsSalesType.addSelectionField(fieldNum(bfpSalesType, SalesTypeId));;
        qbdsSalesType.addSelectionField(fieldNum(bfpSalesType, Name));
        qbdsSalesType.addSelectionField(fieldNum(bfpSalesType, IsGarment));
        dsView =qbdsSalesType.addDataSource(tableNum(CblSalesTypesSecurity));
        dsView.relations(false);
        dsView.joinMode(JoinMode::NoExistsJoin);
        dsView.addLink(fieldNum(CblSalesTypesSecurity, SalesTypes),fieldNum(bfpSalesType, SalesTypeId));
        dsView.addRange(fieldNum(CblSalesTypesSecurity, UserRef)).value(any2Str(userInfo.RecId));
        dsView.fields().dynamic(false);
        dsView.fields().clearFieldList();
        refLookupCtrl = SysLookupMultiSelectCtrl::constructWithQuery(_formRun,sender,query);
        refLookupCtrl.refreshQuery(query);

    }

    /// <summary>
    ///
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    [FormControlEventHandler(formControlStr(SysUserManagement, CblSalesTypesSecurity_SalesTypesSelect), FormControlEventType::Modified)]
    public static void CblSalesTypesSecurity_SalesTypesSelect_OnModified(FormControl sender, FormControlEventArgs e)
    {
        FormRun _formRun            = sender.formRun();
        Query query                 = new Query();
        bfpSalesType                SalesTypeTbl;
        CblSalesTypesSecurity       SalesTypesSecurity;
        container                   selectedrecords;

        FormStringControl           SalesTypesSelect            = sender.formRun().design().controlName(formControlStr(SysUserManagement, CblSalesTypesSecurity_SalesTypesSelect));
        FormDataSource              CblSalesTypesSecurity_ds    = sender.formRun().dataSource(formDataSourceStr(SysUserManagement,  CblSalesTypesSecurity));
        FormDataSource              UserInfo_ds                 = sender.formRun().dataSource("UserInfo");
        UserInfo                    userInfo                    = UserInfo_ds.cursor();

        SalesTypesSelect.text("");
        

        Counter i;
        selectedrecords = refLookupCtrl.getSelectedFieldValues();
            
        for(i=1;i<= conLen(selectedrecords);i++)
        {
            
            while select
            SalesTypeTbl
            where SalesTypeTbl.SalesTypeId == conPeek(selectedrecords,i)
            {
                SalesTypesSecurity.SalesTypes   = SalesTypeTbl.SalesTypeId;
                SalesTypesSecurity.UserRef      = userInfo.RecId;

                SalesTypesSecurity.insert();
            }
        }

        selectedrecords = conNull();
        //refLookupCtrl = SysLookupMultiSelectCtrl::constructWithQuery(_formRun,sender,query);
        refLookupCtrl.set(selectedrecords);
 
        CblSalesTypesSecurity_ds.reread();
        CblSalesTypesSecurity_ds.refreshEx();
        CblSalesTypesSecurity_ds.executeQuery();
        CblSalesTypesSecurity_ds.refresh();


    }

}

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