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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 15.03.2011, 11:27   #1  
CDR is offline
CDR
MCTS
MCBMSS
 
236 / 175 (6) ++++++
Регистрация: 27.11.2003
Помниться была в четверке фича: если значение в контроле измененяется с помощью выбора из лукапа, то метод validate на этом контроле почему-то не отрабатывает. Может задача как-то связана с этой фичей?
__________________
Dynamics AX Experience

Последний раз редактировалось CDR; 15.03.2011 в 11:30.
Старый 15.03.2011, 11:39   #2  
Ievgenii is offline
Ievgenii
Участник
Аватар для Ievgenii
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
 
111 / 113 (4) +++++
Регистрация: 21.09.2008
Адрес: Copenhagen, Denmark
Цитата:
Точно, наверно речь идет о различиях работы метода validate() в двух случаях:
Да, речь идет только о самой валидации и как она себя будет вести в данном примере! Извините, если сразу не ясно написал. Пример выбран - просто для наглядности.

В нашем сценарии пользователь два раза покинет контрол - то есть два раза вызавиться метод validate(). Вопрос был какие результаты он покажет (пройдет валидация или нет в обоих случиях) при данной реализации.

Цитата:
?! Как должно быть или как будет в конкретной версии?
Версия не важно, начиная с 4-той (хотя раньше тоже самое будет я думаю)


Цитата:
Хм.. Прошу не топтать в случае ошибки, отвечаю честно, без примера. Вроде бы должно быть так:
1) Сработает перекрытый validate - выкинет ошибку
2) Сработает табличный validate, который тоже выкинет ошибку
Напишите пожалуйста про перекрытый validate в обоих случиях.
__________________
Thx,
Ievgenii Korovin| Dynamics Ax SCM| Microsoft Corp| http://blogs.msdn.com/DynamicsAxSCM/

Последний раз редактировалось Ievgenii; 15.03.2011 в 11:43.
Старый 15.03.2011, 11:56   #3  
kornix is offline
kornix
MCP
MCBMSS
Злыдни
Ex AND Project
 
414 / 146 (5) +++++
Регистрация: 24.02.2009
Адрес: Санкт-Петербург
Все-таки сделал пример:
1. Если контрол связан с источником данных - система запустит validate написанный на контроле, потом modified на контроле, потом validate на таблице.

2. Если контрол не привязан к источнику данных, но привязан к EDT, система запустит validate только в случае ручного ввода текста в поле. Если выбрать значение из лукапа - validate написанный на контроле вообще не отработает.

И еще одна интересная особенность: ваш пример выкидывает 2 одинаковые ошибки: "validation failed". Причем, если поставить breakpoint на info.add() и пройтись отладчиком, то в система выкидывает только одну ошибку.

Последний раз редактировалось kornix; 15.03.2011 в 11:59.
Старый 15.03.2011, 12:26   #4  
Ievgenii is offline
Ievgenii
Участник
Аватар для Ievgenii
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
 
111 / 113 (4) +++++
Регистрация: 21.09.2008
Адрес: Copenhagen, Denmark
Цитата:
1. Если контрол связан с источником данных - система запустит validate написанный на контроле.
Рассматриваем только этот случай.


Цитата:
, потом modified на контроле, потом validate на таблице.
Неважно

Обратите внимание на:
  1. Устанавливает курсор на поле первого контрола и выбирает валидное значение из лукапа (GW). Дальше – не покидая контрол вводит какую нибудь чуш (GWsdsdsdsd)
__________________
Thx,
Ievgenii Korovin| Dynamics Ax SCM| Microsoft Corp| http://blogs.msdn.com/DynamicsAxSCM/
Старый 15.03.2011, 12:59   #5  
kornix is offline
kornix
MCP
MCBMSS
Злыдни
Ex AND Project
 
414 / 146 (5) +++++
Регистрация: 24.02.2009
Адрес: Санкт-Петербург
Тогда получается совсем круто, выводится 2 сообщения:
1. "validation is ok"
2. "Значение не найдено.."

Связано это вот с чем: сначала система попадает в validate на formStringControl'е, при первом вхождении в него метод valueStr() возвращает только то что было выбрано из лукапа. А потом система выполняет проверку уже по связям с источником данных, и причем в этой проверке сравнивается корректное введеное пользователем значение.

А по поводу:
Цитата:
4. Возращает курсор на поле первого контрола и вводит опять валидное значение (GW)
validate на контроле не запускается.

Версия DAX4.0 Kernel 4.0.2503.454

Последний раз редактировалось kornix; 15.03.2011 в 13:08.
За это сообщение автора поблагодарили: Ievgenii (3).
Старый 15.03.2011, 13:19   #6  
Ievgenii is offline
Ievgenii
Участник
Аватар для Ievgenii
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
 
111 / 113 (4) +++++
Регистрация: 21.09.2008
Адрес: Copenhagen, Denmark
Цитата:
Тогда получается совсем круто, выводится 2 сообщения:
1. "validation is ok"
2. "Значение не найдено.."

Связано это вот с чем: сначала система попадает в validate на formStringControl'е, при первом вхождении в него метод valueStr() возвращает только то что было выбрано из лукапа. А потом система выполняет проверку уже по связям с источником данных, и причем в этой проверке сравнивается корректное введеное пользователем значение.
Правильно . Это и был изначальный вопрос.

В Dynamics Ax2009 + в кастомизациях наших партнеров есть формы которые используют valueStr() при валидации, модификции контролов и так далее. Это приводит к очень странному поведению в более сложных случиях, по-этому следует использовать text() метод если нужна подобная валидация.

В Dynamics Ax 2012 куча новых возможностей валидации контролов и такой проблемы быть не должно (очень редко)
__________________
Thx,
Ievgenii Korovin| Dynamics Ax SCM| Microsoft Corp| http://blogs.msdn.com/DynamicsAxSCM/
За это сообщение автора поблагодарили: kornix (1).
Теги
validate, как правильно, метод

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Нет указан пользователь\сотрудник – насколько это серьезно может быть. Ievgenii DAX: Функционал 5 18.11.2009 12:25
Случай из жизни: как я каст тейбл с адресом джоинил(может кому-то полезно будет) HorrR DAX: Программирование 4 11.08.2009 12:58
DAX 4 SP1 Счет-фактура не может включать различные ставки НДС Daiver DAX: Функционал 3 01.10.2007 15:31
Процесс не может получить доступ к файлу Yprit DAX: Администрирование 6 15.07.2005 21:46
А кто-нибудь здесь может подсказать как выбирать модули при известных бизнес-процес? 2b4fITin DAX: Функционал 5 23.06.2003 17:21

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

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

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