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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 01.08.2012, 10:41   #6  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2494 (89) +++++++++
Регистрация: 20.08.2005
Цитата:
Сообщение от TasmanianDevil Посмотреть сообщение
Занимаюсь сейчас одной разработкой, а именно классом-движком отрисовки и обработки событий для табличного поля с EDT-массивом и имеющего сложные правила выбора значений в него. Поле это предполагается использовать в широком ряде таблиц и, соответственно, чего не хочется делать - так это программировать лукапы и корежить дизайны в куче форм, что собственно и послужило идеей создания такого класса.

Этот мой класс получает родительский контрол на форме и создает на нем динамическую группу контролов и является дополнительным обработчиком событий контролов для формы. У динамически создаваемых контролов мы можем переопределять их методы путем написания на обработчике (им может быть сама форма или некий отдельный класс) соответствующих методов, чьи имена являются композициями имени контрола и имени переопределяемого метода. Все хорошо и замечательно, lookup'ы перехватываются и отрабатываются. Для EDT-массива из 8 уровней пришлось переопределять 8 lookup'ов.

Собственно вот эти 8 методов и не дают покоя ввиду личного перфекционизма - lookup'ы обрабатываются одним и тем же отдельным обработчиком, вызовы которого в переопределенных методах (да и сами методы) на классе-движке отрисовки отличаются только индексом внутри массива - все остальное идентично, т.е. по сути эти 8 штук методов легко заменяемы на один метод с параметром. Собственно отсюда и растут ноги вопроса - можно ли как-то, не имея переопределенных по вышеупомянутым правилам методов на обработчике, тем не менее отловить на родительской форме срабатывание события (конкретно, вызова lookup) от динамически созданного контрола и идентифицировать контрол (а через него и до индекса в EDT-массиве рукой подать), породивший это событие ?

Форма внутри у себя в любом случае получает запрос на обработку события на контроле ...
Если я правильно понял суть вопроса - что-то подобное реализовано в адресном движке в DAX2009 (по-моему, начиная с RU7) - класс FormRunListener_Address_RU
Там реализованы единые методы-обработчики событий для контролов адресов. Определение вызывающего контрола - через вызов controlCallingMethod()
__________________
Axapta v.3.0 sp5 kr2
За это сообщение автора поблагодарили: TasmanianDevil (3).
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Итератор с поддержкой методов обратного вызова для обработки контролов на форме gl00mie DAX: Программирование 18 06.08.2013 22:16
Переопределение методов у FormDataSource созданного в классе alexkrut DAX: Программирование 16 27.12.2011 09:58
Переопределение стандартных Hotkey Alex_KD DAX: Программирование 15 29.11.2007 17:03
Вопрос по Проектам PSA DAX: Функционал 35 19.01.2007 22:26
Расположение контролов в группе динамически kashperuk DAX: Программирование 1 14.10.2005 19:11

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

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

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