Альтернативы JasperReports и BIRT

Я ищу механизм отчетности Java, который:

  • не заставляет вас использовать конструктор для определения шаблонов отчетов (и, следовательно, позволяет генерировать отчеты с помощью API),
  • не является JasperReports и BIRT,
  • является открытым исходным кодом,
  • является бесплатным (как в отношении свободы, так и бесплатного пива),
  • является достойным, на ваш взгляд.

Это трудный вопрос, я знаю. Я не нашел ничего хорошего в Google и здесь, в Stack Overflow, но я все еще надеюсь, что кто-то может где-то узнать какое-то скрытое сокровище.

Ответ 1

Существует не так много инструментов для создания отчетов с открытым исходным кодом (инструменты отчетности в духе хрустальных отчетов). Двумя самыми большими являются BIRT и JasperReport. JFreeReport (кажется, мертв), и DataVision (без опыта) являются единственными двумя "другими" продуктами с открытым исходным кодом, которые даже приближаются.

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

Отчасти проблема заключается в том, что тип продукта, который вы рассматриваете, всегда предоставлял инструмент для создания отчетов о перетаскивании, поскольку этот вид отчетности перерос в его собственный, эмулируя обработку текста с помощью шаблонов. Это приводит к вашему другому требованию, программному API.

В конце концов, ваш API будет генерировать шаблон отчета, который затем будет передан движку, который объединяет отчет с его данными, форматирует его, а затем отображает. Таким образом, такой инструмент, как JasperReports (где шаблон jrxml относительно корректно определен) звучит не так уж плохо; потому что вы можете просто использовать Java для построения дерева DOM (который является шаблоном отчета), а затем передать это в движок (возможно, сначала вам придется сначала сериализовать его в XML, но это может быть хуже).

За исключением того, что вы упускаете из виду JasperReports (и другую самую большую платформу отчетности, BIRT) по неизвестным причинам. Хотя могут быть прекрасные причины не использовать некоторые доступные продукты (я не могу использовать JaserReports самостоятельно из-за каких-то прекрасных причин), если слишком много продуктов считаются непригодными, у вас заканчиваются жизнеспособные разрешенные продукты.

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

Удача, и я надеюсь, что эта информация принесет некоторую пользу.