Создание отчетов в опенофисе (Виндовские программы под вайном - офтоп.)
Модератор: Модераторы разделов
-
gultyai
- Сообщения: 15
- ОС: windows XP+mandriva 2008pp
Создание отчетов в опенофисе
В конце прошлого года портировал под линь свою же прогу и столкнулся с проблемой. В винде отчеты и справки генерировались в M$ офисе. После раздумий я чего-то такое накосипорил, но самому не нравится. Прогуливаясь в скорбных местах упокоения усопших тем, обнаружил что что-то такое было поднято два раза. Ссылки не даю, лень. Да и смотреть там в общем-то нечего.
May 7 2006, в 15:10: Master создает тему Создание отчетов, Создание отчетов и их портирование в отдельные форматы Проблема относилась у него конкретно к жабе. Ответа не получает. Сейчас на форуме вроде нет (или ник сменил).
Jul 12 2007, в 14:38 : aeroslav пытается снова Создание отчетов в OO.o2. Затем кидает ссылку, что нашел и тема умирает. ИМХО: aeroslav пролечил сам себя. По ссылке попадаем на текст как сделать отчеты в опене под виндой. Что-то такое я и пытался сделать - не получилось. И вообще, ИМХО, создание оле-объектов в линукс дело бесперспективное (или я их готовить не умею?). aeroslav был замечен мной на форуме. Пусть откликнется - может у него и получилось?
Возникают варианты:
1. Это никому не нужно и не интересно.
2. Это всем известно. Прошу тогда какую-нибудь коротышку: типа, запустил и в ooWriter открывается бессмертное "Hello, World!". Дальше разберусь сам.
3. Это не получается. Приходится делать отчеты по другому. Тогда я выложу что на(ш)кодил. Но предупреждаю сразу - примитивно и неинтересно до опупения.
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: Создание отчетов в опенофисе
ИМХО, лучше поискать/спросить здесь http://community.i-rs.ru/index.php#1
-
gultyai
- Сообщения: 15
- ОС: windows XP+mandriva 2008pp
Re: Создание отчетов в опенофисе
sirocco писал(а): ↑09.08.2009 11:12ИМХО, лучше поискать/спросить здесь http://community.i-rs.ru/index.php#1
Гуглил везде. Ничего не нашел. Впечатление - или никому не надо или все знают.
-
sirocco
- Сообщения: 782
- Статус: Задвинутый соучастник
-
gultyai
- Сообщения: 15
- ОС: windows XP+mandriva 2008pp
Re: Создание отчетов в опенофисе
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: Создание отчетов в опенофисе
gultyai
Почитайте доки по RTF-формату, лепите его в своей программе, сохраняйте в файл, потом на этот файл натравливайте опенофис.
Неохота заморачиваться RTF, делайте вообще - HTML.
Или если возможности RTF и HTML не устраивают, разберитесь с ODF.
Понять не могу, в чём проблема-то?
Почитайте доки по RTF-формату, лепите его в своей программе, сохраняйте в файл, потом на этот файл натравливайте опенофис.
Неохота заморачиваться RTF, делайте вообще - HTML.
Или если возможности RTF и HTML не устраивают, разберитесь с ODF.
Понять не могу, в чём проблема-то?
-
Denjs
- Сообщения: 1685
- ОС: SuSe 10.2
Re: Создание отчетов в опенофисе
rm_ писал(а): ↑09.08.2009 13:51gultyai
Почитайте доки по 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." - похоже это то что надо.
-
gultyai
- Сообщения: 15
- ОС: windows XP+mandriva 2008pp
Re: Создание отчетов в опенофисе
Denjs писал(а): ↑09.08.2009 14:33rm_ писал(а): ↑09.08.2009 13:51gultyai
Почитайте доки по RTF-формату, лепите его в своей программе, сохраняйте в файл, потом на этот файл натравливайте опенофис.
Неохота заморачиваться RTF, делайте вообще - HTML.
Или если возможности RTF и HTML не устраивают, разберитесь с ODF.
Понять не могу, в чём проблема-то?
Боюсь, что он хочет аналог com-объекта но для Linux - что бы управлять OpenOffice программно и менять/анализировать содержимое документа из дргуой программы. Что-то типа slave-mode но для OpenOffice.
Кстати, мне уже стало интересно.
Думаю надо понять как UniOffice и AutomateIT! работают с OpenOffice.
Я кстати так тогда вопрос и решил. Именно в RTF и именно сначала записал а потом кинул в пасть опену. Но я уже говорил что это тривиально и неинтересно. А вот как тут для ворда. Вообще это в линуксе возможно? В винде дело стандартное. Запускается метод создания олеобъекта и ему передается имя COM объекта. А в линуксе нет таких возможностей?
PS Хотя вопрос стал более теоретическим. Раз мне советуют то же что и я делал, возможно это самый лучший путь.
-
Serik
- Сообщения: 149
- ОС: SuSE Linux
Re: Создание отчетов в опенофисе
Ананас использует OO для отчетов.
-
St.Andrey
- Сообщения: 14
Re: Создание отчетов в опенофисе
Вообще вроде бы в GAMBAS реализована подобная возможность. По крайне мере там похоже есть весь функционал MS VB который может работать и с MS офисов и с опен офисом.
-
eddy
- Сообщения: 3321
- Статус: Красный глаз тролля
- ОС: ArchLinux
Re: Создание отчетов в опенофисе
А зачем опенофис? Не лучше ли сразу в pdf экспортировать? По крайней мере, тогда ни у кого не будет проблем с открыванием/печатью такого отчета. А так - у кого-то ворда нет, у кого-то опенофиса, pdf-смотрелки же есть у всех (хотя, честно говоря, встречал я пару раз компьютеры с мастдаем без pdf смотрелок - но это уже клиника).
Еще лучше было бы, если бы эти программы параллельно экспортировали отчеты в латех, чтобы если надо, можно было там что-нибудь подправить. Уж экспорт в латех, ИМХО, намного проще организовать, чем в какой-нибудь docx.
Еще лучше было бы, если бы эти программы параллельно экспортировали отчеты в латех, чтобы если надо, можно было там что-нибудь подправить. Уж экспорт в латех, ИМХО, намного проще организовать, чем в какой-нибудь docx.
RTFM
-------
KOI8-R - патриотичная кодировка
-------
KOI8-R - патриотичная кодировка
-
aikus
- Сообщения: 6
-
begin2009
- Сообщения: 349
- Статус: Ламер со стажем
- ОС: без глюков
Re: Создание отчетов в опенофисе
Если это кому-нибудь еще интересно, то поделюсь своими соображениями. Из всех форматов подходит только RTF. Просмотрите, ради интереса все другие форматы любым текстовым редактором. Только RTF является текстовым. Т.е., если что-то не понял - не нашел в руководствах, то можно написать данное в опен офисе и просмотреть в текстовом редакторе. И соответственно, разобраться как это реализовать. Формат RTF старый, но в нем можно вставлять не только таблицы, но и рисунки (это можно применить для логотипов, угловых штампов и т.д.) У меня была такая проблема и я написал библиотеку работы с RTF. конечно, все это сыро и неразвито. В конкретной программе пришлось многое делать прямой записью в файл, но идея понятна. Вдруг кому это надо. Я кину код (на паскале), извиняюсь, писал для себя, т.е. без комментариев. Что-то неясно - отвечу.
PS Не сказал, но наверно надо. В RTF форматирование текста происходит своего рода тегами принцип как в HTML. Можно просмотреть текст в любом редакторе. Сначала шапка текста, затем сам текст с форматированием. Кирилицы там не ищите. Кирилические символы передаются кодом.
Код: Выделить всё
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: Создание отчетов в опенофисе
Если openoffice действительно не имеет никаких средств для подобной интеграции, то вполне можно генерировать .odt/.ods 'вручную', формат почти текстовый (xml запаковано в zip) и относительно несложный. Ну и полностью документирован (и стандартизован).
Работа: Ubuntu 9.10
Дом: Debian testing/unstable и на всякий случай winxp в virtualbox.
Для разнообразия: моя домашняя страница -http://iportnov.ru
Дом: Debian testing/unstable и на всякий случай winxp в virtualbox.
Для разнообразия: моя домашняя страница -http://iportnov.ru
Спасибо сказали:
-
begin2009
- Сообщения: 349
- Статус: Ламер со стажем
- ОС: без глюков
Re: Создание отчетов в опенофисе
В линуксе нет вообще технологий COM, OLE и т.д. Это чисто технологии MS. В Windows такие вещи делаются через них. У Фленова во многих книгах описано. В линуксе же приходится выбираться из ситуации описанным выше способом. За наводку на odt спасибо. Как-то не доходило. Вот сейчас открыл odt менеджером архивов и поразился - как все просто! Стили отдельно, информациа о тексте отдельно, текст с форматированием отдельно. Прекрасно, можно использовать. Но если задаться вопросом о переносимости, все-равно остается только RTF. Правда, я где-то видел, что для MS Offica есть какой-то модуль для чтения odt. Но не у всех же он установлен.
Пессимист видит темный туннель, оптимист видит свет в конце туннеля, реалист видит свет, туннель и поезд.
И только машинист видит этих трех идиотов, сидящих на рельсах.
И только машинист видит этих трех идиотов, сидящих на рельсах.
-
Portnov
- Модератор
- Сообщения: 1786
- Статус: Матёрый линуксоид
- ОС: Debian testing/unstable
Re: Создание отчетов в опенофисе
ole/com нет. Но вполне может быть просто библиотека, скажем, для генерации odf, или dbus-интерфейс у опенофиса... Есть или нет - я не знаю, не смотрел, но вполне может быть.
Ещё одно довольно частое решение - генерировать LaTeX-код, который компилировать в pdf или ps.
Ещё одно довольно частое решение - генерировать LaTeX-код, который компилировать в pdf или ps.
Работа: Ubuntu 9.10
Дом: Debian testing/unstable и на всякий случай winxp в virtualbox.
Для разнообразия: моя домашняя страница -http://iportnov.ru
Дом: Debian testing/unstable и на всякий случай winxp в virtualbox.
Для разнообразия: моя домашняя страница -http://iportnov.ru
-
begin2009
- Сообщения: 349
- Статус: Ламер со стажем
- ОС: без глюков
Re: Создание отчетов в опенофисе
Portnov писал(а): ↑22.08.2009 23:39ole/com нет. Но вполне может быть просто библиотека, скажем, для генерации odf, или dbus-интерфейс у опенофиса... Есть или нет - я не знаю, не смотрел, но вполне может быть.
Ещё одно довольно частое решение - генерировать LaTeX-код, который компилировать в pdf или ps.
Это тоже, вполне приемлимый ход. И даже возможно очень хороший, если оставаться в рамках линукса. Но я понял проблему так: при работе программы должен по нажатию кнопки выводиться отчет в опенофисе. Т.е. сразу в опене, а не компилировать его в дальнейшем. Хотя и генерацию и компиляцию можно реализовать в рамках одной процедуры и потом текст вызывать любым просмотрщиком PDF. Остается за бортом только возможность изменять полученный отчет, а так же если его сдавать какой-либо госструктуре. Получив в опене отчет в формате RTF, подправив при необходимости, сохранить его можно и в DOC. А вот если текст точно не будет изменен, согласен, PDF вариант лучший. Хотя бы тем, что везде выглядит одинаково.
Пессимист видит темный туннель, оптимист видит свет в конце туннеля, реалист видит свет, туннель и поезд.
И только машинист видит этих трех идиотов, сидящих на рельсах.
И только машинист видит этих трех идиотов, сидящих на рельсах.
-
BIgAndy
- Сообщения: 1923
Re: Создание отчетов в опенофисе
вообще-то в ООО есть кошерный репортбилдер SRB.
Он создает отчеты в .odt иods форматах. Достатчно мощное стредство.
Базирован на Движке отчетов Pentaho, который тоже вполне самодостаточен для создания отчетов.ю
Он создает отчеты в .odt иods форматах. Достатчно мощное стредство.
Базирован на Движке отчетов Pentaho, который тоже вполне самодостаточен для создания отчетов.ю
-
begin2009
- Сообщения: 349
- Статус: Ламер со стажем
- ОС: без глюков
Re: Создание отчетов в опенофисе
А его можно как-то вызвать из своей программы?
Пессимист видит темный туннель, оптимист видит свет в конце туннеля, реалист видит свет, туннель и поезд.
И только машинист видит этих трех идиотов, сидящих на рельсах.
И только машинист видит этих трех идиотов, сидящих на рельсах.
-
alexf
- Сообщения: 112
Re: Создание отчетов в опенофисе
В какой-то степени аналогом COM в Linux является D-Bus. Вот только я не знаю какой объём внутренней функциональности OO туда экспортирует - может быть и никакой. Но если нужные функции экспортируются, то это буквально то что вам нужно.
MS Office экспортирует в COM кажется всё что можно. )))
MS Office экспортирует в COM кажется всё что можно. )))
Спасибо сказали:
-
begin2009
- Сообщения: 349
- Статус: Ламер со стажем
- ОС: без глюков
Re: Создание отчетов в опенофисе
alexf писал(а): ↑25.08.2009 18:02В какой-то степени аналогом COM в Linux является D-Bus. Вот только я не знаю какой объём внутренней функциональности OO туда экспортирует - может быть и никакой. Но если нужные функции экспортируются, то это буквально то что вам нужно.
MS Office экспортирует в COM кажется всё что можно. )))
Спасибо за наводку. В гугле спросил про D-Bus. Там все на английском, но зато много. Буду разбираться.
Пессимист видит темный туннель, оптимист видит свет в конце туннеля, реалист видит свет, туннель и поезд.
И только машинист видит этих трех идиотов, сидящих на рельсах.
И только машинист видит этих трех идиотов, сидящих на рельсах.