12.02.2009, 14:04 | #21 |
Участник
|
В качестве эксперимента
Запускал приложенный ниже класс (наследник RunBaseReport) на доступных экземплярах.
Axapta 3.0: #1951.3730/514-193 SP3/OP023-71 - validate() вызывается при нажатии на 'Ok' в форме SysQueryForm #1951.4060/514-320 SP4/OP023-196 - validate() вызывается при нажатии на 'Ok' в форме SysQueryForm #1951.7500/514-513 SP5/OP023-379 - validate() НЕ вызывается при нажатии на 'Ok' в форме SysQueryForm Dynamics Ax 4.0: Kernel version: 4.0.2501.116, application version: 4.0.2501.347 - validate() НЕ вызывается при нажатии на 'Ok' в форме SysQueryForm Других приложений под рукой нет. Последний раз редактировалось petergunn; 12.02.2009 в 14:08. |
|
12.02.2009, 14:12 | #22 |
Ищущий знания...
|
Цитата:
Видимо RunBase не рассчитывали под форму SysQueryForm, но добавление её в диалог возможно
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с) С Уважением, Елизаров Артем |
|
13.02.2009, 09:42 | #23 |
Участник
|
SysQueryEdit.runBaseCheckCloseDialog()
Цитата:
Цитата:
Сегодня бегло посмотрел в чем отличие функционала приложений на которых картина вызовов validate() была различной. Поведение зависит от реализации метода Classes\SysQueryEdit\runBaseCheckCloseDialog(). Цитата:
#1951.4060/514-320 SP4/OP023-196: Classes\SysQueryEdit\runBaseCheckCloseDialog() X++: public boolean runBaseCheckCloseDialog(object _caller) { boolean ret = true; RunBase runbase; if (callerIsRunbase) { runBase = sysQueryRun.args().caller(); ret = runBase.[B]runbase()[/B].checkCloseDialog(_caller); } return ret; } #1951.7500/514-513 SP5/OP023-379: Classes\SysQueryEdit\runBaseCheckCloseDialog() (& DAX 4.0) X++: public boolean runBaseCheckCloseDialog(object _caller) { boolean ret = true; RunBase runbase; if (callerIsRunbase) { runBase = sysQueryRun.args().caller(); ret = runBase.checkCloseDialog(_caller); } return ret; } |
|
|
За это сообщение автора поблагодарили: kashperuk (10), Logger (2). |
13.02.2009, 10:14 | #24 |
Ищущий знания...
|
Цитата:
"И что при этом (какая форма) находится в переменной calledFrom? " И начала развиваться тема этого вопроса
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с) С Уважением, Елизаров Артем |
|
13.02.2009, 13:49 | #25 |
Участник
|
Вот. Это то, что я искал.
То есть таки сломали, демоны... Спасибо Для полной сатисфакции - на скриншоте у вас видно, что таки SysQueryForm у вас находится в _calledFrom. Это и на SP3 и на SP4? Потому как lev и еще один товарищ оба получили SysSetupFormRun вместо SysQueryForm... |
|
13.02.2009, 14:15 | #26 |
Участник
|
Цитата:
На счет SysSetupFormRun - видимо тут имеет место ситуация недопонимания терминологии сторон : classId2Name( classidGet( _calledFrom ) ) = 'SysSetupFormRun' (именно это видно в отладчике) _calledFrom.name() = 'SysQueryForm' (это выводилось в infolog в том проекте что я приводил) Последний раз редактировалось petergunn; 13.02.2009 в 14:45. |
|