Я пытаюсь создать собственный фильтр поиска в диалоге в AX.
Я следовал инструкциям в этом посте x ++ Фильтр поиска в диалоговом окне и получаю ошибку Stack Trace - объект FormRun не инициализирован - когда я запускаю свой код.
То, что я пытаюсь сделать, это отфильтровать поиск () для ConfigId EDT на основе выбора из ItemId EDT.У меня есть собственный lookup (), готовый к работе и работающий должным образом, я просто не могу вызвать его из моего диалогового окна.
public Object dialog(DialogRunbase _dialog, boolean _forceOnClient)
{
DialogRunBase dialog;
;
dialog = super(_dialog, true);
dialog.caption('@RID2885');
dfItem = dialog.addField(typeid(ItemId));
dfInventLoc = dialog.addField(typeid(InventLocationId));
dfReplaceCost = dialog.addField(typeid(PdsCost));
dfItemConfig = dialog.addField(typeid(ConfigId));
dfColorId = dialog.addField(typeid(InventColorId), '@RID101');
return dialog;
}
Вот вызов функции lookup ():
void Fld_7_lookup()
{
Formrun fr = this.dialogModify().parmDialog();
Object control = fr.controlCallingMethod();
;
ConfigTable::lookupConfigIdSimple(control, dfItem.value());
}
И это то, где он продолжает получать ошибку трассировки стека:
public void dialogPostRun(DialogRunbase _dialog)
{
;
super(_dialog);
**_dialog.formRun().controlMethodOverload(true);** // Causes Stack Trace error
_dialog.formRun().controlMethodOverloadObject(this);
}
Я пробовал несколько конфигураций с диалоговым окном.Когда код достигает этой точки, в него по-прежнему передается информация из метода dialog (), но когда он собирается получить FormRun, этот объект остается пустым.
Может кто-нибудь помочь мне понять, почему нетОбъект FormRun, связанный с переданным входом в DiaglogRunBase?
Спасибо.