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