java - 报告引擎还是自己的报告?

标签 java jasper-reports etl birt pentaho

我目前的任务是针对相当大的线性数据集生成一份报告(即值 10 取决于 9 8 7 6 5 4 3 等的一些平均因素

问题还在于这个逻辑(现在我们称之为移动平均线)不是固定的,很可能会改变。我不仅需要生成 HTML 格式的报告,还需要生成 Excel 格式的报告,也许还需要通过电子邮件将其自动使用(因此一些变量将是相对的,例如生成上个月的报告)

所以我的问题是我是否应该使用报告引擎? (贾斯珀、彭塔霍、比尔特)

我的司机是 - 报告逻辑会改变,但它会被开发者改变。这将是复杂的逻辑,因此在 Java 代码中最容易完成。 - 报告必须以 excel 格式保存并通过电子邮件发送。 - 报告任务将是巨大的(ETL 可能会有帮助的某些事情) -这里不考虑 future 的报告要求,如果需要通用和可扩展,系统将进行重写。

我可以只创建一个名为 report 的实体,存储它的类型(枚举)和参数列表(来自 restful URL)和其他元数据(创建者、日期等、发送到哪里以及存储相关参数)然后当一些处理完成后,将其存储在数据库中,只是为了检索处理后的数据供 Controller 使用。它极大地简化了所涉及的技术(我使用的是 spring mvc,它应该足够用一点点 POI)。但我想知道使用报告引擎是否会更简单。

最佳答案

我对 Jasper 和 Birt(以及商业 Windward Reports)的经验是,它们对报告的数字运算部分帮助不大;它们最适合呈现您已经转换为合适结构的数据。 Jasper、Birt 和 Windward Reports 可以轻松处理运行总计和平均值,但任何比这更复杂的计算都是真正的痛苦(并且可能无法完成,具体取决于您的计算)。我对 Pentaho 不熟悉。

在您的情况下,我会在自定义 Java 代码或 ETL 过程中实现计算。

然后您可以使用报告引擎以 HTML 和 Excel 格式显示计算结果。但是,如果您还没有将 Jasper 或 Birt 等集成到您的应用程序中,那么我不建议为此添加一个。分别使用JSP和POI手动写出报表数据会更快。 Jasper 和 Birt 报告相当容易创建,但前提是您正确集成了报告引擎!

关于java - 报告引擎还是自己的报告?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4486983/

相关文章:

java - 如何根据选定的List获取HashMap标签

java - Apache POI OPCPackage 无法保存 Jasper 报告生成的 XLSX

python - 使用 PETL 解析 XML

java - hibernate - 将日期从一种格式转换为另一种格式

java - 如何在Java中的弹出窗口中打开另一个JSP页面

java - 如何使用 XMLOutputter 禁用转义

jasper-reports - jasper 报告中的多个组

java - JasperReports 中表格下方的空白区域

sql-server - SQL Server 导入向导不支持从超过 255 列的 Excel 工作表导入

etl - 为什么在 Airflow 中使用 aws_athena_hook 时出现 NoRegionError?