Страница 1 из 1

Отчет из FastReport в формате Unicode

Добавлено: 11 май 2010, 12:34
alfmaster
Приветствую. Текстовый отчет из FastReport в формате Unicode - возможно ли? Например накладную на сбыт...

Добавлено: 11 май 2010, 17:05
LaaLaa
Сейчас для FastReport в Галактике используется ANSI версия Delphi 2007. С юникодом там есть определенные проблемы.

Возможно часть проблем снимется если перейти на Delphi 2010. Вопрос требует проработки.

Добавлено: 13 май 2010, 11:31
alfmaster
спасибо, жаль...

Добавлено: 13 май 2010, 13:41
LaaLaa
А можно попросить пример такого текстового файла в юникоде для накладной на сбыт. Т.е. пример файла который должен получаться на выходе.

И поясните в связи с чем такая потребность возникла?
Там должны быть тексты отличные от русского языка?
Или это какие то международные требования?

Т.е. почему именно текст должен быть на выходе и почему именно в юникоде?

Добавлено: 14 май 2010, 15:01
alfmaster
Суть в том, что клиент попросил предоставлять ему накладные на сбыт в xml-формате, а т.к. xml-экспорт накладных некорректный в галактике(да и полей многих нет), я сделал просто текстовую присоединенку(в виде xml) на основании сбытовой накладной, которую потом сохраняют как .тхт, но клиенту надо чтоб конечный файл был в unicode-кодировке, а галактика работает только с win и dos... :eek: надеюсь понятно изложил?

Добавлено: 14 май 2010, 15:17
m0p3e
Решал обратную проблему. Файло в юникоде закачивается в Галактику.
Для конвертации использовал консольный перекодировщик iconv.exe.
Т.е. в вашем случае формируете файл в 866-ой и запускаете строчник автоматом.

Добавлено: 17 май 2010, 11:54
LaaLaa
Но XML это вроде как бы не совсем текст 8-)

Чтобы формировать такие файлы лучше воспользоваться специальными библиотеками (например MSXML DOM).

Кстати вариант с FastReport (точнее с FastScript) может получиться. Если в форме FR для накладных есть все данные.

Поместите на закладку "Код" в FastReport этот скрипт и посмотрите, что получиться.

Код: Выделить всё

var
  dom, Head, el1, el2 : variant;

procedure GenXml;                                   
begin
  DOM :=CreateOleObject('Msxml2.DOMDocument.3.0'); 
  Head := DOM.createProcessingInstruction('xml', 'version="1.0" encoding="UTF-8"');  
  DOM.appendChild(Head);   
  el1 := DOM.createElement('body');    
  DOM.appendChild(el1);  

  el2 := DOM.createElement('Эелемент');
  el1.appendChild(el2);
  el2.text := 'Превед, йа элеменд';                                                                                 
  DOM.Save('C:\2.xml');
  dom := nil;
end;            

begin
  GenXml;           
end.

А в статье http://www.tyumbit.ru/gal_forum/viewtopic.php?t=10332 есть пример того, как делать программный обход источников данных в FastScript.

Добавлено: 17 май 2010, 12:05
LaaLaa
Я то думал, что вам нужен экспорт типа бизнес-текста в юникод.

Добавлено: 17 май 2010, 18:17
alfmaster
А этот код в новый-пустой отчет вставлять?

Добавлено: 18 май 2010, 07:53
LaaLaa
в любой.