Pull to refresh

Comments 16

Когда я впервые столкнулся с задачей генерирования отчетов под C/C++, то начал с FastReport и понял, что этот инструмент мне абсолютно не нравится.

А что именно вас отпугнуло в FastReport? Я испробовал много разных генераторов отчетов, но круче чем FastReport ничего нету по моему мнению. Встроенные скрипты, подотчеты, датасеты пользовательского типа… шик просто.
UFO just landed and posted this here
FastReport гибкий инструмент, и вследствие этого избыточен для большинства задач.
Следуя вашей логике, LightReport подходит для большинства задач ввиду своей потрясающей негибкости. :)
В DLL применяются платформонезависимые типы данных, такие как, unsigned short, unsigned long и char. Это понятно почему.

Мне вот не очень понятно. У вас библиотека явно не заточена под использование в линуксе или на маке. Про 64-битную версию тоже ни слова. Ну и зачем?
Учится программировать человек. Вот и весь смысл. Видимо, нас ждут ещё откровения :)
Я так понял, что требуется наличие MS Exel для работы такой системы? Это сильно снижает круг потенциальных клиентов, хотя кого-то выручит при определенных условиях.
DLL поставляется без заголовочного файла и без статической LIB библиотеки

Ну, с .lib еще понятно, а .h чего зажали-то?
И без исходников. Т.е. проект закрытый. Таким образом, это вроде как нарушает правила Хабра о рекламе своих проектов, они должны быть в «я пиарюсь», или я не прав?
Может сделать генерацию отчета напрямую в шаблонный .xlsx-файл?
Я для репортов поднял простенький веб сервер на php и bootstrap.

Заполняешь нужные поля (js проверяет валидность и считает), жмешь сабмит. Php копирует template.tex в новый файл, меняет в нем данные на данные из формы и вызывает tex2 pdf, и перенаправляет на готовый pdf.
По желанию сразу шлет емейл клиенту.

Кросплатформенно, доступно из браузера откуда угодно и хранится вся история отчётов. Теплейт отчёта легко изменить через ssh и git.

Но да, согласен, решение не очень гибкое в плане изменения лейаута документа.
Помнится, году так в 2005 компонента cxGrid для bcb6 умела прекрасно рисовать себя в табличку екселеву без самого екселя, и даже не использовала xml для этого. Со всеми форматированиями и цветами. И ооооочень быстро :)
Автор, уберите статью в черновики, не позорьтесь.
1) Библиотека ничего не предлагает сверх того, что предлагает весьма обширный OLE интерфейс Excel. По сути, это минималистичная обвязка над этим самым API
2) Эта обвязка собрана под одну конкретную платформу. Исходники закрыты. Использовать под 64 бита нет возможности.
3) Хидер файл не компилябельный, не определен класс String
4) пример в архиве не компилябельный. НЕ хватает хидеров как минимум. Плюс это издевательски — в пример для своей библиотеки включать абсолютные пути.
5) Библиотека без этого самого более обширного API OLE неюзабельна
Ладно, черт с ними с закрытыми исходниками (я так понимаю, там на VCL все сейчас?). Теперь по самому решению:
6) вы в начале статьи описываете использование шаблона xls файла. При этом судя по коду, никакой шаблонизации как таковой нет — файл просто используется как скелет, ты должен сам ручками рассчитывать местоположение данных. Опять же, 0 преимущество перед использованием OLE самому
7) C++ API без намека на RAII, в C стиле? серьезно? либо трусы, либо крестик: либо обзывайте свою обвязку чисто сишной, и примеры соотстветсттвующие, либо хотя бы какое-то подобие ООП с RAII.
8) Согласованность API тоже вызывает вопросы. Какого черта куча однобразных параметров везде, там какой-то struct CellRange напрашивается с ходу.

В общем, выше уже мягко намекнули, что это «поделие» не уровень Хабра, не знаю чего там НЛО расщедрилось)

Для этого в Qt ещё с версии 4.6.4 есть готовый компонент. Кроссплатформенный. Открытый. Функционалом не блещет, зато бесплатен, без зависимостей, и базовые вещи делает как надо. Использовали в двух проектах, не жалеем.

Зачастую в проекте нужен не просто механизм создания отчётов, а ещё и механизм создания отчётов из шаблонов, да и чтобы в редактируемом виде, так что ход мысли в статье верный. Был такой проект docxfactory, кроссплатформенный на c++, к сожалению заглох. Я его форкнул _https://github.com/bas524/Docxfactory, сделал сборку через cmake. Собирать сложно, но можно. Поддерживаются шаблоны в формате docx, используются только открытые библиотеки, работает в продакшене под Win и Linux.

Sign up to leave a comment.

Articles