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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 25.05.2005, 11:20   #1  
Jackal1 is offline
Jackal1
Участник
 
54 / 10 (1) +
Регистрация: 29.07.2005
Адрес: Киев
При импорте из текстового файла необходимо валидейтить поля таблички.
В датапорте, а точнее в его FieldDesigner есть поле CallFieldValidate которое, как я понимаю, предназначено как раз для решения данной задачи.
Вот только одно но - поля для которых проставлено CallFieldValidate в True никак не валидейтятся.
В чем загвоздка, как их отвалидейтить???
Помогите кто может.
Старый 25.05.2005, 12:29   #2  
asacom_imported is offline
asacom_imported
Участник
 
107 / 10 (1) +
Регистрация: 26.11.2003
Цитата:
Сообщение от Jackal
Вот только одно но - поля для которых проставлено CallFieldValidate в True никак не валидейтятся.
В чем загвоздка, как  их отвалидейтить???
Помогите кто может.
У меня нормально срабатывает OnValidate для указанного поля...
А версия какая?
Старый 25.05.2005, 12:31   #3  
Jackal1 is offline
Jackal1
Участник
 
54 / 10 (1) +
Регистрация: 29.07.2005
Адрес: Киев
Версия 3.6
Старый 25.05.2005, 12:33   #4  
asacom_imported is offline
asacom_imported
Участник
 
107 / 10 (1) +
Регистрация: 26.11.2003
Цитата:
Сообщение от Jackal
Версия 3.6
На 3.6 работает... Отладчиком смотрел?
Старый 25.05.2005, 15:40   #5  
Jackal1 is offline
Jackal1
Участник
 
54 / 10 (1) +
Регистрация: 29.07.2005
Адрес: Киев
Как оказалось все еще интереснее.
Тригер OnValidate поля вызывается и все значения подтягивает правильно, но эти значения почему то не постятся в таблице.
Может есть какое то свойство что бы заставить их сохранятся?
Старый 25.05.2005, 16:09   #6  
asacom_imported is offline
asacom_imported
Участник
 
107 / 10 (1) +
Регистрация: 26.11.2003
Цитата:
Сообщение от Jackal
Может есть какое то свойство что бы заставить их сохранятся?
А параметры AutoSave, AutoUpdate и AutoReplace правильно выставлены?
Если AutoSave установлен в Нет, то можно вставлять или модифицировать запись, используя функцию вставки или модификации из C/AL.
Старый 25.05.2005, 17:13   #7  
Jackal1 is offline
Jackal1
Участник
 
54 / 10 (1) +
Регистрация: 29.07.2005
Адрес: Киев
Все 3 указаных свойства установлены в TRUE.
Если бы AutoSave было Нет то ваше поля не вставляльсь бы, а так все заполняется кроме полей которые подтягиваются при валидейте
Старый 26.05.2005, 21:20   #8  
Yoil is offline
Yoil
NavAx
NavAx Club
Лучший по профессии 2017
Лучший по профессии 2009
 
1,574 / 70 (6) ++++
Регистрация: 20.11.2002
Адрес: Msk
Выложите датапорт (и табличку, если она не из стандарта). Лучше в текстовом виде.
__________________
"Моей лошадке ядрышком полмордочки снесло..."
А.В.Суворов, письма к дочери
Старый 27.05.2005, 09:08   #9  
GalaM is offline
GalaM
Moderator
Лучший по профессии 2009
 
640 / 42 (3) +++
Регистрация: 13.03.2008
Адрес: Москва
Может быть для те поля, котоые должны валидейтится надо так и написать VALIDATE()?
Долго и кривова-то, конечно, зато будет работать.
Старый 27.05.2005, 14:55   #10  
Jackal1 is offline
Jackal1
Участник
 
54 / 10 (1) +
Регистрация: 29.07.2005
Адрес: Киев
Цитата:
Сообщение от gala
Может быть для те поля, котоые должны валидейтится надо так и написать VALIDATE()?
Долго и кривова-то, конечно, зато будет работать.


Именно так и сделал, вопрос в том почему стандартный метод предназначеный что бы не было "Долго и кривова-то" не хочет отрабатывать
Старый 27.05.2005, 16:27   #11  
navi-prog is offline
navi-prog
Участник
 
8 / 10 (1) +
Регистрация: 16.05.2005
Jackal - столкнулся в свое время с теми же проблемами. После этого делаю так: Отключаю все валидэйты, и на OnAfterImportRecord проделываю все необходимые манипуляции. Писать дольше, зато надежнее.
Почему не работает?
Вариантов масса:
1. Field=some-value;
Validate(Field) не всегда работает так же как validate(Field, Value);
2. Валидэйт еще не вставленную в базу запись не всегда работает также на вставленную.
и т.д. ...
Старый 27.05.2005, 16:47   #12  
Шрэк is offline
Шрэк
Участник
Аватар для Шрэк
 
645 / 24 (2) +++
Регистрация: 09.02.2004
Адрес: Москва
Цитата:
Сообщение от Jackal
Цитата:
Сообщение от gala
Может быть для те поля, котоые должны валидейтится надо так и написать VALIDATE()?
Долго и кривова-то, конечно, зато будет работать.
Именно так и сделал, вопрос в том почему стандартный метод предназначеный что бы не было "Долго и кривова-то" не хочет отрабатывать
Вероятно по нижеследующим причинам(выдержка из ADG 370, стр.366 (или 380 в PDF)):

Getting the validation to work as intended is not so easy, because the code that is
triggered uses values from other fields, fields that are not part of this dataport. At the
time of the validation, these fields do not have values because the updating takes
place later. и т.д. и т.п.
__________________
MBS Certified Master in Navision Developer
 


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

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

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