Quantcast
Channel: Microsoft Dynamics AX Forum - Recent Threads
Viewing all articles
Browse latest Browse all 72043

MultiSelectLookup in AX7

$
0
0

Hello,

I am working in AX7.

I have created a multiselect lookup field in my form. Lookup works fine. 

But after selecting the values from the lookup and when i try to access the lookup again for a different row or for the same field, the previously selected values are still selected and it is not getting unselected until i have to unselect manually.

Can anyone suggest me why this is happening.

I have used the following code,

    [FormControlEventHandler(formControlStr(Reasons, AssetTransactionType), FormControlEventType::Lookup)]
    public static void AssetTransactionType_OnLookup(FormControl sender, FormControlEventArgs e)
    {
        FormRun                         formRun = sender.formRun() as FormRun;
        TransactionType_TMP             transactionType_TMP;
        TransactionType_TMP_Populate    transactionType_TMP_Populate = new TransactionType_TMP_Populate();

        transactionType_TMP_Populate.populateTempTable(transactionType_TMP);
        queryRun = new QueryRun(queryStr(TransactionType_TMPQuery));
        queryRun.setCursor(transactionType_TMP);
        FormControlCancelableSuperEventArgs ce = e as FormControlCancelableSuperEventArgs;
        sysLookupMultiSelectCtrl = SysLookupMultiSelectCtrl::constructWithQueryRun(formRun,sender,queryRun/*,false,[tableNum(TransactionType_TMP),fieldNum(TransactionType_TMP,TransType)]*/);
        ce.CancelSuperCall();

    }

    /// <summary>
    ///
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    [FormControlEventHandler(formControlStr(Reasons, AssetTransactionType), FormControlEventType::Modified)]
    public static void AssetTransactionType_OnModified(FormControl sender, FormControlEventArgs e)
    {
        FormDataSource      reasonTable_ds = sender.formRun().dataSource("ReasonTable");
        FormDataSource      transactionType_TMP_ds = sender.formRun().dataSource("TransactionType_TMP");
        SysQueryForm        sysQueryForm = new SysQueryForm(queryRun);
        container           reason;
        container           reasonRecId;
        ReasonTable         reasonTable;
        ReasonTable         reasonUpdate;
        DefaultReasonTable  defaultReasonTable;
        int                 value;
        int                 id;

        reasonTable = sender.formRun().dataSource(1).cursor();
        reason = sysLookupMultiSelectCtrl.getSelectedFieldValues();
        reasonRecId = sysLookupMultiSelectCtrl.get();

        ttsbegin;

        select forupdate reasonUpdate
            where reasonUpdate.RecId == reasonTable.RecId;

        reasonUpdate.TransactionType = con2Str(sysLookupMultiSelectCtrl.getSelectedFieldValues(),';');
        reasonUpdate.update();
        reasonTable_ds.research(true);
        //queryRun.detach();
        //queryRun.saveUserSetup(false);
        //reasonTable_ds.refresh();
        //transactionType_TMP_ds.research();
        //transactionType_TMP_ds.refresh();

            while select forupdate defaultReasonTable
                where defaultReasonTable.ReasonRecId ==  reasonTable.RecId
            {
                defaultReasonTable.delete();
            }

        defaultReasonTable.clear();
        defaultReasonTable.initValue();

        for(value = 1; value <= conLen(reasonRecId); value++)
        {
            defaultReasonTable.ReasonRecId = reasonTable.RecId;
            for(value = 1; value <= conLen(reason); value++)
            {
                defaultReasonTable.TransactionType = conPeek(reason,value);
                defaultReasonTable.insert();
            }
        }

        ttscommit;

    }


Thanks


Viewing all articles
Browse latest Browse all 72043

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>