Создание отчетов в опенофисе (Виндовские программы под вайном - офтоп.)

Модератор: Модераторы разделов

gultyai
Сообщения: 15
ОС: windows XP+mandriva 2008pp

Создание отчетов в опенофисе

Сообщение gultyai »

В конце прошлого года портировал под линь свою же прогу и столкнулся с проблемой. В винде отчеты и справки генерировались в M$ офисе. После раздумий я чего-то такое накосипорил, но самому не нравится. Прогуливаясь в скорбных местах упокоения усопших тем, обнаружил что что-то такое было поднято два раза. Ссылки не даю, лень. Да и смотреть там в общем-то нечего.

May 7 2006, в 15:10: Master создает тему Создание отчетов, Создание отчетов и их портирование в отдельные форматы Проблема относилась у него конкретно к жабе. Ответа не получает. Сейчас на форуме вроде нет (или ник сменил).

Jul 12 2007, в 14:38 : aeroslav пытается снова Создание отчетов в OO.o2. Затем кидает ссылку, что нашел и тема умирает. ИМХО: aeroslav пролечил сам себя. По ссылке попадаем на текст как сделать отчеты в опене под виндой. Что-то такое я и пытался сделать - не получилось. И вообще, ИМХО, создание оле-объектов в линукс дело бесперспективное (или я их готовить не умею?). aeroslav был замечен мной на форуме. Пусть откликнется - может у него и получилось?

Возникают варианты:
1. Это никому не нужно и не интересно.
2. Это всем известно. Прошу тогда какую-нибудь коротышку: типа, запустил и в ooWriter открывается бессмертное "Hello, World!". Дальше разберусь сам.
3. Это не получается. Приходится делать отчеты по другому. Тогда я выложу что на(ш)кодил. Но предупреждаю сразу - примитивно и неинтересно до опупения.
Спасибо сказали:
Аватара пользователя
sirocco
Сообщения: 782
Статус: Задвинутый соучастник

Re: Создание отчетов в опенофисе

Сообщение sirocco »

ИМХО, лучше поискать/спросить здесь http://community.i-rs.ru/index.php#1
Спасибо сказали:
gultyai
Сообщения: 15
ОС: windows XP+mandriva 2008pp

Re: Создание отчетов в опенофисе

Сообщение gultyai »

sirocco писал(а):
09.08.2009 11:12
ИМХО, лучше поискать/спросить здесь http://community.i-rs.ru/index.php#1

Гуглил везде. Ничего не нашел. Впечатление - или никому не надо или все знают.
Спасибо сказали:
Аватара пользователя
sirocco
Сообщения: 782
Статус: Задвинутый соучастник

Re: Создание отчетов в опенофисе

Сообщение sirocco »

Спасибо сказали:
gultyai
Сообщения: 15
ОС: windows XP+mandriva 2008pp

Re: Создание отчетов в опенофисе

Сообщение gultyai »

sirocco писал(а):
09.08.2009 12:05
Это совсем не то? http://community.i-rs.ru/index.php/topic,10729.0.html

Или это http://www.google.ru/search?q=report+starbasic


Не, я имел в виду так. Вот прога. Нажимаешь в ней на батон и вуаля: запускается ooWriter в окне которого чтонидь вроде "отчет по ... за ......г." и дальше текст, таблицы и т.д. Смысл в этом тот что вопросы печати, сохранения и т.д. и т.п. оставить разработчикам опена.

ПЫСЫ: для опена в винде найти такую технологию можно во многих местах, а под линем нет.
Спасибо сказали:
Аватара пользователя
rm_
Сообщения: 3340
Статус: It's the GNU Age
ОС: Debian

Re: Создание отчетов в опенофисе

Сообщение rm_ »

gultyai
Почитайте доки по RTF-формату, лепите его в своей программе, сохраняйте в файл, потом на этот файл натравливайте опенофис.
Неохота заморачиваться RTF, делайте вообще - HTML.
Или если возможности RTF и HTML не устраивают, разберитесь с ODF.
Понять не могу, в чём проблема-то?
Спасибо сказали:
Аватара пользователя
Denjs
Сообщения: 1685
ОС: SuSe 10.2

Re: Создание отчетов в опенофисе

Сообщение Denjs »

rm_ писал(а):
09.08.2009 13:51
gultyai
Почитайте доки по RTF-формату, лепите его в своей программе, сохраняйте в файл, потом на этот файл натравливайте опенофис.
Неохота заморачиваться RTF, делайте вообще - HTML.
Или если возможности RTF и HTML не устраивают, разберитесь с ODF.
Понять не могу, в чём проблема-то?

Боюсь, что он хочет аналог com-объекта но для Linux - что бы управлять OpenOffice программно и менять/анализировать содержимое документа из дргуой программы. Что-то типа slave-mode но для OpenOffice.

Кстати, мне уже стало интересно.
Думаю надо понять как UniOffice и AutomateIT! работают с OpenOffice.

Другой - более перспективный вариант развития - найти инструментарий для программной генерации/создания документов формата .ODF : odt, ods и т.д.
Благо, на стандартный формат должен быть инструментарий.

UPD: вот сразу что всплыло http://www.linuxcenter.ru/news/2008/11/05/8850/

UPD: В принципе есть какой-то SDK, в том числе и для стороннего netBeans, потому думаю есть различные пути как решить поставленную задачу.
http://download.openoffice.org/3.1.0/sdk.html
Опять же : есть http://wiki.services.openoffice.org/wiki/D...evelopers_Guide :
"This manual describes how to write programs using the component technology UNO (Universal Network Objects) with OpenOffice.org." - похоже это то что надо.
QDroid - Среда исполнения и фреймворк для QtScript.
OTPD - Открытые драйвера промышленных принтеров чеков и этикеток (кроссплатформенная подсистема печати).
Спасибо сказали:
gultyai
Сообщения: 15
ОС: windows XP+mandriva 2008pp

Re: Создание отчетов в опенофисе

Сообщение gultyai »

Denjs писал(а):
09.08.2009 14:33
rm_ писал(а):
09.08.2009 13:51
gultyai
Почитайте доки по RTF-формату, лепите его в своей программе, сохраняйте в файл, потом на этот файл натравливайте опенофис.
Неохота заморачиваться RTF, делайте вообще - HTML.
Или если возможности RTF и HTML не устраивают, разберитесь с ODF.
Понять не могу, в чём проблема-то?

Боюсь, что он хочет аналог com-объекта но для Linux - что бы управлять OpenOffice программно и менять/анализировать содержимое документа из дргуой программы. Что-то типа slave-mode но для OpenOffice.

Кстати, мне уже стало интересно.
Думаю надо понять как UniOffice и AutomateIT! работают с OpenOffice.


Я кстати так тогда вопрос и решил. Именно в RTF и именно сначала записал а потом кинул в пасть опену. Но я уже говорил что это тривиально и неинтересно. А вот как тут для ворда. Вообще это в линуксе возможно? В винде дело стандартное. Запускается метод создания олеобъекта и ему передается имя COM объекта. А в линуксе нет таких возможностей?

PS Хотя вопрос стал более теоретическим. Раз мне советуют то же что и я делал, возможно это самый лучший путь.
Спасибо сказали:
Serik
Сообщения: 149
ОС: SuSE Linux

Re: Создание отчетов в опенофисе

Сообщение Serik »

Ананас использует OO для отчетов.
Спасибо сказали:
St.Andrey
Сообщения: 14

Re: Создание отчетов в опенофисе

Сообщение St.Andrey »

Вообще вроде бы в GAMBAS реализована подобная возможность. По крайне мере там похоже есть весь функционал MS VB который может работать и с MS офисов и с опен офисом.
Спасибо сказали:
Аватара пользователя
eddy
Сообщения: 3321
Статус: Красный глаз тролля
ОС: ArchLinux

Re: Создание отчетов в опенофисе

Сообщение eddy »

А зачем опенофис? Не лучше ли сразу в pdf экспортировать? По крайней мере, тогда ни у кого не будет проблем с открыванием/печатью такого отчета. А так - у кого-то ворда нет, у кого-то опенофиса, pdf-смотрелки же есть у всех (хотя, честно говоря, встречал я пару раз компьютеры с мастдаем без pdf смотрелок - но это уже клиника).

Еще лучше было бы, если бы эти программы параллельно экспортировали отчеты в латех, чтобы если надо, можно было там что-нибудь подправить. Уж экспорт в латех, ИМХО, намного проще организовать, чем в какой-нибудь docx.
RTFM
-------
KOI8-R - патриотичная кодировка Изображение
Спасибо сказали:
aikus
Сообщения: 6

Re: Создание отчетов в опенофисе

Сообщение aikus »

rm_ писал(а):
09.08.2009 13:51
gultyai
Понять не могу, в чём проблема-то?

Солидарен.

Если можно пожалуйста в коде что Вам нужно сделать?

и потом, что-то типа оле-объектов вроде в кедах было, если ни чего не напутал.
Спасибо сказали:
Аватара пользователя
begin2009
Сообщения: 349
Статус: Ламер со стажем
ОС: без глюков

Re: Создание отчетов в опенофисе

Сообщение begin2009 »

Если это кому-нибудь еще интересно, то поделюсь своими соображениями. Из всех форматов подходит только RTF. Просмотрите, ради интереса все другие форматы любым текстовым редактором. Только RTF является текстовым. Т.е., если что-то не понял - не нашел в руководствах, то можно написать данное в опен офисе и просмотреть в текстовом редакторе. И соответственно, разобраться как это реализовать. Формат RTF старый, но в нем можно вставлять не только таблицы, но и рисунки (это можно применить для логотипов, угловых штампов и т.д.) У меня была такая проблема и я написал библиотеку работы с RTF. конечно, все это сыро и неразвито. В конкретной программе пришлось многое делать прямой записью в файл, но идея понятна. Вдруг кому это надо. Я кину код (на паскале), извиняюсь, писал для себя, т.е. без комментариев. Что-то неясно - отвечу.

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

unit Urtf;

{$mode objfpc}{$H+}

interface

uses
  Classes, SysUtils, LconvEncoding;

type
   Align = (ql,qc,qr,qj);
   TFileRTF = object
     RTF: TextFile;
     procedure CreatFile(name: string);
     procedure CloseRTF;
     procedure print(txt: string; bold, italic, underline, LN: boolean;
               al: Align);
   end;

function separate(txt: string ): string;

implementation

function separate(txt: string ): string;
var i: integer;
    s: string;
begin
 s:='';
 txt:=UTF8toCP1251(txt);
 for i:=1 to length(txt) do
 case txt[i] of
  chr(192)..chr(223) : s:=s+''''+'c'+IntToStr(ord(txt[i])-192);
  else s:=s+txt[i];
 end;
 separate:=s;
end;

procedure TFileRTF.CreatFile(name: string);
begin
 AssignFile(RTF,name+'.rtf');
 ReWrite(RTF);
 writeln(RTF,'{\rtf1\ansiansicpg1251\');
 writeln(RTF,'{\fonttbl{\froman\fcharset204\fprq2 Times New Roman;}');
 writeln(RTF,'}');
 writeln(RTF,'\fs20');

end;

procedure TFileRTF.CloseRTF;
begin
 writeln(RTF,'}');
 CloseFile(RTF);
end;

procedure TFileRTF.print(txt: string; bold, italic, underline, LN: boolean;
               al: Align);
var s,a: string;
begin
 s:='{\';
 case al of
   ql: a:='ql\';
   qc: a:='qc\';
   qr: a:='qr\';
   qj: a:='qj\';
 end;
 s:=s+a;
 if bold then s:=s+'b\';
 if italic then s:=s+'i\';
 if underline then s:=s+'ul\';
 s:=s+'f35 ';
 s:=s+separate(txt);
 if LN then s:=s+'\par }' else s:=s+'}';;
 writeln(RTF,s);
end;

end.


PS Не сказал, но наверно надо. В RTF форматирование текста происходит своего рода тегами принцип как в HTML. Можно просмотреть текст в любом редакторе. Сначала шапка текста, затем сам текст с форматированием. Кирилицы там не ищите. Кирилические символы передаются кодом.
Пессимист видит темный туннель, оптимист видит свет в конце туннеля, реалист видит свет, туннель и поезд.
И только машинист видит этих трех идиотов, сидящих на рельсах.
Спасибо сказали:
Аватара пользователя
Portnov
Модератор
Сообщения: 1786
Статус: Матёрый линуксоид
ОС: Debian testing/unstable

Re: Создание отчетов в опенофисе

Сообщение Portnov »

Если openoffice действительно не имеет никаких средств для подобной интеграции, то вполне можно генерировать .odt/.ods 'вручную', формат почти текстовый (xml запаковано в zip) и относительно несложный. Ну и полностью документирован (и стандартизован).
Работа: Ubuntu 9.10
Дом: Debian testing/unstable и на всякий случай winxp в virtualbox.
Для разнообразия: моя домашняя страница -http://iportnov.ru
Спасибо сказали:
Аватара пользователя
begin2009
Сообщения: 349
Статус: Ламер со стажем
ОС: без глюков

Re: Создание отчетов в опенофисе

Сообщение begin2009 »

Portnov писал(а):
22.08.2009 21:20
Если openoffice действительно не имеет никаких средств для подобной интеграции, то вполне можно генерировать .odt/.ods 'вручную', формат почти текстовый (xml запаковано в zip) и относительно несложный. Ну и полностью документирован (и стандартизован).

В линуксе нет вообще технологий COM, OLE и т.д. Это чисто технологии MS. В Windows такие вещи делаются через них. У Фленова во многих книгах описано. В линуксе же приходится выбираться из ситуации описанным выше способом. За наводку на odt спасибо. Как-то не доходило. Вот сейчас открыл odt менеджером архивов и поразился - как все просто! Стили отдельно, информациа о тексте отдельно, текст с форматированием отдельно. Прекрасно, можно использовать. Но если задаться вопросом о переносимости, все-равно остается только RTF. Правда, я где-то видел, что для MS Offica есть какой-то модуль для чтения odt. Но не у всех же он установлен.
Пессимист видит темный туннель, оптимист видит свет в конце туннеля, реалист видит свет, туннель и поезд.
И только машинист видит этих трех идиотов, сидящих на рельсах.
Спасибо сказали:
Аватара пользователя
Portnov
Модератор
Сообщения: 1786
Статус: Матёрый линуксоид
ОС: Debian testing/unstable

Re: Создание отчетов в опенофисе

Сообщение Portnov »

ole/com нет. Но вполне может быть просто библиотека, скажем, для генерации odf, или dbus-интерфейс у опенофиса... Есть или нет - я не знаю, не смотрел, но вполне может быть.

Ещё одно довольно частое решение - генерировать LaTeX-код, который компилировать в pdf или ps.
Работа: Ubuntu 9.10
Дом: Debian testing/unstable и на всякий случай winxp в virtualbox.
Для разнообразия: моя домашняя страница -http://iportnov.ru
Спасибо сказали:
Аватара пользователя
begin2009
Сообщения: 349
Статус: Ламер со стажем
ОС: без глюков

Re: Создание отчетов в опенофисе

Сообщение begin2009 »

Portnov писал(а):
22.08.2009 23:39
ole/com нет. Но вполне может быть просто библиотека, скажем, для генерации odf, или dbus-интерфейс у опенофиса... Есть или нет - я не знаю, не смотрел, но вполне может быть.

Ещё одно довольно частое решение - генерировать LaTeX-код, который компилировать в pdf или ps.


Это тоже, вполне приемлимый ход. И даже возможно очень хороший, если оставаться в рамках линукса. Но я понял проблему так: при работе программы должен по нажатию кнопки выводиться отчет в опенофисе. Т.е. сразу в опене, а не компилировать его в дальнейшем. Хотя и генерацию и компиляцию можно реализовать в рамках одной процедуры и потом текст вызывать любым просмотрщиком PDF. Остается за бортом только возможность изменять полученный отчет, а так же если его сдавать какой-либо госструктуре. Получив в опене отчет в формате RTF, подправив при необходимости, сохранить его можно и в DOC. А вот если текст точно не будет изменен, согласен, PDF вариант лучший. Хотя бы тем, что везде выглядит одинаково.
Пессимист видит темный туннель, оптимист видит свет в конце туннеля, реалист видит свет, туннель и поезд.
И только машинист видит этих трех идиотов, сидящих на рельсах.
Спасибо сказали:
BIgAndy
Сообщения: 1923

Re: Создание отчетов в опенофисе

Сообщение BIgAndy »

вообще-то в ООО есть кошерный репортбилдер SRB.
Он создает отчеты в .odt иods форматах. Достатчно мощное стредство.
Базирован на Движке отчетов Pentaho, который тоже вполне самодостаточен для создания отчетов.ю
Спасибо сказали:
Аватара пользователя
begin2009
Сообщения: 349
Статус: Ламер со стажем
ОС: без глюков

Re: Создание отчетов в опенофисе

Сообщение begin2009 »

BIgAndy писал(а):
23.08.2009 15:33
вообще-то в ООО есть кошерный репортбилдер SRB.
Он создает отчеты в .odt иods форматах. Достатчно мощное стредство.
Базирован на Движке отчетов Pentaho, который тоже вполне самодостаточен для создания отчетов.ю

А его можно как-то вызвать из своей программы?
Пессимист видит темный туннель, оптимист видит свет в конце туннеля, реалист видит свет, туннель и поезд.
И только машинист видит этих трех идиотов, сидящих на рельсах.
Спасибо сказали:
alexf
Сообщения: 112

Re: Создание отчетов в опенофисе

Сообщение alexf »

В какой-то степени аналогом COM в Linux является D-Bus. Вот только я не знаю какой объём внутренней функциональности OO туда экспортирует - может быть и никакой. Но если нужные функции экспортируются, то это буквально то что вам нужно.

MS Office экспортирует в COM кажется всё что можно. )))
Спасибо сказали:
Аватара пользователя
begin2009
Сообщения: 349
Статус: Ламер со стажем
ОС: без глюков

Re: Создание отчетов в опенофисе

Сообщение begin2009 »

alexf писал(а):
25.08.2009 18:02
В какой-то степени аналогом COM в Linux является D-Bus. Вот только я не знаю какой объём внутренней функциональности OO туда экспортирует - может быть и никакой. Но если нужные функции экспортируются, то это буквально то что вам нужно.

MS Office экспортирует в COM кажется всё что можно. )))


Спасибо за наводку. В гугле спросил про D-Bus. Там все на английском, но зато много. Буду разбираться.
Пессимист видит темный туннель, оптимист видит свет в конце туннеля, реалист видит свет, туннель и поезд.
И только машинист видит этих трех идиотов, сидящих на рельсах.
Спасибо сказали: