powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Генерация отчетов в ODS (Open Office, с поддержкой графики) и XML (Excel)
15 сообщений из 15, страница 1 из 1
Генерация отчетов в ODS (Open Office, с поддержкой графики) и XML (Excel)
    #36821290
maple4
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Переделав проект с XML ( Работа только с XML ) создал новый:

Maple4 Report Generator (m4rg)
Данная программа НЕ ЯВЛЯЕТСЯ конвертором.

Это ГЕНЕРАТОР ОТЧЕТОВ по заранее созданным бланкам (ods Open Office, xml Excel, в дальнейшем, при достаточном интересе, так-же планируется поддержка xlsx Excel 2007)

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

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

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

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

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

пример запуска для формирования отчета в 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) вручную


Не стреляйте в пианиста, он играет как умеет
...
Рейтинг: 0 / 0
Генерация отчетов в ODS (Open Office, с поддержкой графики) и XML (Excel)
    #36823360
maple4
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Похоже, либо я - спамер, либо данная тема просто никому не интересна :(

И все же...
К знатокам ods (Open Office).
Хочу сделать динамическое добавление рисунков в ods (в момент формирования отчета рисунки будут копироваться в каталог Pictures).
Проблема в том, что в основном файле - content.xml - размеры указаны в см, а могу узнать только в пикселях.
Можно ли обойти данную проблему (размеры буду выставлять автоматически из программы формирования)?
Связано с этим - где размещать картинку, в какой ячейке? И есть ли разница?
Пример тега выдран из content.xml (из ячейки D4):
<draw:frame table:end-cell-address="'Лист бланк'. D5 " table:end-x="1.94cm" table:end-y="0.722cm" draw:z-index="0" draw:name="Изображения 2" draw:style-name="gr1" draw:text-style-name="P1" svg:width=" 1.651cm " svg:height=" 0.659cm " svg:x="0.289cm" svg:y="0.063cm">


P.S.
Обязуюсь не писать сюда, когда сделаю поддержку в xlsx.
Просьба тему закрыть, а меня забанить.
...
Рейтинг: 0 / 0
Генерация отчетов в ODS (Open Office, с поддержкой графики) и XML (Excel)
    #36827522
maple4
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
немного переделав код ( СПАСИБО за подсказку!)
Код: plaintext
1.
2.
3.
filecont = [7za.exe a "]+vihod_report+'" "'+systemp+[content.xml]+[" -y -tzip]
WshShell = CREATEOBJECT("WScript.Shell")
WshShell.RUN(filecont ,[color=Blue] [b]0 [/color][/b],.t.)

... выложил новую версию без всплывающих окон
http://www.maple4.ru/a_downloads_for_maple4_ru/maple4_report_generator.zip
...
Рейтинг: 0 / 0
Генерация отчетов в ODS (Open Office, с поддержкой графики) и XML (Excel)
    #36828365
Sea_Cat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
maple4,

Не стоит впадать в уныние !

Генератор отчетов - это только одна из областей применения данной программы (и ей подобных). Если взять только отчеты, то "родной" фоксовский репорт позволяет сделать почти все, кроме экспорта данных в офисные форматы и редактирования готовых отчетов (сколько раз бывало, что подпись в конце документа отрывается на последний пустой лист - и можно только развести руками)

Excel или OO Calc - сами по себе являются мощными инструментами анализа и визуализации данных, многие пользователи хорошо ими владеют и создают свои мини-приложения.
Экспорт данных в табличные процессоры позволяет существенно расширить функциональность программ. Если Вас "достали" привередливые" пользователи (тут сделай крупней шрифт, тут переставь колонки, измени сортировку и т.п.) - сделайте экспорт в Excel и пусть он сам реализует все свои "хотелки".

Формат XLS (a теперь и ODS) часто используются как шлюзы для передачи данных между программами - например в 1С.

Кроме того, пользователи часто обмениваются документами Excel (OO Calc) по E-Mail. А попробуйте отправить фоксовский отчет - получится только через виртуальный принтер в XPS или PDF формате.

Короче - экспорт данных и фокса в XLS - ODF позволяет ликвидировать информационный разрыв между программи на Фоксе и средой MS Office или Open Office, сделать табличные процессоры частью своих приложений. Имеющиеся в Фоксе штатные средства экспорта-импорта несовершенны и сильно устарели.
Эта же программа позволяет делать сложные выборки даже из "чужих" программ, не изменяя их. Это полезно тем, кто сопровождает программы сторонних разработчиков.
Чем больше будет разных инструментов - тем легче жизнь разработчика.
...
Рейтинг: 0 / 0
Генерация отчетов в ODS (Open Office, с поддержкой графики) и XML (Excel)
    #36829481
puls
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет,мне понравилься Ваша идея.Думаю стоить продолжать.Спосибо.
...
Рейтинг: 0 / 0
Генерация отчетов в ODS (Open Office, с поддержкой графики) и XML (Excel)
    #36829582
igorbik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maple4,

Sea_cat написал Вам то, что я уже писал на сайт несколько лет назад.

Речь идет о почти единственном недостатке репортовых отчетов - невозможности править перед печатью.
Да, с одной стороны, есть в этом резон,- невозможность вносить изменения без изменений исходных данных, но тот, кто работает со специфической информацией, непредсказуемой по объему и содержанию, должен иметь возможность корректировки перед печатью.

Можно сказать, это единственный серьезный недостаток, из-за чего приходится выводить данные в другие офисные приложения и там править перед печатью.

Вот почему и молчит сообщество...

Коль скоро Вы - фанат Фокса и хотите облегчить жизнь лисоводам, всяческие репорты есть смысл переписывать только с целью добавить функциональность, недостающую в родном фоксовом репорте. И в первую очередь - возможность исправлений перед печатью. Хотя бы править текст, рамки пока можно не трогать. Хотя только пока.

И еще. На сегодня той документации, что есть, не хватает, чтобы научиться пользоваться вашими, не скрою, талантливыми разработками. Нужны серьезные разработки типа "для тупых", где все пошагово показано и рассказано. Вплоть до визардов.
...
Рейтинг: 0 / 0
Генерация отчетов в ODS (Open Office, с поддержкой графики) и XML (Excel)
    #36832880
Sea_Cat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
igorbik

Речь идет о почти единственном недостатке репортовых отчетов - невозможности править перед печатью.

Не совсем с Вами согласен. Может быть я не типичный фокс-программист, но у меня процентов 60-65 отчетов делается через Excel при помощи E-Report, 2-3% - штатным репортом, остальное - через Word (OO Writer) при помощи GenRep. Почему ?

Во первых, штатным репортом довольно сложно реализовать отчеты с кросс-табуляцией, когда число колонок заранее не определено и обычно выходит за пределы ширины листа. В E-Report это делается одной строкой кода (плюс шаблон).

Во вторых, приходится выпускать большое количество сложных по форме документов, у которых табличная часть состоит всего из одной -двух строк. Гораздо проще взять в Сети готовый шаблон (.XLS или .DOC файл) и за 15-20 минут сделать шаблон для Е-Report или GenRep , чем рисовать все это в штатном репорте. В этом сила шаблонных генераторов.

Проблема возникла с появлением Open Office - если ОО Writer без проблем обрабатывает RTF файл, создаваемый GenRep, то OO Calc не работает с E-Report. А пользователи начинают требовать ОО - не у всех денег куры не клюют.
Предлагаемый генератор отчетов - если он реализует всю функциональность E-Report - будет более универсальным решением, я готов на него перейти.
...
Рейтинг: 0 / 0
Генерация отчетов в ODS (Open Office, с поддержкой графики) и XML (Excel)
    #36833559
igorbik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sea_Catу меня процентов 60-65 отчетов делается через Excel при помощи E-Report, 2-3% - штатным репортом, остальное - через Word (OO Writer) при помощи GenRep. штатным репортом довольно сложно реализовать отчеты с кросс-табуляцией, когда число колонок заранее не определено и обычно выходит за пределы ширины листа.Согласен, без вывода в офисные приложения резиновые репорты увидеть никак не выйдет...
Еще большое значение имеет дизайн, где фоксовый репорт явно уступит RTFу и HTMLю.

Sea_Catприходится выпускать большое количество сложных по форме документов, у которых табличная часть состоит всего из одной -двух строк. Гораздо проще взять в Сети готовый шаблон (.XLS или .DOC файл) и за 15-20 минут сделать шаблон для Е-Report или GenRep , чем рисовать все это в штатном репорте. Вот здесь собака и порылась.
Программисты, обучающиеся Фоксу, изучают и его репорты, причем довольно глубоко. И чем опытнее - те более изощренные репорты приходится сооружать, особенно если там действительно всего одна табличная строка, но в ней много полей... Да и на репорте куча дополнительных фигур и рисунков.
Однако для меня, например, быстрее нарисовать репорт и вызвать его из программы одной командой, чем искать готовый Экселевский или Вордовый шаблоны и заполнять их специальными подпрограммами. Просто нет времени на это. Исключение составляют документы заранее определенной формы и размеров (типа платежного поручения, кадровых док-тов и пр.). Их приходится искать в Инете в Экселевском формате и использовать.
Я пишу приложения для разных фирм, проблемы у всех разные, отчеты тоже, и все согласны увидеть печать в любом читаемом виде, но как можно быстрее.
Что касается E-Report и других сторонних разработок, то легкость обращения приходит тогда, когда их досконально изучишь. А для этого тоже нужно время.

Sea_Catпользователи начинают требовать ОО - не у всех денег куры не клюют.
Предлагаемый генератор отчетов - если он реализует всю функциональность E-Report - будет более универсальным решением, я готов на него перейти.Это хорошо. Для КомпАСа это даже необходимо, т.к. не все пользователи имеют лицензии на МС Офис, и хотели бы иметь альтернативу. Однако, судя по количеству отзывов в этом форуме, не все еще "прониклись" (я бы даже назвал только Вас и меня отчасти). А решение вопроса внесения исправлений интересует практически всех.

Теперь немного истории. Там, в Запорожье, есть еще одна софт-фирма, очень известная по Украине, и даже недалеко от вашей (ну, чтобы не пользовать всуе ее имя, Вы поняли, о ком я говорю). Так вот, сначала ее репорты (не фоксовые, конечно) не позволяли ничего менять. Аргумент простой: изменяйте все в таблице или сами перерисовывйте отчеты во встроенном редакторе.
Я им тоже присоветовал придать доп. функциональность репортам, ибо иногда тексты просто не вписывались в приготовленные ячейки.
Так вот, продажи их продукта возросли резко как только они разрешили юзеру перед печатью править тексты (даже шрифт и его кегль).
Разговор шел даже о возможности перемещения рамок таблиц, однако я не зню, добились ли они этого. Теперь юзеру не нужно совсем докупать Офис и многое другое.
Так что давайте думать в направлении редактирования отчетов перед печатью. Это нужное дело.
...
Рейтинг: 0 / 0
Генерация отчетов в ODS (Open Office, с поддержкой графики) и XML (Excel)
    #36834079
maple4
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По кросс-табуляции...
Есть некоторая проблема с ее реализацией.

Как выразился мой знакомый:
Программа "просто" вставляет в нужном месте текстового (xml - тот же текстовый файл) файла нужные текстовые же (в любом случае - это текст) данные.

При кросс-табуляции это " нужное место " еще надо создать - т.е. определить, из каких колонок будет формироваться отчет.

В текущей реализации вид и количество колонок задается Excel-ем (xml) или Calc (ods) в момент редактирования бланка, и не предполагается изменение колонок в дальнейшем.
НО!

Даже сейчас есть решение "в лоб" - заранее создать колонки, а после расчета ненужные (незаполненные) скрыть .
Повторюсь, решение "в лоб"
...
Рейтинг: 0 / 0
Генерация отчетов в ODS (Open Office, с поддержкой графики) и XML (Excel)
    #36834778
igorbik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maple4 Maple4 Report Generator (m4rg)
Это ГЕНЕРАТОР ОТЧЕТОВ по заранее созданным бланкам (ods Open Office, xml Excel)
Отсюда сразу следует, что m4rg не может создавать резиновые отчеты по определению.maple4есть решение "в лоб" - заранее создать колонки, а после расчета ненужные (незаполненные) скрыть. Знать бы только заранее, сколько нужно колонок нарисовать, а то, может, постоянно шаблон переделывать придется... Ладно если клиент понятливый, но уж больно они сегодня злые.
Это к тому, что "в лоб" вышло не очень.
Однако я тоже 70% выводов в Эксель выполняю по шаблонам.
Если мне не хватает при этом высоты, то я вставляю (Фоксовыми средствами) в шаблон лишние строки, заполняю ячейки, рисую границы и прочее, чтобы от шаблона не отличалось.
Аналогично можно и столбцы добавить в нужном количестве, срисовав их с шаблона или как иначе.
Ну, это типа идеи.
...
Рейтинг: 0 / 0
Генерация отчетов в ODS (Open Office, с поддержкой графики) и XML (Excel)
    #36837276
maple4
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
igorbik,
Имел в виду вот что:

Сколько максимум может быть колонок в отчете?
Если 250, то создается 250 колонок с итогом по каждой колонке и ОДНА САМАЯ ПРАВАЯ колонка с итогом по каждой строке (и итогом по колонке).
Далее, заполняются данные по 250 колнкам, "лишние", ДО КРАЙНЕЙ ПРАВОЙ, скрываются (сейчас пока вручную, думаю сделать автоматом).
...
Рейтинг: 0 / 0
Генерация отчетов в ODS (Open Office, с поддержкой графики) и XML (Excel)
    #36837839
igorbik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maple4Сколько максимум может быть колонок в отчете?Вот и я о том же. Как бы не промахнуться... Может, кому-то и 250 покажется недостаточно...
Здесь вопрос принципа: если мы можем программно вставить колонки или строки, то уже все остальное не имеет значения.
...
Рейтинг: 0 / 0
Генерация отчетов в ODS (Open Office, с поддержкой графики) и XML (Excel)
    #36838237
maple4
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
igorbikmaple4Сколько максимум может быть колонок в отчете?Вот и я о том же. Как бы не промахнуться... Может, кому-то и 250 покажется недостаточно...
Здесь вопрос принципа: если мы можем программно вставить колонки или строки, то уже все остальное не имеет значения.

... но можно вставить строки по условию в момент генерации

Скажу так:
"Пока" нельзя создать резиновый отчет вправо, т.е. просто добавляя колонки справа от ячейки (и, кстати, если кто подскажет алгоритм - буду рад :-) ) при генерации отчета.

Зато можно сделать "псевдо"-резиновый отчет, с возможностью вставки строки (detail,reportheader, reportfooter) ПО УСЛОВИЮ (т.е. задается условие, по которому строка попадает в отчет, при viewthisrow=.t. - попадает, при viewthisrow=.f. - нет; условие должно размещаться в примечании ТОЛЬКО к самой первой ячейке для данной строки ), а уж эта строка может содержать ЛЮБОЕ нужное количество колонок!
...
Рейтинг: 0 / 0
Генерация отчетов в ODS (Open Office, с поддержкой графики) и XML (Excel)
    #36839752
maple4
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Обновлен архив программы Maple4 Report Generator
http://www.maple4.ru/a_downloads_for_maple4_ru/maple4_report_generator.zip

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

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


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


Информация о программе на сайте (описание, примеры запуска):
http://www.maple4.com/xmlbuilder.htm
...
Рейтинг: 0 / 0
Генерация отчетов в ODS (Open Office, с поддержкой графики) и XML (Excel)
    #36844912
maple4
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как меня этот 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 (в принципе, остальное все готово) - даже не знаю, чего делать.
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Генерация отчетов в ODS (Open Office, с поддержкой графики) и XML (Excel)
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]