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
*This post is locked for comments
I have the same question (0)