Найти - Пользователи
Полная версия: Генератор отчетов для среды Python + PostgreSQL
Начало » Базы данных » Генератор отчетов для среды Python + PostgreSQL
1 2
xkein
Коллеги, подскажите, пожалуйста - метод (библиотеку, внешние модули …) для построение отчетов из свой программы.
Приложение рисую на Python + PSQL, кажется, отладил наконец визуальный редактор ключевой части реляционной базы, который станет основной движка программы, теперь нужно сделать пользовательский (настраиваемый админом) генератор отчетов.
Что-то, может ,есть общепринятое (сам не нашел)?
Когда-то, во времена фокса, я делал контекстную внешнюю библиотеку отчетов, которая запускалась из разных узлов приложения с привязкой к нужному разделу (классу отчетов), - технически в отдельном окне открывался редактор отчетов (название, слоты для хранимых процедур для формирования среды запуска собственно отчетной формы, а потом его связали и с профилями пользователя и т.д., такие деревья из них вырастали…) и привязка к самой форме-шаблону.
Для фокса использовал встроенный “фокс-репорт”, для всяких бейсиков, кажется, что-то типа Crystall Report использовал (ораклисты-2000 присоветовали).
Подобный функционал сейчас хочется реализовать на базе PSQL + python..
для начало хотелось бы что-то бесплатное и автономное (не онлайн)…

Уверен, что у всех, кто создает и продвигает свою систему, существует такая задача…
Подскажите, пожалуйста, как ее проще решить сегодня …
py.user.next
Пока что выглядит всё это, как набор слов.

Приведи пример “отчёта” в виде скриншота какого-то из той системы, где он реализован и работает.
Rodegast
> Приложение рисую на Python + PSQL

Зачем тебе psql?

> Уверен, что у всех, кто создает и продвигает свою систему, существует такая задача…

К сожалению генераторов отчётов под python не было и они вряд ли появились. Помню что к FastReport какие то привязки были, если приложение на PyQt то можно в сторону LimeReport глянуть.
xkein
да, похоже, что так и есть ..
вчера весь день занимался поисками чего, что можно встроить в система в качестве штатного средства для форматированного вывода таблиц, в итоге начал делать свое ..
LimeReport - не было ни кого опыт ее использования из питона под виндой?
по нему не все понятно с версиями, но есть свой сайт и форум, не то, чтобы мертвый ….

xkein
py.user.next
Пока что выглядит всё это, как набор слов.Приведи пример “отчёта” в виде скриншота какого-то из той системы, где он реализован и работает.

Вы знакомы с Visial Foxpro ?
там есть команды (могу напутать с синтаксисом, давно это было)
create report() , modify report и т.п.
думаю, что порядка 90% всех отчетов, счетов-фактур и накладных в 90-е годы создавались этой командой )

Что такое “штатное” есть в “экосистеме питона” ? )
py.user.next
xkein
Что такое “штатное” есть в “экосистеме питона” ? )
Вот статья есть
https://expertbeacon.com/how-to-generate-automated-reports-from-a-sql-database-using-python/

Там он использует psycopg2 для чтения PostgreSQL базы данных. После этого он использует pandas для преобразований прочитанных данных. Затем он использует reportlab для формирования отчёта в PDF-формате.

Также можно использовать matplotlib для вывода графиков с данными. И также можно сохранять данные кортежей, полученные из отношений базы данных, в виде HTML + CSS и затем подобные файлы использовать как для печати на принтере, так и для экспорта в PDF-формат.

Также можно поизучать ReportLab на примерах
https://docs.reportlab.com/rmlsamples/

Там ты создаёшь размеченный файл, а потом он преобразуется в PDF-формат.

Что касаемо просто HTML-файла, то на практике он показывает плохие результаты для данных в большом количестве. Если ты его откроешь в браузере, браузер просто повиснет, так как на мегабайтных страницах он начинает тормозить, пытаясь загрузить их полностью в оперативную память сначала, перед тем как начать отображение.

Для работы с PDF-файлами можно использовать PyPDF2
https://pypdf2.readthedocs.io


tags: sql pdf
Rodegast
> LimeReport - не было ни кого опыт ее использования из питона под виндой?

Пока это просто информация для размышления. Еще есть бухгалтерская программа пента (https://penta.by/) там эта задача была решена созданием собственного табличного редактора отчётов по подобии 1С.
Rodegast
> Также можно поизучать ReportLab на примерах

Вот тебе пример платёжки покажи как ты её через ReportLab заполнять будешь
py.user.next
Rodegast
покажи как ты её через ReportLab заполнять будешь
Тут пример создания шаблона на питоне
https://www.blog.pythonlibrary.org/2010/03/08/a-simple-step-by-step-reportlab-tutorial/

Тут пример динамического заполнения шаблона на питоне
https://www.geeksforgeeks.org/creating-pdf-documents-with-python/

Тут пример тонкой настройки коробочки одной
https://docs.reportlab.com/reportlab/userguide/ch2_graphics/

Платёжки такие я вообще получаю в виде HTML. Приходит в электронном виде на почту страница в HTML. Тоже без ReportLab даже можно создать такую страницу из питона. Экспортировать HTML в PDF автоматически тоже несложно. Сам я PDF'ы из HTML-страниц делаю постоянно, потому что в HTML-страницу можно засунуть ещё скрипты на JavaScript, что я и делаю постоянно, чтобы страницу сделать поживее или параметризовать в завимости от щелчка на заданной области. Там даже картинки можно прямо в странице хранить, а не отдельно от неё, и вставлять их через JavaScript, обнаруживая их прямо в объектах страницы. Хотя для вставки хранимых изображений есть синтаксис у тега img. Но бывает, что изображерие неудобно хранить в самом теге, поэтому переносишь его в скрипт и оно там в объекте хранится и ждёт своего звёздного часа, когда его скрипт обнаружит, раскодирует из base64 и вставит в правильный тег в DOM'е. А CSS'ом можно при этом любые коробочки любых размеров понаделать. Так ещё и через JavaScript у любого элемента можно любые стили поменять. Там можно просто на лету проводить измерения и сразу на них реагировать и менять стили у элементов под них.

Что ты хочешь? Мышкой делать формы отчётов, налепливая коробочки в заданных местах? Вроде задача в том, чтобы из питона сделать шаблон отчета и данные взять из базы данных для формирования конкретного отчёта.
Rodegast
> Тут пример создания шаблона на питоне … пример тонкой настройки коробочки одной

Я на эти примеры посмотрел ещё 15 лет назад, после чего стало ясно что ReportLab генератор отчётов не заменит.

> Платёжки такие я вообще получаю в виде HTML

И где гарантия что она не “поплывёт” когда её кто то откроет в IE6? А где гарантия что она адекватно распечатается? и т.п.

> Вроде задача в том, чтобы из питона сделать шаблон отчета и данные взять из базы данных для формирования конкретного отчёта.

Задача в том что бы к python-у прикрутить генератор отчётов. Это такой отдельный класс программ, если ты с автоматизацией бизнеса не работал, то наверное не сталкивался.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB