我目前的任务是制作有关相当大的线性数据集的报告(即值10取决于9 8 7 6 5 4 3等的某些平均因素

问题还在于,这种逻辑(现在将其称为“平均移动”)不是固定的,很可能会改变。我不仅需要在HTML中生成报告,还需要在Excel中发电子邮件以自动使用(因此某些变量将是相对的,IE也会生成上个月的报告)

所以我的问题是我是否应该使用报告引擎? (Jasper,Pentaho,Birt)

我在这里的驱动程序是 - 报告逻辑将会改变,但开发人员将会更改。它将是复杂的逻辑,因此在Java中最容易完成代码。 - 报告必须以Excel格式保存和电子邮件。 - 报告任务将是巨大的(ETL可能会有所帮助的某些事情) - 未能报告要求在这里不考虑,如果需要通用且可扩展,则系统将重写。

我可以创建一个称为报告的实体,存储其类型(枚举)和参数列表(来自RESTFUL URL)和其他Metardata(谁创建,日期等,发送何处,发送何处以及相对参数存储),然后何时已经完成了一些处理,将其存储在DB中,只是为了检索处理器的处理数据即可消耗。它极大地简化了所涉及的技术(我使用Spring MVC,并且应该撒上一点POI)。但是我想知道使用报告引擎是否会更简单。

有帮助吗?

解决方案

我在Jasper和Birt(以及商业迎风报告)中的经验是,他们对报告的数字措施无济于事;它们最适合提供您已经转变为合适结构的数据。贾斯珀(Jasper),伯特(Birt)和迎风报告很容易处理运行总计和平均值,但是任何比真正的痛苦更复杂的计算(根据您的计算,可能是不可能的)。我不熟悉Pentaho。

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

然后,您可以使用报告引擎以HTML和Excel格式呈现计算结果。但是,如果您没有贾斯珀(Jasper)或birt等,等等,那么我不建议仅仅为此添加一个。分别使用JSP和POI手动编写报告数据会更快。 Jasper和Birt报告很容易创建,但是只有您正确整合报告引擎后!

其他提示

我从未使用过Birt,但是我使用了Jasper,我的评论是:使用报告引擎具有学习曲线,并添加了其自身的开销。因此,如果您要进行一些一次性报告,并且实际报告布局相当简单,则可能不会从报告引擎中获得很多收益。但是,在另一方面,贾斯珀(Jasper)确实擅长让您写逻辑一次,然后轻松以多种格式生成报告(包括Excel)。

如果强烈要求生成的报告“看起来很漂亮”,并且它具有非常复杂的布局,并且如果您需要生成大量格式,那么您可能会发现报告引擎有价值。

如果您可以证明花几个小时在上面,请下载Jasper(或Birt或其他任何),并通过一些教程 /演示进行操作并感觉到它。这对您来说可能比您在这里的所有评论更有价值。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top