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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 12.02.2009, 14:04   #21  
petergunn is offline
petergunn
Участник
 
118 / 274 (10) ++++++
Регистрация: 30.08.2005
Адрес: Tyumen
-> В качестве эксперимента
Запускал приложенный ниже класс (наследник 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

Других приложений под рукой нет.
Изображения
 
Вложения
Тип файла: xpo InventTableOverview.xpo (2.1 Кб, 137 просмотров)

Последний раз редактировалось petergunn; 12.02.2009 в 14:08.
Старый 12.02.2009, 14:12   #22  
lev is offline
lev
Ищущий знания...
Аватар для lev
Oracle
MCBMSS
Axapta Retail User
 
1,723 / 491 (20) +++++++
Регистрация: 18.01.2005
Адрес: Москва
Цитата:
Сообщение от petergunn Посмотреть сообщение
Запускал приложенный ниже класс (наследник RunBaseReport) на доступных экземплярах.
А теперь попробуйте сделать наследника от RunBase, создать в нем Query диалог, и посмотрите что будет в calledFrom
Видимо RunBase не рассчитывали под форму SysQueryForm, но добавление её в диалог возможно
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с)
С Уважением,
Елизаров Артем
Старый 13.02.2009, 09:42   #23  
petergunn is offline
petergunn
Участник
 
118 / 274 (10) ++++++
Регистрация: 30.08.2005
Адрес: Tyumen
-> SysQueryEdit.runBaseCheckCloseDialog()
Цитата:
Сообщение от lev Посмотреть сообщение
А теперь попробуйте сделать наследника от RunBase, создать в нем Query диалог, и посмотрите что будет в calledFrom
У меня нет (не было) цели проверять что приходит в calledFrom, изначальная суть сообщения kashperuk была по-моему в другом: вызывается ли метод validate() класса когда нажимается кнопка 'Ok' на форме SysQueryForm.

Цитата:
Сообщение от kashperuk Посмотреть сообщение
...
Я хочу подтвердить, что если его добавить (или использовать другой класс, где он уже есть, к примеру tutorial_RunBaseForm), то runtime вызывает метод validate(), когда нажимаем ОК в форме настройки расширенного фильтра (SysQueryForm)

Сегодня бегло посмотрел в чем отличие функционала приложений на которых картина вызовов validate() была различной. Поведение зависит от реализации метода Classes\SysQueryEdit\runBaseCheckCloseDialog().
Цитата:
Сообщение от petergunn Посмотреть сообщение
...
Axapta 3.0:
#1951.4060/514-320 SP4/OP023-196 - validate() вызывается при нажатии на 'Ok' в форме SysQueryForm
#1951.7500/514-513 SP5/OP023-379 - validate() НЕ вызывается при нажатии на 'Ok' в форме SysQueryForm

#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  
lev is offline
lev
Ищущий знания...
Аватар для lev
Oracle
MCBMSS
Axapta Retail User
 
1,723 / 491 (20) +++++++
Регистрация: 18.01.2005
Адрес: Москва
Цитата:
Сообщение от petergunn Посмотреть сообщение
У меня нет (не было) цели проверять что приходит в calledFrom, изначальная суть сообщения kashperuk была по-моему в другом: вызывается ли метод validate() класса когда нажимается кнопка 'Ok' на форме SysQueryForm.
Да. и на этот вопрос я ответил. но потом kashperuk спросил:
"И что при этом (какая форма) находится в переменной calledFrom? "
И начала развиваться тема этого вопроса
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с)
С Уважением,
Елизаров Артем
Старый 13.02.2009, 13:49   #25  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
Вот. Это то, что я искал.
То есть таки сломали, демоны...

Спасибо

Для полной сатисфакции - на скриншоте у вас видно, что таки SysQueryForm у вас находится в _calledFrom. Это и на SP3 и на SP4?
Потому как lev и еще один товарищ оба получили SysSetupFormRun вместо SysQueryForm...
Старый 13.02.2009, 14:15   #26  
petergunn is offline
petergunn
Участник
 
118 / 274 (10) ++++++
Регистрация: 30.08.2005
Адрес: Tyumen
Цитата:
Сообщение от kashperuk Посмотреть сообщение
Для полной сатисфакции - на скриншоте у вас видно, что таки SysQueryForm у вас находится в _calledFrom. Это и на SP3 и на SP4?
Потому как lev и еще один товарищ оба получили SysSetupFormRun вместо SysQueryForm...
Да, на имеющихся приложениях Ax 3.0 SP3 и Ax 3.0 SP4 картинка идентичная.

На счет SysSetupFormRun - видимо тут имеет место ситуация недопонимания терминологии сторон :
classId2Name( classidGet( _calledFrom ) ) = 'SysSetupFormRun' (именно это видно в отладчике)
_calledFrom.name() = 'SysQueryForm' (это выводилось в infolog в том проекте что я приводил)

Последний раз редактировалось petergunn; 13.02.2009 в 14:45.
Теги
dialog, axapta

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
axaptapedia: Validate field values on form Blog bot DAX Blogs 0 17.12.2008 12:05
TwC: Validate access to return value from display/edit method. HorrR DAX: Программирование 10 05.03.2008 12:17
TwC: Validate access to return value from display/edit method. алька DAX: Программирование 3 20.04.2007 14:15
DataSource.Field.Validate() dmit1606 DAX: Программирование 1 08.04.2004 12:00

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

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

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