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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 12.02.2009, 13:18   #1  
lev is offline
lev
Ищущий знания...
Аватар для lev
Oracle
MCBMSS
Axapta Retail User
 
1,723 / 491 (20) +++++++
Регистрация: 18.01.2005
Адрес: Москва
Цитата:
Сообщение от kashperuk Посмотреть сообщение
Я хочу подтвердить, что если его добавить (или использовать другой класс, где он уже есть, к примеру tutorial_RunBaseForm), то runtime вызывает метод validate(), когда нажимаем ОК в форме настройки расширенного фильтра (SysQueryForm)
Именно так и происходит
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с)
С Уважением,
Елизаров Артем
За это сообщение автора поблагодарили: kashperuk (3).
Старый 12.02.2009, 13:34   #2  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
Цитата:
Сообщение от lev Посмотреть сообщение
Именно так и происходит
И что при этом (какая форма) находится в переменной calledFrom?
Старый 12.02.2009, 13:37   #3  
lev is offline
lev
Ищущий знания...
Аватар для lev
Oracle
MCBMSS
Axapta Retail User
 
1,723 / 491 (20) +++++++
Регистрация: 18.01.2005
Адрес: Москва
Цитата:
Сообщение от kashperuk Посмотреть сообщение
И что при этом (какая форма) находится в переменной calledFrom?
SysSetupFormRun... а должна SysQueryForm ?
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с)
С Уважением,
Елизаров Артем
Старый 12.02.2009, 13:41   #4  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
Цитата:
Сообщение от lev Посмотреть сообщение
SysSetupFormRun... а должна SysQueryForm ?
Хмм. Странно.
То есть при клике ОК у вас вызывается validate(), и calledFrom = SysSetupFormRun?
Или это при клике на кнопку Выбор изначально?
Ну, да, я ожидал, что при клике ОК вызовется validate() с calledFrom = SysQueryFrom
Старый 12.02.2009, 13:56   #5  
lev is offline
lev
Ищущий знания...
Аватар для lev
Oracle
MCBMSS
Axapta Retail User
 
1,723 / 491 (20) +++++++
Регистрация: 18.01.2005
Адрес: Москва
Цитата:
Сообщение от kashperuk Посмотреть сообщение
Хмм. Странно.
То есть при клике ОК у вас вызывается validate(), и calledFrom = SysSetupFormRun?
Или это при клике на кнопку Выбор изначально?
Ну, да, я ожидал, что при клике ОК вызовется validate() с calledFrom = SysQueryFrom
На самом деле с начала не обратил внимания что там в calledFrom... но по Вашей просьбе посматрел и удивился! при нажатии кнопки ОК в calledForm именно SysSetupFormRun, а не SysQueryFrom - что логичнее
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с)
С Уважением,
Елизаров Артем
Старый 12.02.2009, 14:04   #6  
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 Кб, 140 просмотров)

Последний раз редактировалось petergunn; 12.02.2009 в 14:08.
Старый 12.02.2009, 14:12   #7  
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   #8  
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).
Теги
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, время: 02:17.