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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 27.08.2009, 17:21   #1  
Максим Gall is offline
Максим Gall
Участник
 
6 / 12 (1) ++
Регистрация: 17.07.2009
открытие формы из кода X++
FormRun form;
;

form=ClassFactory.formRunClass(new Args(formstr(имя формы)));
form.init();
form.run();
form.detach();

Потратил час чтоб найти,может кому пригодиться
За это сообщение автора поблагодарили: rusalaudinov (1), Alexx7 (1).
Старый 27.08.2009, 17:24   #2  
oip is offline
oip
Axapta
Лучший по профессии 2014
 
2,564 / 1416 (53) ++++++++
Регистрация: 28.11.2005
Записей в блоге: 1
А ведь достаточно было просто зайти в Developers Guide...

Цитата:
Constructing a form from your X++ code
When you construct a form from your X++ code, you must use the system classes.

Your code lines should look similar to the following

form = ClassFactory.FormRunClass(formstr(CustTable));
form.init();
form.run();

ClassFactory is an object of the class xClassFactory that holds the method FormRunClass that returns a new FormRun object.

The idea of using this indirection is to make it possible to inherit the FormRun class and override selected methods to change the behavior of the form executor. Subsequently, you can have all forms in the system executed with the new class instead of the ordinary FormRun by supplying the inherited class in the FormRunClass() method.

The system constructs all forms activated from the Application Object Tree using the xClassFactory.
Старый 27.08.2009, 17:44   #3  
Максим Gall is offline
Максим Gall
Участник
 
6 / 12 (1) ++
Регистрация: 17.07.2009
Я вас понял,спасибо.
Но сделаем небольшой акцент на эту строчку
X++:
form.detach();
Без неё форма не откроется.
Старый 27.08.2009, 17:50   #4  
oip is offline
oip
Axapta
Лучший по профессии 2014
 
2,564 / 1416 (53) ++++++++
Регистрация: 28.11.2005
Записей в блоге: 1
Не "не откроется", а "откроется и закроется".
Старый 27.08.2009, 18:01   #5  
oip is offline
oip
Axapta
Лучший по профессии 2014
 
2,564 / 1416 (53) ++++++++
Регистрация: 28.11.2005
Записей в блоге: 1
Ну и еще. Не забывайте про поиск по форуму.

почему форма сразу закрывается ?
Вызов формы из сода X++
Вызов формы из класса
Запуск формы
И снова как закрыть форму?
Вызов формы
...

PS Я это не к тому, что вы тему зря создали. Не поймите неправильно. Я подсказываю, как не тратить час времени на подобные вопросы.
Старый 27.08.2009, 19:10   #6  
DSPIC is offline
DSPIC
Боец
 
1,077 / 1243 (44) ++++++++
Регистрация: 11.04.2008
Цитата:
Сообщение от Максим Gall Посмотреть сообщение
Я вас понял,спасибо.
Но сделаем небольшой акцент на эту строчку
X++:
form.detach();
Без неё форма не откроется.
Тут могут быть 2 варианта:

form.wait(); или form.detach();

В 1м случае, выполнение кода остановится на строке form.wait() до тех пор, пока вызываемую форму пользователь не закроет. Используется, когда нельзя закрывать вызывающую форму, пока не закроется вызываемая.

Во 2м случае - форма вызывается в "Отвязанном" режиме, и строка form.detach(); не препятствует дальнейшему выполнению кода.
За это сообщение автора поблагодарили: Logger (2), Максим Gall (1).
Старый 28.08.2009, 11:55   #7  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от Максим Gall Посмотреть сообщение
FormRun form;
;

form=ClassFactory.formRunClass(new Args(formstr(имя формы)));
form.init();
form.run();
form.detach();

Потратил час чтоб найти,может кому пригодиться
Максим, перестаньте публиковать антипаттерн.

никогда не вызывайте формы через classfactory. в этом случае вы теряете возможность контроля прав доступа на форме.

вызывайте только через menuItem.
__________________
полезное на axForum, github, vk, coub.
За это сообщение автора поблагодарили: oip (1).
Теги
menuitem, запуск, как правильно, открыть форму, программно, форма

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Открыть дизайн формы в режиме Edit из кода arnold DAX: Программирование 11 27.11.2008 16:20
Открытие формы с MouseDoubleClick из другой формы Dima_Dima DAX: Программирование 18 19.11.2008 23:22
Открытие формы из класса Акавешка DAX: Программирование 2 11.01.2007 13:39
Программное открытие формы строк журнала переноса ViV DAX: Программирование 13 09.11.2005 13:16
Русская локализация Axapta 3 ? SlavaK DAX: Администрирование 59 01.07.2003 22:38

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

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

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