AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 29.08.2016, 15:38   #1  
AX_Dan is offline
AX_Dan
Участник
 
3 / 10 (1) +
Регистрация: 29.08.2016
Как вызвать 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  
KiselevSA is offline
KiselevSA
Злыдни
Аватар для KiselevSA
Злыдни
Лучший по профессии 2015
 
958 / 333 (13) ++++++
Регистрация: 25.01.2002
Адрес: Москва
Насколько я помню, похожая функциональность реализована в форме настройки разноски: при вводе части номера счета отображаются подходящие значения. Может попробовать "скопировать" этот функционал с небольшой рихтовкой?
__________________
люди...считают, что если техника не ломается, то ее не нужно ремонтировать. Инженеры считают, что если она не ломается, то нуждается в совершенствовании.
За это сообщение автора поблагодарили: AX_Dan (1).
Старый 29.08.2016, 16:08   #3  
AX_Dan is offline
AX_Dan
Участник
 
3 / 10 (1) +
Регистрация: 29.08.2016
Спасибо! А Вы не можете подсказать название этой формы на английском?

Последний раз редактировалось AX_Dan; 29.08.2016 в 17:05.
Старый 30.08.2016, 08:41   #4  
Greggy is offline
Greggy
Участник
 
90 / 14 (1) ++
Регистрация: 19.10.2004
Адрес: г. Томск
например форма VendPosting
За это сообщение автора поблагодарили: AX_Dan (1).
Старый 02.09.2016, 18:44   #5  
AX_Dan is offline
AX_Dan
Участник
 
3 / 10 (1) +
Регистрация: 29.08.2016
Проблему решил, как рекоммендовали в другой ветке, с помощью функции setTimeOut
и прокси-функции, которая, собственно, и открывает лукап (+ переопределил функцию validate, чтобы фокус не переходил на следующий контрол).
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Еще одна бага.Символ * и метод modified(). АХ2009 RU5 Pustik DAX: Программирование 1 13.04.2012 21:33
Как вызвать метод для поля в FormDataSource? Maxim Gorbunov DAX: Программирование 3 08.05.2007 11:28
lookup не закрывается до завершения метода modified Morpheus DAX: Программирование 4 09.08.2006 16:43
Как првильно вызвать lookup? Red Stranger DAX: Программирование 0 15.04.2005 12:03
Как вызвать метод на COMVariant? Andronov DAX: Программирование 2 06.08.2003 08:29
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 16:10.