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

Программирование на Атлантисе (VIP, FCOM, ARD), FastReport

Модераторы: m0p3e, edward_K, Модераторы

Ответить
alfmaster
Новичок
Сообщения: 24
Зарегистрирован: 30 окт 2009, 13:02

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

Сообщение alfmaster »

Приветствую. Текстовый отчет из FastReport в формате Unicode - возможно ли? Например накладную на сбыт...
LaaLaa

Сообщение LaaLaa »

Сейчас для FastReport в Галактике используется ANSI версия Delphi 2007. С юникодом там есть определенные проблемы.

Возможно часть проблем снимется если перейти на Delphi 2010. Вопрос требует проработки.
alfmaster
Новичок
Сообщения: 24
Зарегистрирован: 30 окт 2009, 13:02

Сообщение alfmaster »

спасибо, жаль...
LaaLaa

Сообщение LaaLaa »

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

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

Т.е. почему именно текст должен быть на выходе и почему именно в юникоде?
alfmaster
Новичок
Сообщения: 24
Зарегистрирован: 30 окт 2009, 13:02

Сообщение alfmaster »

Суть в том, что клиент попросил предоставлять ему накладные на сбыт в xml-формате, а т.к. xml-экспорт накладных некорректный в галактике(да и полей многих нет), я сделал просто текстовую присоединенку(в виде xml) на основании сбытовой накладной, которую потом сохраняют как .тхт, но клиенту надо чтоб конечный файл был в unicode-кодировке, а галактика работает только с win и dos... :eek: надеюсь понятно изложил?
m0p3e
Местный житель
Сообщения: 1386
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Москва

Сообщение m0p3e »

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

Сообщение 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.
LaaLaa

Сообщение LaaLaa »

Я то думал, что вам нужен экспорт типа бизнес-текста в юникод.
alfmaster
Новичок
Сообщения: 24
Зарегистрирован: 30 окт 2009, 13:02

Сообщение alfmaster »

А этот код в новый-пустой отчет вставлять?
LaaLaa

Сообщение LaaLaa »

в любой.
Ответить