Тема: validate()
Показать сообщение отдельно
Старый 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).