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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 11.12.2002, 13:12   #1  
Wamr is offline
Wamr
----------------
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
 
1,737 / 858 (32) +++++++
Регистрация: 15.01.2002
Адрес: Москва
Записей в блоге: 7
Проверка даты
В гриде есть поле для ввода даты. Надо после ввода даты проверять её корректность и о чем-то спрашивать юзверя.

При вводе даты ручками имеем последовательность
validate_onControl
modified_onControl
validate_onField
modified_onField

При вводе даты через стандартный lookup имеем последовательность
modified_onControl
validate_onField
modified_onField
modified_onControl
validate_onField
modified_onField

Вопрос: куда воткнуть проверку?
Старый 11.12.2002, 17:48   #2  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
validate до супера.
желательно в field.
но можно и контрол, если так надо.
Старый 11.12.2002, 17:57   #3  
Wamr is offline
Wamr
----------------
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
 
1,737 / 858 (32) +++++++
Регистрация: 15.01.2002
Адрес: Москва
Записей в блоге: 7
Проблема.
validate на поле вызывается ДВА раза, если пользоваться календариком, а validate на контроле вообще не вызывается. Таким образом, я либо 2 раза спрошу пользователя, либо вообще не проверю.

Вот такой он.. календарик
Старый 11.12.2002, 18:38   #4  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Календарик - обычное окно Аксапты.
Когда открывается календарик на самом деле срабатывает lookup.
validate у тебя срабатывает из lookupa, а потом из поля.
На контроле валидате не вызывается поскольку вся обработка идет через тот же лукап. См доку.

Будь внимателен.
Старый 15.12.2002, 11:31   #5  
Wamr is offline
Wamr
----------------
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
 
1,737 / 858 (32) +++++++
Регистрация: 15.01.2002
Адрес: Москва
Записей в блоге: 7
Цитата:
validate у тебя срабатывает из lookupa, а потом из поля.
не понял... почему тогда он (validate) для остальных lookup-ов срабатывает 1 раз (чему я рад )?
Пришлось проблему решать криволинейным путем
Старый 15.12.2002, 14:27   #6  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
по-моему из-за того, что лукап может вызываться несколькими способами.
А ты сам то как думаешь?
Ты же больше разбирался с этой задачей.
Старый 15.12.2002, 14:57   #7  
Wamr is offline
Wamr
----------------
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
 
1,737 / 858 (32) +++++++
Регистрация: 15.01.2002
Адрес: Москва
Записей в блоге: 7
Так как я не нашел отличий между вызовами lookup-форм для разных типов полей, то пришел к выводу, что все дело в некорректной реализации FormDateControl.lookup().
Конечно, это крайнее суждение, требующее более серьезной проверки, которой мне заниматься не очень хочется.
Старый 15.12.2002, 15:10   #8  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Ну... согласен, радикальное суждение.

В Аксапте предусмотрено три варианта вызова лукапа.
performTypeLookup
performDBLookup
performFormLookup

Календарик вроде вызывается через performFormLookup.
Может там собака порылась?

Согласен также с тем, что надо рыть...
Старый 15.12.2002, 15:22   #9  
Wamr is offline
Wamr
----------------
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
 
1,737 / 858 (32) +++++++
Регистрация: 15.01.2002
Адрес: Москва
Записей в блоге: 7
Цитата:
Navision said it's an error will be corrected in Release 3.0
Что-то на технете стало много подобных ответов

Смотрел в отладчике - идет вызов performDBLookup... на самом деле какая разница в каком методе, если исходник класса не доступен
Старый 15.12.2002, 17:28   #10  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Если для чтения, то исходники в aod хранятся в незакодированном виде.
Если для записи... то aod это вроде стандартный ole storage container... Правда это сильно нештатный метод редактирования
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Корректировка даты создания заказа AlexeyBP DAX: Функционал 8 09.02.2007 11:32
Проверка целостности coja DAX: Администрирование 6 06.09.2006 13:14
Lookup даты для выбора месяца Antidot DAX: Программирование 0 21.01.2005 21:24
Очень не хочеться вручную устанавливать даты для всех строк журнала .... ATimTim DAX: Функционал 1 14.09.2004 19:33
Проверка даты разноски складской проводки Firestarter DAX: Функционал 3 05.04.2004 11:55

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

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

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 01:06.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.