:: Обсуждаем проекты
Формирование отчета в ODS (Open Office)
maple4
Автор

Сообщений: 210
Откуда: Москва
Дата регистрации: 26.10.2007
Сделал программу для генерации отчетов в формате ODS (раньше было только в xml).
Естественно, с поддержкой графики.

Теперь, в зависимости от формата бланка - xml или ods - формируется отчет xml для открытия в Excel или отчет в формате ods для открытия в Open Office.
Осталось разобраться с xlsx

Проблему с морганием DOS-окна так и не решил (создание отчета в ODS требует разархивирования и архивации в zip-файл, для работы с архивом использую 7za.exe с параметрами).

Нужны мнения и советы.

В архиве (486 Кб) находятся исходники программы, файл помощи readme.htm, а также программа 7za.exe.
http://www.maple4.ru/a_downloads_for_maple4_ru/maple4_report_generator.zip

Информация о программе на сайте (описание, примеры запуска):
http://www.maple4.ru/xmlbuilder.htm

Данная программа (Maple4 Report Generator, m4rg ) НЕ ЯВЛЯЕТСЯ конвертором.
Это ГЕНЕРАТОР ОТЧЕТОВ по заранее созданным (в Open Office или Excel) бланкам.

пример запуска для формирования отчета в ods Open Office
DO start.prg WITH "test_lists_ods.ods","проба test_lists2.ods"

пример запуска для формирования отчета в xml Excel
DO start.prg WITH "test_lists.xml","проба test_lists2.xml"

запуск start.prg без параметров - выбор бланка (ods или xml) вручную[attachment 10587 file_blank_report50_80.jpg]



Исправлено 1 раз(а). Последнее : maple4, 31.08.10 14:56
Ratings: 0 negative/0 positive
Re: Формирование отчета в ODS (Open Office)
ssa

Сообщений: 13007
Откуда: Москва
Дата регистрации: 23.03.2005
maple4
Проблему с морганием DOS-окна так и не решил (создание отчета в ODS требует разархивирования и архивации в zip-файл, для работы с архивом использую 7za.exe с параметрами).
Нужны мнения и советы.
Решение для этой проблемы демонстрировалось уже не единожды в основном форуме.

------------------
Лень - это неосознанная мудрость.
Ratings: 0 negative/0 positive
Re: Формирование отчета в ODS (Open Office)
maple4
Автор

Сообщений: 210
Откуда: Москва
Дата регистрации: 26.10.2007
С проблемой "моргания" пробовал бороться, как было предложено здесь:
forum.foxclub.ru

m.command = "cmd.exe /c 7za.exe a -r -y -tzip -x!*.zip backup\&file backup\*.*"
WshShell = CREATEOBJECT("WScript.Shell")
WshShell.RUN(m.command, 1, .T.)
но, окна все равно появлялись (7za - хорошая штука , остановился пока на ней, если ничего не получится - буду думать )

Вообще, думал пообщаться с гуру ODS/Open Office (если таковые имеются).
А "Нужны мнения и советы" относилось в целом к проекту , который, желательно, хотя бы запустить.

Вопросов много.
Например, как сделать динамическое добавление рисунков при генерации отчета (они будут автоматом добавляться в каталог Pictures)? Размер рисунка в пикселях я определю, а вот как узнать размеры в см для размещения информации в content.xml? И какая минимальная конструкция (не вызывающая ошибок открытия файла) для размещения рисунка? Как можно определить,к какой ячейке будет относиться размещаемый рисунок? Или ячейка размещения не играет роли?

В какие файлы, кроме content.xml нужно что писать (сейчас пока - ТОЛЬКО в content.xml, и файл открывается без ошибок)?

Как то-же самое (как с формированием ODS) сделать в xlsx? Принцип, наверное, тот же... и все же.

Хотел бы услышать: "у меня не работает тут и тут". Или наоборот.
И вообще, есть ли смысл генерации в ods?
Ratings: 0 negative/0 positive
Re: Формирование отчета в ODS (Open Office)
BOBAN

Сообщений: 625
Откуда: Солигорск
Дата регистрации: 05.07.2004
Для работы с zip
www.sweetpotatosoftware.com
Ratings: 0 negative/0 positive
Re: Формирование отчета в ODS (Open Office)
maple4
Автор

Сообщений: 210
Откуда: Москва
Дата регистрации: 26.10.2007
немного переделав код (СПАСИБО за подсказку!)
filecont = [7za.exe a "]+vihod_report+'" "'+systemp+[content.xml]+[" -y -tzip]
WshShell = CREATEOBJECT("WScript.Shell")
WshShell.RUN(filecont ,0,.t.)

... выложил новую версию без всплывающих окон
www.maple4.ru
Ratings: 0 negative/0 positive
Re: Формирование отчета в ODS (Open Office)
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
Возможно это пустое предубеждение, но для такого рода компоненты я бы использовал способ запуска на основе АПИ CreateProcess... С отслеживанием кода завершения, и, конечно, тоже без всяких левых окон консоли.


------------------
WBR, Igor
Ratings: 0 negative/0 positive
Re: Формирование отчета в ODS (Open Office)
piva

Сообщений: 18655
Откуда: Курган
Дата регистрации: 24.03.2004
тем более моя прога Process.prg где-то тут и как раз на основе CreateProcess ;)


------------------
Часто бывает так, что есть над чем задуматься, а нечем.
Ratings: 0 negative/0 positive
Re: Формирование отчета в ODS (Open Office)
maple4
Автор

Сообщений: 210
Откуда: Москва
Дата регистрации: 26.10.2007
Обновлен архив программы Maple4 Report Generator
http://www.maple4.ru/a_downloads_for_maple4_ru/maple4_report_generator.zip

Исправлен баг с кодировкой (при работе с ods)
Оптимизирована работа с генерацией строк по условию - более быстрая работа.

На листе Сальдо в каждом из бланков, в примечании ячейки в первой колонке строки detail размещено условие вставки строки в генерируемый отчет (для примера).
Если услуга Интернет - вставляется блок из двух строк, выделенных цветом, иначе - одна обычная строка.


P.S.
Несмотря на то, что есть выбор файла xlsx - генерация по данному типу бланков не работает (все в процессе создания).
Пока есть только считывание, разбор на составляющие и определение структуры отчета.


Информация о программе на сайте (описание, примеры запуска):
http://www.maple4.ru/xmlbuilder.htm
Ratings: 0 negative/0 positive
Re: Формирование отчета в ODS (Open Office)
maple4
Автор

Сообщений: 210
Откуда: Москва
Дата регистрации: 26.10.2007
Как меня этот xlsx... замучил... Не то слово.

Претензии к Microsoft:
1. Начну с общих формул.
Ну почему не сделать так же, как с общими строками, т.е. вынести в отдельный файл?
Сейчас же пока такое даже не обрабатывается - просто я не смог добиться, что бы Excel вставил общую формулу в ячейку А вдруг потом вставит?

2. Ну зачем (тут раньше было другое слово), спрашивается, такое огромное количество файлов?
Отдельные листы, отдельные примечания и т.д. и т.п.
Хотя проблемы генерации файлов, как таковой, нет. Т.е. все решаемо

3. Вставка картинок.
Вот это действительно проблема. Я еще даже не понял КАК это можно сделать.
Поэтому, очень нужен совет тех, кто с xlsx разобрался (ну как же ods прост по сравнению с xlsx...).
ICQ: 226-071-270


Может вообще "забить" на генерацию xlsx-файлов? Для пользователей Excel есть обычный xml (правда, без поддержки картинок).

Кроме того, сам Microsoft Office УЖЕ поддерживает формат ODS (после установки соответствующего обновления).

Или, может есть бесплатные конверторы ODS->XLSX(XLS) с запуском из коммандной строки (вот это была бы вещь )?


P.S.
Если не получится с картинками в xlsx (в принципе, остальное все готово) - даже не знаю, чего делать.
Ratings: 0 negative/0 positive
Re: Формирование отчета в ODS (Open Office)
maple4
Автор

Сообщений: 210
Откуда: Москва
Дата регистрации: 26.10.2007
Спасибо sphinx за подсказанное решение конвертации ods->xls!
forum.foxclub.ru

Необходим установленный Open Office!

1. Скачивается JODConverter (последней версии, например 2.2.2)
http://sourceforge.net/projects/jodconverter/files/

2. Архив распаковывается в нужное место на диске.

3. Настройка open office для работы конвертера (у меня office находится здесь) - из строки или ярлыка - запускается 1 раз
"C:\Program Files\OpenOffice.org 3\program\soffice.exe" -accept="socket,port=8100;urp;"

4. Запуск конвертации из строки или ярлыка
C:\WINDOWS\system32\java.exe -jar jodconverter-cli-2.2.2.jar report_test_lists_ods.ods report_test_lists_ods.xls

Через некоторое время выложу версию программы с авто-конвертацией.
Выводы :
а) С xlsx - завязываю (как и с docx!) - ну слишком сложный формат... для логического понимания

б) Нет необходимости создания двух бланков для различных офисов!



Исправлено 3 раз(а). Последнее : maple4, 15.09.10 14:08
Ratings: 0 negative/0 positive


Извините, только зарегистрированные пользователи могут оставлять сообщения в этом форуме.

On-line: 3 (Гостей: 3)

© 2000-2024 Fox Club 
Яндекс.Метрика