5

我正在考虑将 JasperReports 嵌入到现有的 Web 应用程序中以进行报告。webapp 位于一个古老而复杂的现有数据库之上,真的不适合报告作者用来直接编写报告。

我想看的是围绕我们现有的数据访问层编写某种包装器(编写是为了让我们的生活更轻松地与上述古老而复杂的数据库交谈)。有没有人有为 JasperResports 编写自定义数据源或做类似事情的经验?

更新

我想我的问题可能不清楚 - 这可能是因为我的要求也不清楚。我想提供一些方法,最终用户可以使用 iReport 之类的东西来编写针对数据库的报告,然后使用 JasperReportServer 来安排/查看报告。然而,这个数据库真的非常非常糟糕,而且从来没有被设计成以这种方式使用。我们在它周围有一个访问层,webapp 使用它来与它对话。我想让我的最终用户完全远离数据库,使用访问层的自定义数据源的想法似乎是一个不错的选择。但是,我发现很少有关于如何做到这一点的文档。也许这比我想象的要容易得多,我只是想让一个死的简单的事情变得太复杂。

更新

感谢您的回答。我不认为我的问题已经解决,但我认为答案有助于告知需求阶段。

4

2 回答 2

4

Jasper 报告允许您使用“JavaBean”数据源。您可以将数据加载到任何 Java Bean 结构中并根据该结构构建报告。效果很好。

请参阅此处的“自定义数据源”部分。

于 2009-08-04T09:55:56.983 回答
3

每个 JasperReports 模板都可以有两个不同的数据源。一种是使用一些 jdbc 驱动程序将其直接连接到数据库,或者在您的情况下,提供一组 java bean(POJO),通常是列表。

JasperReports 模板类似于方法定义。它有一个名字,即编译的 JR 对象和参数(数据源和一些最流行的 Java 类型的输入参数列表)。

我的建议是使用 iReport 工具。打开 JasperReports 包附带的一些示例,对其进行分析和调整。没那么复杂。

更新

让客户创作 JasperReports 模板、编译并添加到类路径意味着您需要过多地打开系统。通常客户提供所需报告的描述,开发人员创建数据源并设计模板。JasperReports 可以有参数。如果这些参数通过 UI 公开,用户可以在运行时更改报表的行为。

如果您确实需要更大的灵活性,请使用 JasperReports 提供的 API 来创作模板。我可以想象一些简单的 DLS 供高级用户与您的系统进行通信,从而创建动态报告。

于 2009-08-04T12:26:55.007 回答