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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 27.05.2009, 14:14   #1  
Yakuza is offline
Yakuza
Участник
 
124 / 10 (1) +
Регистрация: 26.10.2004
Сделана интеграция двух версий 2.00 и 3.70. Из первой выгружаются через датапорт некие данные в файл, во вторую импортируются. Импорт зачастую не удается по причине того, что при экспорте в файл выгружаются все символы, в том числа табуляции и перевода строки. И в 3.70 начинается путаница при импорте, пытается засунуть совсем в другие ячейки таблицы. Выяснил, что в 2.00 эти символы попадают в основном из экселя, когда копируют данные в ячейке и переносят в поле навижн. Вместе с данными переносятся еще и по два невидимых символа.
При этом раньше их в навижне еще можно было видеть в виде вертикальных толстых палочек, но с переходом на новую операционнку они стали невидимыми, и искать и удалять их стало очень сложно . Какие есть идеи насчет этого ? Как делать экспорт без этих символов ?
Старый 27.05.2009, 14:48   #2  
Raul is offline
Raul
Участник
 
35 / 10 (1) +
Регистрация: 15.03.2006
Думаю что верный способ - обрабатывать поля талицы при экспорте в файл, например на триггере OnAfterFormatField вызывать ф-ю которая будет вырезать символы новой строки и перевода каретки. В теле ф-и написать примерно следущее

CrLf[1] := 13;CrLf[2] := 10; //Символ перевода каретки
Text := DELCHR(Text,'=',CrLf);

Правда если полей много, придется долго писать код в триггерах
Старый 27.05.2009, 14:48   #3  
Fordewind is offline
Fordewind
Участник
 
1,134 / 10 (3) +
Регистрация: 01.12.2005
Цитата:
Сообщение от Yakuza Посмотреть сообщение
Сделана интеграция двух версий 2.00 и 3.70. Из первой выгружаются через датапорт некие данные в файл, во вторую импортируются. Импорт зачастую не удается по причине того, что при экспорте в файл выгружаются все символы, в том числа табуляции и перевода строки. И в 3.70 начинается путаница при импорте, пытается засунуть совсем в другие ячейки таблицы. Выяснил, что в 2.00 эти символы попадают в основном из экселя, когда копируют данные в ячейке и переносят в поле навижн. Вместе с данными переносятся еще и по два невидимых символа.
При этом раньше их в навижне еще можно было видеть в виде вертикальных толстых палочек, но с переходом на новую операционнку они стали невидимыми, и искать и удалять их стало очень сложно . Какие есть идеи насчет этого ? Как делать экспорт без этих символов ?
Однажды заколебавшись удалять/подменять символы при загрузке датапортом, начал делать Импорт/Экспорт через таблицу Excel Buffer. Не знаю есть ли в 2.0 такая, но если что, то такую таблицу вместе с доработками можно взять тут.
Правда если речь идет об очень больших объемах, то работать будет медленно...
Старый 27.05.2009, 15:46   #4  
Yakuza is offline
Yakuza
Участник
 
124 / 10 (1) +
Регистрация: 26.10.2004
Цитата:
Сообщение от Raul Посмотреть сообщение
Думаю что верный способ - обрабатывать поля талицы при экспорте в файл, например на триггере OnAfterFormatField вызывать ф-ю которая будет вырезать символы новой строки и перевода каретки. В теле ф-и написать примерно следущее

CrLf[1] := 13;CrLf[2] := 10; //Символ перевода каретки
Text := DELCHR(Text,'=',CrLf);

Правда если полей много, придется долго писать код в триггерах
На второй версии почему-то такой синтаксис не проходит. Если CrLf типа Code, то присваивание работает только как CrLf := '10'; и удалятся не знак перевода каретки, а просто число 10. Напрямую в DELCHR 10 тоже нельзя указать, требует Text или Code, а не Integer.
Старый 27.05.2009, 15:53   #5  
Raul is offline
Raul
Участник
 
35 / 10 (1) +
Регистрация: 15.03.2006
Незнаком со 2й версией, получается что в ней нет типа Char?
Старый 27.05.2009, 16:15   #6  
Yakuza is offline
Yakuza
Участник
 
124 / 10 (1) +
Регистрация: 26.10.2004
Char есть, но DELCHR (по описанию) работает только с Text и Code. В варианте, когда в текстовой переменно ищем char вызывает ошибку.
С Excel Buffer - не понял как использовать. Юзера вручную ведь заносят данные в формы, копи-пастом откуда угодно. Не обязательно из экселя.
Старый 27.05.2009, 16:41   #7  
Fordewind is offline
Fordewind
Участник
 
1,134 / 10 (3) +
Регистрация: 01.12.2005
Цитата:
Сообщение от Yakuza Посмотреть сообщение
С Excel Buffer - не понял как использовать. Юзера вручную ведь заносят данные в формы, копи-пастом откуда угодно. Не обязательно из экселя.
А Вам будет все равно какие символы стоят в поле. Выгрузите с невидимыми символами и загрузите с ними же. Сколько пользовался, никакие символы не сбивали Excel и он все рассовывал по нужным ячейкам.
Старый 27.05.2009, 16:46   #8  
Raul is offline
Raul
Участник
 
35 / 10 (1) +
Регистрация: 15.03.2006
Цитата:
Сообщение от Yakuza Посмотреть сообщение
Char есть, но DELCHR (по описанию) работает только с Text и Code. В варианте, когда в текстовой переменно ищем char вызывает ошибку.
С Excel Buffer - не понял как использовать. Юзера вручную ведь заносят данные в формы, копи-пастом откуда угодно. Не обязательно из экселя.
Тогда набор сиволов перевода каретки нужно создавать не в коде, а забить в константу. Завел константу скоприровал в нее пустую ячейку из екселя и вот тебе 2 квадартика которые надо искать и удалять В тройке работает )).
Старый 27.05.2009, 17:50   #9  
Yakuza is offline
Yakuza
Участник
 
124 / 10 (1) +
Регистрация: 26.10.2004
Цитата:
Сообщение от Raul Посмотреть сообщение
Тогда набор сиволов перевода каретки нужно создавать не в коде, а забить в константу. Завел константу скоприровал в нее пустую ячейку из екселя и вот тебе 2 квадартика которые надо искать и удалять В тройке работает )).
А в двушке нет констант
Думаю, еще поиграться с FORMAT, и вместо датапорта написать кодюнит, где тупо в файл писать строки, закрывая их кодами 10 и 13. Не знаю только, FORMAT вырежет эти символы или нет...
Старый 27.05.2009, 19:18   #10  
RedFox is offline
RedFox
Участник
 
1,441 / 10 (0) +
Регистрация: 28.12.2004
Адрес: Киев
Цитата:
Сообщение от Yakuza Посмотреть сообщение
А в двушке нет констант
Думаю, еще поиграться с FORMAT, и вместо датапорта написать кодюнит, где тупо в файл писать строки, закрывая их кодами 10 и 13. Не знаю только, FORMAT вырежет эти символы или нет..
Я двушку не знаю, но могу предположить, что можно выгружать с помощью символов, которые потом указать в качесте разделителей в 3-ке.
 


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

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

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