|
![]() |
#1 |
Участник
|
Вот я сижу и думаю, а почему вы вообще используете wait(), а не detach()?
Ведь смысл Wait() состоит в том, чтобы долждаться закрытия дочерней формы перед продолжением исполнения кода родительской. Проверил с detach() - у меня обвалов системы не наблюдается |
|
![]() |
#2 |
MCTS
|
Цитата:
Есть родительская форма, с нее по кнопке открывается дочерняя... При этом в родительской форме необходимо иметь возможность контролировать дочернюю форму. Пока открыта дочерняя форма, родительская форма не должна закрываться (поведение, как у диалогов на RunBaseBatch). При повторном нажатии на кнопку форму необходимо переоткрыть.... Это нужно для обновления данных в дочерней форме. Вроде ничего криминального ![]() Понятно, что это можно обойти и решить по другому, например сделать обновление формы без ее закрытия... Непонятно, почему в трешке работает, в новых версиях - крэш. Это с чем-то жизненным связано или просто так сделали?
__________________
Dynamics AX Experience |
|
![]() |
#3 |
Участник
|
Цитата:
Цитата:
|
|
![]() |
#4 |
MCTS
|
Цитата:
Сообщение от gl00mie
![]() Контролировать каким образом? Заметьте, что пользователь может закрыть дочернюю форму, и, если она в методе close() как-то не информирует об этом форму родительскую, то та об этом и не узнает - объект FormRun дочерней формы будет все также спокойно жить в контексте формы родительской.
Цитата:
Сообщение от gl00mie
![]() Организуйте как-либо взаимодействие этих форм, например, как это сделано в журналах и строках журналов.Подумайте об организации псевдомодальности.Конечно, можно - через dynalink'и и обработку linkActive() на DS дочерней формы или напрямую через вызов ее методов из родительской формы...
В родительской форме вводятся некоторые параметры... Нажимается кнопка, производится навернутый расчет, в дочернюю форму выводится результат. Если все устраивает, выполняется транзакция в БД. Если не устраивает - в родительской форме редактируются параметры и кнопка нажимается заново. При этом дочерняя форма может и не закрываться пользователем самостоятельно... Вообщем, повторюсь, вопрос состоял не столько в том, "как сделать по другому?"... Сколько в том "Почему перестало работать?".
__________________
Dynamics AX Experience |
|
![]() |
#5 |
Участник
|
Цитата:
X++: new MenuFunction(menuitemdisplaystr(InventTable), MenuItemType::Display).run( args ); |
|
![]() |
#6 |
MCTS
|
Цитата:
Сообщение от gl00mie
![]() Если использовать detach(), то вообще смысл заморочек с formRun теряется - разве что оставлять ссылку на форму, чтобы закрыть ее при следующем нажатии кнопки... если не ждать завершения работы формы, то проще использовать конструкцию вида... Заодно проверка прав доступа на пункте меню отработает...
А вообще - да, запуск формы должен везде, где получается, быть по менюитему. Нет, ничего не происходит, хотя formRun действительно продолжает жить...
__________________
Dynamics AX Experience |
|
Теги |
ax2009, ax3.0, ax4.0 |
|
|