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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 31.01.2006, 14:37   #1  
IceWind is offline
IceWind
Участник
 
19 / 10 (1) +
Регистрация: 03.05.2006
Может кто-нибудь сталкивался, просто интересно в чем дело. Загружаю данные из Excel просто как ExcelWorksheet.Range('A1').Value. Значение в Excel целое число, тип поля в таблице Integer. Если делать Rec.VALIDATE(field1,ExcelWorksheet.Range('A1').Value) присваивает 64, если делаю просто
Rec.field1 :=ExcelWorksheet.Range('A1').Value; то присваивает нужное число. OnValidate поля пустой.
Старый 09.03.2006, 15:09   #2  
Hed is offline
Hed
Участник
Аватар для Hed
 
13 / 10 (1) +
Регистрация: 04.02.2005
Вся проблема в том, что Excel возвращает данные в виде VARIANT, а в реализации VALIDATE'а разработчики как-то умудрились накосячить. VARIANT - это некая структура, в которой указан тип содержащихся в ней данных и сами данные. Navision, обычно, смотрит на значение типа данных у такой переменной и если тип источника может быть отображен на тип получателя, то происходит присваивание. Фунция VALIDATE почему-то, работает с этим типом данных довольно криво и как результат вы можете получить либо неверное значение, либо вообще, сообщение на экран о переполнении стэка. Подозреваю, что там используется какая-то кривая функция рекурсии.

Как решение, в данном случае, могу предложить присвоить Value некой целой переменной и уже ее передать в VALIDATE.
Старый 10.04.2006, 17:45   #3  
Ardak is offline
Ardak
Участник
 
48 / 11 (1) +
Регистрация: 13.07.2006
REC.VALIDATE("FIELD",FORMAT(Sheet.Range('a'+FORMAT(XLSLineCounter)).Value,0,1)); для строковых данных;

EVALUATE(c,FORMAT(Sheet.Range('b'+FORMAT(XLSLineCounter)).Value));
REC.VALIDATE(Quantity,c); для цифровых данных;
Старый 29.12.2007, 08:15   #4  
by_HT is offline
by_HT
Участник
 
195 / 10 (1) +
Регистрация: 12.10.2007
Чтоб не создавать новую тему решил написать здесь:

Делаю Экспорт данных из 14823 таблицы.. обычным методом, через XMLports.:

Код:
TestFile.CREATE('D:\XML_Payroll.xml');
TestFile.CREATEOUTSTREAM(TestStream);
XMLPORT.EXPORT(50001,TestStream);
TestFile.CLOSE;
MESSAGE('XML Export!');
Потом захожу в эту таблицу и удалаю все данные! Делаю Импорт:

Код:
TestFile.OPEN('D:\XML_Payroll.xml');
TestFile.CREATEINSTREAM(TestStream);
XMLPORT.IMPORT(50001,TestStream);
TestFile.CLOSE;
MESSAGE('XML Import!');
Вываливаеться ошибка:
Нет Зарпл. Справочник в пределах фильтра.
Фильтры: Тип: Скида/Вычет, Код: 02

В чем может быть причина такого не понятного действия?
 


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

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

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