Maple4 Report Generator (m4rg)

Данная программа - ГЕНЕРАТОР ОТЧЕТОВ по заранее созданным бланкам различных форматов(xml Excel 2003, ods Open Office, odt Open Office, HTML/HTM - Word и oo Writer)
Простота использования - главная особенность программы: запустили программу m4rg.exe, выбрали бланк - получили нужный отчет.
А создав ярлык к программе m4rg.exe и прописав параметры ("имя бланка" "имя отчета") - можно автоматически получать готовые отчеты БЕЗ выбора бланка.

Коротко о возможностях:
  • Создание бланков с помощью OpenOffice (ods, ODT ! ) или Excel (xml) (форматирование, использование формул), а так же в Word или Open Office Writer (html/htm).

  • Возможность использования программного кода FoxPro при формировании значений, формул, примечаний (весь код вносится в примечание к ячейке или к примечанию к документу - для odt).

  • Многострочные Detail, ReportHeader и ReportFooter с возможностью задания условия выбора при генерации в ods, xml и ODT (!) файлах. В формате HTML код вносится в специальном теге

  • Для ods/xml - Генерация отчета с несколькими листами, с возможностью задания своей уникальной таблицы/курсора для каждого листа (за это отвечает процедура инициализации листа).

  • Для odt и html/htm - Генерация отчета с таблицами внутри документа, с возможностью задания уникального селекта/курсора для каждой таблицы.

  • Передача дополнительных параметров для генерации отчетов по запросу.

  • Задание процедур инициализации прямо в бланке делает возможным отказаться от предварительных процедур в Вашей программе, т.е. бланк отчета САМОДОСТАТОЧЕН.

  • Возможность вывода сформированного отчета для просмотра/редактирования сразу после генерации на экран

  • Для ods/xml - Нет ограничения на количество строк отчета в 65535 строк - при превышении добавляется новый лист, и на нем вывод отчета продолжается (самый лучший вариант для Excel 2003 в XML!). Для каждого листа можно задать свой лимит.

  • Для ods/xml - Возможность формирования зависимых/подчиненных отчетов (связанных с основным по какому-то параметру).

  • Возможность конвертирования сгенеренного файла Open Office в следующие форматы: ODS->XLS,PDF,HTML,TXT , ODT->DOC,PDF,HTML,TXT - только при установленном Open Office и наличии пакета jodconverter в дистрибутиве программы!

  • Для html/htm - разработка дизайна таблицы в отдельной программе

  • Для html/htm - все используемые (для отчета) картинки автоматически собираются в папке отчета

Поддерживаемые форматы бланков: XML,ODS,ODT,HTML/HTM  (... узнать больше в Интернет-е)


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




ODS
Используется для создания электронных таблиц - альтернатива xlsx от Microsoft.
В отличие от XML (Excel Microsoft) есть работа с картинками!
Открытый формат (представляет собой переименованный zip-архив с папками и файлами формата xml и рисунками).




ODT
Используется для создания текстовых документов - альтернатива docx от Microsoft.
Полная поддержка графики, генерация таблиц "внутри" себя.
Еще один открытый формат (представляет собой переименованный zip-архив с папками и файлами формата xml и рисунками).




HTML/HTM
Используется для создания текстовых документов в формате html/htm.
Для создания бланка можно использовать Word, oo Writer или даже обычный блокнот.
Полная поддержка графики, генерация таблиц "внутри" документа.
Сбор всех картинок отчета (а так же всех дополнительных файлов) в одноименной папке отчета.

Уникальная особенность - создание интерактивных ("живых") отчетов (кто работал с 1C - поймет). При клике в таком отчете может формироваться следующий отчет и т.д.





Общие рекомендации по бланкам ODT, ODS, XML и HTML/HTM.
1. Если в процессе генерации foxpro выдает ошибку (например, неверно была написана функция в бланке) - рекомендуется после исправления ПЕРЕД запуском генератора выполнить CLOSE ALL (закрытие файлов).

2. После того, как бланк ODS или XML подготовлен, рекомендуется перед сохранением скрыть первые три служебные колонки (зачем они Вам нужны в готовом файле?).
Для ODT - уменьшить ширину колонки, если эта колонка чисто служебная (кликаете мышкой по границе столбца, далее в меню столбец - ширина - и задаете ширину 0 для нужного столбца).

3. Полученные значения (в ячейках таблиц ODS, XML, ODT и в тексте ODT) из полей, функций или переменных НЕ ДОЛЖНО содержать следующих символов (таков стандарт XML):
" & < > '
и эти символы должны быть соответственно заменены на:
& quot ; & amp ; & lt ; & gt ; & apos ;

Использование "запрещенных" символов может привести к ошибке открытия сформированного файла.
Для автоматической замены можно воспользоваться специальной встроеннной функцией:
symbol2xml()
Почему этого не сделать прямо в программе генерации?
Дело в том, что в большинстве случаев, такой замены НЕ ТРЕБУЕТСЯ. Так зачем тратить на это время?

Использование symbol2xml (для HTML/HTM - не критично!) в первом синтаксисе:
thisdata=symbol2xml(test_.notes) && для ods/xml
return symbol2xml(test_.notes) && для odt
или во втором
&symbol2xml(test_.notes)



Особенности конвертации файлов Open Office в другие форматы прямо из генератора отчетов:
1. Возможна конвертация ODS->XLS и ODT->DOC (о других форматах - ниже).
Но, как Вы понимаете, различие форматов ведет к некоторому различию исходных и сконвертированных файлов.
Например, ODS с картинками показывается в XLS-файле, но почему-то картинки из ODT в DOC отображаются не всегда.
Поэтому, если Вы пользуетесь Microsoft Office и не хотите потерять что-либо при конвертировании - поставьте соответствующий сервис-пак (для чтения ODS и ODT), и Вам будет счастье :-) (заметьте, нюансы все равно остаются).
ВАЖНО! Конвертация возможна ТОЛЬКО при установленном Open Office и распакованном пакете jodconverter в каталоге jodconverter (по умолчанию уже есть в дистрибутиве, в ином случае - скачайте новую версию)!

Создание бланков для XLSX и DOCX ПОКА не планируется, так как:
а) форматы xlsx и docx слишком сложны для логического понимания КАК ИЗ ТОГО, ЧТО ЕСТЬ ПОЛУЧИТЬ НОВЫЙ ДОКУМЕНТ, т.е. не прибегая напрямую к Excel или Word. Подозреваю, что это сделано Microsoft-ом специально :-) (файлы отлично считываются и анализируются - ЭТО ДЛЯ МЕНЯ НЕ ПРОБЛЕМА, в проге есть возможность для загрузки xlsx-файлов - при раскомментировании соответствующих строк кода)
б) нет интереса со стороны пользователей :-( , причем со стороны пользователей ЗНАЮЩИХ форматы xlsx и docx (насчет картинок никто ничего не ответил).

Как получить конвертированный файл?
Нужно ПРОСТО указать в конечном файле ИНОЕ (от расширения бланка) расширение.

Вы так же можете конвертировать файлы и в иные форматы, например:
ODS->PDF, ODS->HTML, ODT->PDF, ODT->HTML и т.д.

Полный список поддерживаемых расширений находится по адресу:
http://www.artofsolving.com/opensource/jodconverter
Самую новую версию (установлена текущая - 2.2.2) можно скачать с:
http://sourceforge.net/projects/jodconverter/files/

Повторюсь - результат конвертации может Вас не устроить.
НО обычно для того, что-бы проверить качество конвертирования достаточно сконвертировать файл один раз (обязательно обратите внимание на то, как отображаются картинки в конвертированном файле или вообще откажитесь от них!).
Самое "правильное" расширение для сконвертированного файла, если в дальнейшем не планируется его редактирование - это PDF. Пока не наблюдалось проблем с разным отображением оригинала и конвертированной копией :-)

jodconverter - классная вещь, хотя бы потому, что мне не придется лезть в xlsx и docx :-) (хотя чего там, уже почти влез...)

Но так как jodconverter требует Open Office (установите Open Office - обязательно пригодится!), это может несколько напрячь некоторых пользователей (скачать, установить...)

Поэтому, если кто подскажет бесплатную программу конвертирования хотя бы ODS->XLS(X), ODT->DOC(X) БЕЗ УСТАНОВКИ ДОПОЛНИТЕЛЬНЫХ приложений - буду безмерно рад.

Как работать с jodconverter
1. Open Office должен быть установлен в системе.

2. Необходимо внести путь к Open Office
Откройте или создайте файл soffice_folder.txt и внесите туда путь к soffice.exe

Например, у меня soffice.exe находится в каталоге C:\Program Files\OpenOffice.org 3\program, поэтому внесено:
C:\Program Files\OpenOffice.org 3\program\soffice.exe
или, например, если soffice.exe находится в каталоге d:\OpenOffice.org 3\program
d:\OpenOffice.org 3\program\soffice.exe

3. В каталоге jodconverter программы должен размещаться распакованный дистрибутив пакета.
Если он там есть - ничего не меняйте - все должно работать и так.
Если же его там нет (или существует БОЛЕЕ новая версия на сайте), скачайте архив со страницы:
http://sourceforge.net/projects/jodconverter/files/

4. Если же Вы все таки скачали новую версию jodconverter - распакуйте в каталог jodconverter только каталоги docs,lib,src и все файлы которые находятся рядом с этими каталогами.
Т.е. в подпапке jodconverter должны находиться КАК МИНИМУМ каталоги docs,lib,src и файл document-formats.xml!

5. В подпапке lib переименуйте jodconverter-cli-N.N.N.jar в jodconverter-cli.jar , т.е. без указания версии (N.N.N - номер текущей версии).


Замеченные "странности":
ODS
При формировании ODS с рисунком в строке, высота которой динамически меняется в зависимости от содержимого, размер рисунка по вертикали так же меняется.
Т.е. если Вы размещаете рисунок в таблице - высота строки ДОЛЖНА БЫТЬ фиксированной.
ODT
При конвертировании в DOC рисунки не вставляются либо вставляются неправильно.
Вывод - не используйте картинки вообще или используйте для конвертации формат PDF.


Целая куча exe-файлов... За что отвечает каждый из них?
m4rg.exe - генератор отчетов (задаете бланк - получаете отчет)
rb.exe - программа формирования таблицы в html при помощи rb-репортов (используется для генерации отчетов на основе бланков HTML). Напрямую из проводника не запускается (нет смысла :-) )
rb_edit.exe - надстройка, позволяющая создавать и редактировать rb-репорты прямо из проводника (для генерации в HTML-бланках). Если Вы хотите создать/отредактировать rb-репорт - запустите rb_edit.exe
7za.exe - zip-архиватор


Самая новая версия с сайта:
http://www.maple4.ru/a_downloads_for_maple4_ru/maple4_report_generator.zip

Хотелось бы узнать мнения о примере, но - ТОЛЬКО после его опробования. Как и пожелания о дальнейшем развитии - что бы знать, куда двигаться.
ICQ: 226-071-270 (ответы в режиме online :-) по возможности)
maple4@maple4.ru
Страница проекта в Интернет-е:
http://www.maple4.ru/xmlbuilder.htm
Крошкин Игорь


P.S.
Возможно, понравятся следующие проекты:
Maple4 Site Creator - создание и ВЕДЕНИЕ сайта на HTML без использования PHP и ASP (off-line CMS)
http://www.maple4.ru
Maple4 Style Creator - создание стиля из шаблона для использования в Maple4 Site Creator
http://www.maple4.ru/i_objects_create_style.htm
(более 100 стилей на странице http://www.maple4.ru/i_all_styles.htm созданы именно этой программой. Стили устанавливаются в один клик в любой момент редактирования проекта сайта).

Все программы идут в одном пакете, загрузка со страницы
http://www.maple4.ru/i_downloads.htm
там же - дополнительные примочки (обратите внимание на стили в виде zip-архивов - от 20 до 30 штук в одном архиве - а всего доступно более 100!)
Все представленные программы написаны на FoxPro.
FoxPro forever! Ну, или хотя бы до 2015...

Rambler's Top100 Рейтинг@Mail.ru Участник проекта CMS Magazine