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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 06.06.2005, 18:41   #1  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
validate()
Привет всем!

Создал диалог extends RunBaseReport
Перекрыл метод validate()
Там проверяю заполнение некоторых добавленных мной полей на диалог.

Нужно еще проверить значение поля из запроса. (конкретно, Бухг. Счет из LedgerLiquidity).
Пытаюсь это сделать через
PHP код:
this.queryRun().query().dataSourceTable(tableNum(ledgerLiquidity)).rangeField(fieldNum(LedgerLiquidityAccountNum)).value() 
, но не совсем корректно работает.

То есть, когда он пустой, нажимаем Выбор, выбираем значение счета, и нажимаем ОК. (в это время Бухг. Счет в запросе еще пустой, и поэтому вылетает сообщение об ошибке, которое выводится когда там пусто)
Как заблокировать проверку validate() для случая, когда открыта SysQueryForm?

Спасибо
Старый 07.06.2005, 12:10   #2  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
?
Что, неужели нельзя это сделать? Ну не верю.
Старый 07.06.2005, 14:44   #3  
chi is offline
chi
Участник
 
80 / 13 (1) ++
Регистрация: 21.01.2004
А если попробовать повесить проверку на getFromDialog()?
Старый 07.06.2005, 14:59   #4  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
Пробовал.
Там проблема с тем, что он вызывается тоже постоянно, как и validate()
Вызывается сразу при вызове диалога. То есть сразу выдается сообщение об ошибке.
Когда нажимаем Выбор, тоже срабатвывает соответсвенно сначала getFromDialog(), а за ним validate()

Старый 07.06.2005, 17:08   #5  
maxsmirnov is offline
maxsmirnov
экс-модератор
 
268 / 25 (1) +++
Регистрация: 08.07.2003
Адрес: Москва
я делаю так

PHP код:
public boolean validate(Object calledFrom)
{
    if (
calledFrom.name() == formStr(SysQueryForm))
        return 
true;

    
//и понеслась

имхо, разработчики так и задумывали, иначе зачем они туда calledFrom передают?
За это сообщение автора поблагодарили: kashperuk (3).
Старый 08.06.2005, 01:51   #6  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
Thumbs up
Как же это я про параметр calledFrom забыл??? Стыдно.

maxsmirnov, спасибо огромное!
Старый 25.10.2006, 11:17   #7  
Delfins is offline
Delfins
Участник
 
320 / 39 (2) +++
Регистрация: 20.09.2005
Адрес: Riga, Latvia
Столкнулся с такой же проблемой, только у меня `extends InventCountCreate_Base / JournalRunBaseBatch / RunBaseBatch`, соотв. у метода validate() нет параметра формы!!!

Оказывается неправильно переписан метод InventCountCreate_Base::validate() ... так как если я пытаюсь что то изменить, то показывает ошибку...
Ну как так может быть?? Если при полной рекомпиляции нет ошибки ??

хотя наверное вот етот код и проходит етот глюк -

Код:
public boolean RunBase::validate(Object calledFrom = null)  // The object/form which calls the method
{
    return true;
}
Как быть?

Последний раз редактировалось Delfins; 25.10.2006 в 11:24.
Старый 25.10.2006, 11:56   #8  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
Я честно говоря смутно понял, что вы подразумевали под "показывает ошибку"
Но почему мы вам не попробовать изменить метод validate в классе InventCountCreate_base для начала?
Сделать вот так:
boolean validate(Object _calledFrom = null)

ну, и в вашем классе соответственно так же.
По идее должно нормально отработать.
Старый 25.10.2006, 12:06   #9  
Delfins is offline
Delfins
Участник
 
320 / 39 (2) +++
Регистрация: 20.09.2005
Адрес: Riga, Latvia
Да, я всё так и "подправил", но почему с самого начала не было "как надо"... баг.
Старый 25.10.2006, 12:13   #10  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2479 (88) +++++++++
Регистрация: 20.08.2005
А почуму-бы вам не добавить этот параметр в перекрытый метод (в вашем классе)? Проверяйте значение при вызове, а в super() не передавайте ничего
__________________
Axapta v.3.0 sp5 kr2
Старый 24.01.2009, 21:30   #11  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
А не затруднит ли кого-то проверить работоспособность этого параметра на 3.0 и его НЕработоспособность на более поздних версиях?
У меня 3ки нету, а в более новых версиях что-то параметр не работает..
Старый 12.02.2009, 12:39   #12  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
UP

Кто нибудь может подтвердить, что это работает? Плз.
Указывайте версию системы, если можно.
Спасибо

Последний раз редактировалось kashperuk; 12.02.2009 в 12:51.
Старый 12.02.2009, 13:05   #13  
lev is offline
lev
Ищущий знания...
Аватар для lev
Oracle
MCBMSS
Axapta Retail User
 
1,723 / 491 (20) +++++++
Регистрация: 18.01.2005
Адрес: Москва
Ax 3.0 SP3
В классе InventCountCreate_Base в методе validate нет параметра формы.
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с)
С Уважением,
Елизаров Артем
Старый 12.02.2009, 13:14   #14  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
Цитата:
Сообщение от lev Посмотреть сообщение
Ax 3.0 SP3
В классе InventCountCreate_Base в методе validate нет параметра формы.
Нет. Простите, я видимо неясно выразил свое желание.

Я хочу подтвердить, что если его добавить (или использовать другой класс, где он уже есть, к примеру tutorial_RunBaseForm), то runtime вызывает метод validate(), когда нажимаем ОК в форме настройки расширенного фильтра (SysQueryForm)
Старый 12.02.2009, 13:18   #15  
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   #16  
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   #17  
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   #18  
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   #19  
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, 13:57   #20  
lev is offline
lev
Ищущий знания...
Аватар для lev
Oracle
MCBMSS
Axapta Retail User
 
1,723 / 491 (20) +++++++
Регистрация: 18.01.2005
Адрес: Москва
P.S. при нажатии кнопку "выбор" validate() не вызывается (по крайней мере на точку останова не отреагировал)
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с)
С Уважением,
Елизаров Артем

Последний раз редактировалось lev; 12.02.2009 в 14:01.
Теги
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, время: 19:37.