29.08.2016, 15:38 | #1 |
Участник
|
Как вызвать lookup метод из события modified
Доброго времени суток!
Суть проблемы: есть форма с решеткой. В решетке одна из колонн - edit поле (колонна показывает конкретное значение из классификатора вместо внешнего ключа). Для этой колонны переопределен метод lookup, который возвращает значение внешнего ключа. Также, для колонны переопределен метод modified. Сложность в том, что значение, которое видит пользователь - необязательно уникальное. Поэтому, если значение, которое ввел пользователь вручную, соответствует нескольким записям в классификаторе, то надо предложить пользователю выбрать его из отфильтрованного lookup'а. Lookup появляется только при нажатии кнопки в поле. Когда я вызываю его из метода modified, то lookup не появляется. Я пробовал как просто вызывать (уточнение: в lookup() используется SysTableLookup) X++: this.lookup(); X++: args = new Args(); args.name(formstr(apusMAKkodiLookup)); args.caller(this); formRun = classfactory.formRunClass(args); formRun.init(); formDatasource = formRun.dataSource(); formDatasource.insertIfEmpty(false); formDatasource.allowCreate(false); formDatasource.onlyFetchActive(true); formDatasource.query().dataSourceTable(tablenum(apusMAKkodi)).addRange(fieldNum(apusMAKkodi, MAKKods)).value(strMAKkods); this.PerformFormLookup(formRun); Последний раз редактировалось AX_Dan; 29.08.2016 в 16:04. |
|
29.08.2016, 16:01 | #2 |
Злыдни
|
Насколько я помню, похожая функциональность реализована в форме настройки разноски: при вводе части номера счета отображаются подходящие значения. Может попробовать "скопировать" этот функционал с небольшой рихтовкой?
__________________
люди...считают, что если техника не ломается, то ее не нужно ремонтировать. Инженеры считают, что если она не ломается, то нуждается в совершенствовании. |
|
|
За это сообщение автора поблагодарили: AX_Dan (1). |
29.08.2016, 16:08 | #3 |
Участник
|
Спасибо! А Вы не можете подсказать название этой формы на английском?
Последний раз редактировалось AX_Dan; 29.08.2016 в 17:05. |
|
30.08.2016, 08:41 | #4 |
Участник
|
например форма VendPosting
|
|
|
За это сообщение автора поблагодарили: AX_Dan (1). |
02.09.2016, 18:44 | #5 |
Участник
|
Проблему решил, как рекоммендовали в другой ветке, с помощью функции setTimeOut
и прокси-функции, которая, собственно, и открывает лукап (+ переопределил функцию validate, чтобы фокус не переходил на следующий контрол). |
|