Jasper reports JasperReports和自定义数据源

Jasper reports JasperReports和自定义数据源,jasper-reports,Jasper Reports,我正在考虑将JasperReports嵌入到现有的web应用程序中进行报告。webapp位于一个古老而复杂的现有数据库之上,不适合报告编写者直接编写报告 我想看的是围绕我们现有的数据访问层编写某种包装器(编写这种包装器是为了让我们的生活更容易与前面提到的古老而复杂的数据库交谈)。有没有人有过为JasperResport编写自定义数据源的经验,或者做过类似的事情 已更新 我想我的问题可能不清楚——这可能是因为我的要求也不清楚。我想提供一些方法,让最终用户可以使用诸如iReport之类的工具来针对数

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

我想看的是围绕我们现有的数据访问层编写某种包装器(编写这种包装器是为了让我们的生活更容易与前面提到的古老而复杂的数据库交谈)。有没有人有过为JasperResport编写自定义数据源的经验,或者做过类似的事情

已更新

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

已更新


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

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


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

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

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

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

更新

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


如果确实需要更大的灵活性,那么可以使用JasperReports提供的API来编写模板。我可以想象一些简单的DLS,供高级用户与您的系统通信,创建即时报告。

谢谢。我已经看过了,它只展示了一个基本的例子。我想我可以看到如何从报告中提取各种参数。我看不到的是如何将可用字段呈现给报表作者,我们这样做的方式是为其中的报表创建一个包含所有JavaBean的jar文件。然后将jar文件添加到iReport中的类路径中。我们在上面的链接中放入了provider类,如图3.5所示。已经有一段时间了,但我认为这就是它的工作原理。@jacobschoen嗨,我想知道是否可以将参数传递到javabean中?然后我们可以处理一些业务逻辑,谢谢。不要将参数传递给JavaBean,而是自己生成JavaBean实例并将其提供给报表。我在这篇博文中介绍了这种方法——我不知道他们可能有多个数据源。计划使用iReport编写报告。我想我这里缺少的是关于查询我的访问层的内容,我所看到的示例中没有任何一个显示出这方面的内容。我已经更新了这个问题。