10.01.2020, 15:57 | #1 |
Участник
|
D365 onLookup EventHandler не работает
Стоит задача изменить Lookup, написал такой код:
X++: [FormControlEventHandler(formControlStr(TSTimesheetEntry, ProjId), FormControlEventType::Lookup)] public static void ProjId_OnLookup(FormControl sender, FormControlEventArgs e) { FormControlCancelableSuperEventArgs ce = e as FormControlCancelableSuperEventArgs; TSTimesheetLine timesheetLine = sender.formRun().dataSource(tableNum(TSTimesheetLine)).cursor(); FormStringControl custAccountControl = sender.formRun().control(sender.formRun().controlId(formControlStr(TSTimesheetEntry, CustAccount))); Query query = TSTimesheetLine::buildQueryProjTable(timesheetLine, custAccountControl.text()); //Prform lookup SysTableLookup sysTableLookup = SysTableLookup::newParameters(tableNum(ProjProjectLookup), sender); sysTableLookup.addLookupfield(fieldNum(ProjProjectLookup, ProjId)); sysTableLookup.addLookupfield(fieldNum(ProjProjectLookup, Name)); sysTableLookup.addLookupfield(fieldNum(ProjProjectLookup, Stage)); sysTableLookup.addSelectionField(fieldNum(ProjProjectLookup, ProjId)); sysTableLookup.parmQuery(query); sysTableLookup.performFormLookup(); ce.CancelSuperCall(); } Проблема в том что система не вызывает метод, судя по дебаггеру отрабатывает только стандартный метод на форме. В чем может быть проблема? |
|
10.01.2020, 16:49 | #2 |
Участник
|
В вопросе разобрался. Event не вызывается если на контроле определен метод и не происходит вызова super()
Последний раз редактировалось syl; 10.01.2020 в 17:18. |
|
|
За это сообщение автора поблагодарили: Logger (1). |
|
|