3

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

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

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

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

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

4

2 回答 2

2

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

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

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

于 2010-12-20T06:01:44.493 回答
1

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

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

如果你有理由花几个小时在上面,下载 Jasper(或 Birt 或其他)并运行一些教程/演示并感受一下。这对你来说可能比你在这里得到的所有评论更有价值。

于 2010-12-20T06:12:05.787 回答