报告引擎或自己的报告?

时间:2010-12-20 04:55:26

标签: java jasper-reports etl birt pentaho

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

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

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

我的司机在这里 - 报告逻辑将发生变化,但开发人员将对其进行更改。它将是复杂的逻辑,因此在Java中的代码中最容易完成。 - 报告必须以excel格式保存和通过电子邮件发送。 - 报告任务将是巨大的(ETL可能有用的一些东西) - 此处不考虑未来报告要求,如果系统需要通用且可扩展,系统将进行重写。

我可以创建一个名为report的实体,存储其类型(枚举)和参数列表(来自restful URL)和其他metardata(创建者,日期等,发送位置以及相关参数的存储)然后,当完成某些处理时,将其存储在DB中,只是为了检索处理的数据以供控制器使用。它极大地简化了所涉及的技术(我使用spring mvc,只需少量POI即可)。但我想知道使用报告引擎会更简单。

2 个答案:

答案 0 :(得分:2)

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

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

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

答案 1 :(得分:1)

我从未使用Birt,但我使用了Jasper,我的一个评论是:使用报告引擎有一个学习曲线,并增加了它自己的开销。因此,如果您正在进行一些一次性报告,并且实际报告布局非常简单,那么您可能无法从报告引擎中获得很多收益。但是,另一方面,Jasper IS非常擅长让你编写逻辑一次,然后轻松生成多种格式的报告(包括Excel)。

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

如果您可以证明花费几个小时的时间,请下载Jasper(或Birt或其他)并运行一些教程/演示并感受它。对你而言,这可能比你在这里得到的所有评论更有价值。

相关问题