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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 30.12.2014, 00:19   #1  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,684 / 5813 (201) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Записей в блоге: 3
А чего непонятного? В tutorial-примере показывается, как использовать RunBase вместе с "настоящей" формой, но при этом
  1. все так же добавлять поля в runtime, используя инфраструктуру Dialog;
  2. взаимодействовать из формы с классом, реализующим бизнес- и презентационную логику, отчасти повторяя функционал штатной формы Dialog.
Таким классом в данном случае является никто иной, как наш наследник RunBase, при этом в его методе dialog() в примере мы видим такой код:
X++:
DialogRunbase dialog = Dialog::newFormnameRunbase(formstr(tutorial_RunbaseForm), this);
Инфраструктура RunBase заточена на работу презентационной логики через инфраструктуру Dialog, и предполагается, что RunBase-у в общем случае без разницы, какая именно там форма создается, лишь бы можно было вывести на нее поля ввода и получить с нее введенные значения. Инфраструктура Dialog как раз и абстрагирует для RunBase заморочки взаимодействия с формой в части отображения исходных и получения измененных пользователем значений параметров запуска RunBase. Чтобы не нарушать эту абстракцию, в рассматриваемом примере форма создается не напрямую, а через Dialog::newFormnameRunbase().
Но раз мы затеяли собирать форму не полностью в runtime, значит, она предполагает какую-то затейливую презентационную логику и/или дизайн - "представление", одним словом (в терминах MVC). Логику мы как нормальные программисты пишем в классах, а не на формах, следовательно, форме надо иметь доступ к своему классу-"контроллеру". Таковым в случае инфраструктуры RunBase выступает все тот же наш класс-наследник, который выполняет и бизнес-логику. Но поскольку для унификации вывода и получения значений параметров он использует в качестве "прослойки" инфраструктруру Dialog, то с точки зрения формы непосредственно вызывающим ее объектом оказывается экземпляр класса DialogRunbase, а вовсе не наш наследник RunBase. Так вот, чтобы форма через класс-прослойку могла достучаться до контроллера, в этом классе-прослойке и реализован метод, возвращающий ссылку на RunBase.
За это сообщение автора поблагодарили: S.Kuskov (5), MaxHammer (1).
Старый 30.12.2014, 08:25   #2  
MaxHammer is offline
MaxHammer
Участник
 
60 / 11 (1) +
Регистрация: 03.10.2012
спасибо
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Почему метод "control::control_name" возвращает null? Eldar9x DAX: Программирование 8 24.02.2013 18:14
Inside Dynamics AX 4.0: RunBase Framework Extension Part IV Blog bot DAX Blogs 0 02.10.2007 04:49
Inside Dynamics AX 4.0: RunBase Framework Extension Part I Blog bot DAX Blogs 0 30.09.2007 09:20
Какой метод возвращает последний день месяца? vasiliy DAX: Программирование 4 27.02.2006 13:43
Класс RunBase SergS DAX: База знаний и проекты 0 19.06.2002 18:07
Опции темы Поиск в этой теме
Поиск в этой теме:

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

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

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

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