Страница 1 из 1

Отчетность. Как правильно реализовать?

СообщениеДобавлено: 11.07.2011 11:13:33
dunin
Понравился вот этот пост:
VirtUX писал(а):...
Секунда очень важна! Ведь именно в этот момент приходит озарение. Потом уже через минуту появляется уверенность в идее. Через час готов начальный план. Через неделю пожинаем первые плоды. Через месяц начинаем альфа-тест. Через год получаем гонорар и удовлетворение от проделанной работы. ИМХО без секунды никак нельзя!
...

Прочитав трижды, таки решился обратится с вопросом к сообществу...

Собственно, сразу сам ВОПРОС:
- как в программе, написанной на Lazarus реализовать нормальную отчетность? В какую сторону двигаться, чтобы не было стыдно за бесцельно прожитые секунды, часы, etc?

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

Разъясняю как мне видится (варианты решения):
- используем LazReport - не годится. Причина субъективна - он мне не нравится. Не уверен, что попадает под термин "нормальная отчетность" (поправьте кто точно знает);
- пишем свой аналог LazReporta - не годится. Слишком трудозатратно;
- используем готовые офисные шаблоны (Excel), вызываем шаблон через OLE механизм - загружаем данные - открываем(печатаем) через тот же Excel. Не годится - не кроссплатформенно;
- тот же номер с Open/Libre под Linux совсем не работает (или у кого-нибудь работает?);
- используем fpspreadsheet. И потом вызываем сформированный файл связанной программой. Кросплатформенно, но опять не годится. Через него можно выгрузить данный во внешний файл, но нельзя правильно оформить отчет (нет редактора);
- Формируем HTML файл (работаем как с текстом) и затем открываем или связанной программой (браузером) или scalc. Вроде нормально, но не додумал как хранить и редактировать шаблоны. Опять же или нужен редактор или...
- куча других вариантов на форуме тоже предлагалась (CSV и т.д.), но опять же не нашел ни одного попадающего под вышеописанный термин...

У кого какие мысли? :roll:
Или может кто-то эту проблему уже давно решил, а я голову ломаю? Поделитесь пожалуйста... Спасибо.

Re: Отчетность. Как правильно реализовать?

СообщениеДобавлено: 11.07.2011 11:43:23
Light13
Реализовывал когда-то через LazReport.

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

Код не могу приложить - остался у заказчика.

Ну и конечно требуется дать мануал по построению отчетов пользователю программы.

Re: Отчетность. Как правильно реализовать?

СообщениеДобавлено: 11.07.2011 11:51:34
Brainenjii
Я за html вариант (правда все отчеты что есть - пока в LazReport, но тоже не нравится). Редактирование/сохранение форм отчетов - блокнот/oocalc/excel через "Сохранить как..." -> html.

Re: Отчетность. Как правильно реализовать?

СообщениеДобавлено: 11.07.2011 12:35:25
debi12345
мог самостоятельно, без перекомпиляции программы составить необходимый отчет из соответствующего набора данных.

А в отдельный DLL/EXE-файл эту отчетность вынести ? Уж редактирование и сборку одного логически шаблонного файла (или группы таких файлов) специалист должен осилить :)

Re: Отчетность. Как правильно реализовать?

СообщениеДобавлено: 11.07.2011 13:01:47
Vadim
dunin писал(а):- Формируем HTML файл (работаем как с текстом) и затем открываем или связанной программой (браузером) или scalc. Вроде нормально, но не додумал как хранить и редактировать шаблоны. Опять же или нужен редактор или...

Я как раз работаю с HTML. :)
У меня все отчёты простые и состоят из:
- заголовок отчёта,
- текст, который под заголовком,
- таблица с данными,
- суммирующий итог по таблице с данными,
- текст, который под таблицей (например "Бухгалтер ______ подпись")
Так вот, весь шаблон храню в INI-файле. Собственно в этом файле полей столько, сколько перечислено в списке. Для таблицы и суммы - текст запроса. Далее, этот инишник скармливается процедуре-генератору отчёта. И - оп-ля, получаю открытый браузер с отчётом.
Когда нужен новый отчёт - делаю новый инишник, а программа, при открытии, считывает названия файлов-инишников, так новый отчёт автоматом появляется в программе. Не комильфо, но и программу перекомпилировать не надо. Конечно, для очень сложных тысячестраничных отчётов такое не годится. :)

Re: Отчетность. Как правильно реализовать?

СообщениеДобавлено: 11.07.2011 13:50:52
dunin
debi12345 писал(а):А в отдельный DLL/EXE-файл эту отчетность вынести ? Уж редактирование и сборку одного логически шаблонного файла (или группы таких файлов) специалист должен осилить :)

Думал. Это крайний вариант. Поставка получается: программа + лазарус или просто FPC. Сложновато для современной молодежи, работающей в аутсортинговых конторах... У них же как:"паскаль! это же прошлый век! ну кто так пишет!...". Ну и всякие слова вроде "специалист легко справится с перекомпиляцией..." в общем случае не вызывают у заказчика положительных эмоций...

Brainenjii писал(а):Я за html вариант (правда все отчеты что есть - пока в LazReport, но тоже не нравится). Редактирование/сохранение форм отчетов - блокнот/oocalc/excel через "Сохранить как..." -> html.

Vadim писал(а):Я как раз работаю с HTML. :)
У меня все отчёты простые и состоят из:
...
...Конечно, для очень сложных тысячестраничных отчётов такое не годится. :)

Во-во... Тоже получилось (см.рис), но решил все как-то слишком просто: в отчет вываливаются данные "как в таблице", т.е. что в гриде видите - то в отчет и уйдет. А вот если платежек надо штук так 50 распечатать или сложный отчет или отчет с каким-нибудь вензелем/эмблемой? Без шаблона не обойтись.
И вариант HTML/браузер имеет еще один недостаток: если в отчете, скажем надо просто поменять подпись или дату - в случае с офисными приложениями можно просто перед печатью подправить руками без переформирования отчета, в браузере так не получится.
1.png

Re: Отчетность. Как правильно реализовать?

СообщениеДобавлено: 11.07.2011 14:46:52
v-t-l

Re: Отчетность. Как правильно реализовать?

СообщениеДобавлено: 11.07.2011 15:22:15
dunin
v-t-l, спасибо за наводку. :) Очень интересный компонент.