27.08.2009, 17:21 | #1 |
Участник
|
открытие формы из кода 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 |
Axapta
|
А ведь достаточно было просто зайти в 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 |
Участник
|
Я вас понял,спасибо.
Но сделаем небольшой акцент на эту строчку X++: form.detach(); |
|
27.08.2009, 17:50 | #4 |
Axapta
|
Не "не откроется", а "откроется и закроется".
|
|
27.08.2009, 18:01 | #5 |
Axapta
|
Ну и еще. Не забывайте про поиск по форуму.
почему форма сразу закрывается ? Вызов формы из сода X++ Вызов формы из класса Запуск формы И снова как закрыть форму? Вызов формы ... PS Я это не к тому, что вы тему зря создали. Не поймите неправильно. Я подсказываю, как не тратить час времени на подобные вопросы. |
|
27.08.2009, 19:10 | #6 |
Боец
|
Цитата:
form.wait(); или form.detach(); В 1м случае, выполнение кода остановится на строке form.wait() до тех пор, пока вызываемую форму пользователь не закроет. Используется, когда нельзя закрывать вызывающую форму, пока не закроется вызываемая. Во 2м случае - форма вызывается в "Отвязанном" режиме, и строка form.detach(); не препятствует дальнейшему выполнению кода. |
|
|
За это сообщение автора поблагодарили: Logger (2), Максим Gall (1). |
28.08.2009, 11:55 | #7 |
Участник
|
Цитата:
никогда не вызывайте формы через classfactory. в этом случае вы теряете возможность контроля прав доступа на форме. вызывайте только через menuItem. |
|
|
За это сообщение автора поблагодарили: oip (1). |
Теги |
menuitem, запуск, как правильно, открыть форму, программно, форма |
|
|