![]() |
#1 |
Участник
|
Сделана интеграция двух версий 2.00 и 3.70. Из первой выгружаются через датапорт некие данные в файл, во вторую импортируются. Импорт зачастую не удается по причине того, что при экспорте в файл выгружаются все символы, в том числа табуляции и перевода строки. И в 3.70 начинается путаница при импорте, пытается засунуть совсем в другие ячейки таблицы. Выяснил, что в 2.00 эти символы попадают в основном из экселя, когда копируют данные в ячейке и переносят в поле навижн. Вместе с данными переносятся еще и по два невидимых символа.
При этом раньше их в навижне еще можно было видеть в виде вертикальных толстых палочек, но с переходом на новую операционнку они стали невидимыми, и искать и удалять их стало очень сложно ![]() |
|
![]() |
#2 |
Участник
|
Думаю что верный способ - обрабатывать поля талицы при экспорте в файл, например на триггере OnAfterFormatField вызывать ф-ю которая будет вырезать символы новой строки и перевода каретки. В теле ф-и написать примерно следущее
CrLf[1] := 13;CrLf[2] := 10; //Символ перевода каретки Text := DELCHR(Text,'=',CrLf); Правда если полей много, придется долго писать код в триггерах ![]() |
|
![]() |
#3 |
Участник
|
Цитата:
Сообщение от Yakuza
![]() Сделана интеграция двух версий 2.00 и 3.70. Из первой выгружаются через датапорт некие данные в файл, во вторую импортируются. Импорт зачастую не удается по причине того, что при экспорте в файл выгружаются все символы, в том числа табуляции и перевода строки. И в 3.70 начинается путаница при импорте, пытается засунуть совсем в другие ячейки таблицы. Выяснил, что в 2.00 эти символы попадают в основном из экселя, когда копируют данные в ячейке и переносят в поле навижн. Вместе с данными переносятся еще и по два невидимых символа.
При этом раньше их в навижне еще можно было видеть в виде вертикальных толстых палочек, но с переходом на новую операционнку они стали невидимыми, и искать и удалять их стало очень сложно ![]() Правда если речь идет об очень больших объемах, то работать будет медленно... |
|
![]() |
#4 |
Участник
|
Цитата:
Сообщение от Raul
![]() Думаю что верный способ - обрабатывать поля талицы при экспорте в файл, например на триггере OnAfterFormatField вызывать ф-ю которая будет вырезать символы новой строки и перевода каретки. В теле ф-и написать примерно следущее
CrLf[1] := 13;CrLf[2] := 10; //Символ перевода каретки Text := DELCHR(Text,'=',CrLf); Правда если полей много, придется долго писать код в триггерах ![]() |
|
![]() |
#5 |
Участник
|
Незнаком со 2й версией, получается что в ней нет типа Char?
|
|
![]() |
#6 |
Участник
|
Char есть, но DELCHR (по описанию) работает только с Text и Code. В варианте, когда в текстовой переменно ищем char вызывает ошибку.
С Excel Buffer - не понял как использовать. Юзера вручную ведь заносят данные в формы, копи-пастом откуда угодно. Не обязательно из экселя. |
|
![]() |
#7 |
Участник
|
А Вам будет все равно какие символы стоят в поле. Выгрузите с невидимыми символами и загрузите с ними же. Сколько пользовался, никакие символы не сбивали Excel и он все рассовывал по нужным ячейкам.
|
|
![]() |
#8 |
Участник
|
Цитата:
![]() |
|
![]() |
#9 |
Участник
|
Цитата:
![]() Думаю, еще поиграться с FORMAT, и вместо датапорта написать кодюнит, где тупо в файл писать строки, закрывая их кодами 10 и 13. Не знаю только, FORMAT вырежет эти символы или нет... |
|
![]() |
#10 |
Участник
|
Я двушку не знаю, но могу предположить, что можно выгружать с помощью символов, которые потом указать в качесте разделителей в 3-ке.
|
|