Стоит задача изменить 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();
}
На данный момент это копия стандартного кода из которой я удалил несколько строк addLookupfield
Проблема в том что система не вызывает метод, судя по дебаггеру отрабатывает только стандартный метод на форме. В чем может быть проблема?