上周,我试图使用Jasper创建报告。 在这篇文章中,我将记录一些资源和链接,以便对任何寻求类似信息的人都有用。
我将介绍Jasper报告,示例和Dynamic Jasper的生命周期。
Jasper Reports是世界上最受欢迎的开源报告引擎。 它完全用Java编写,并且能够使用来自任何类型的数据源的数据,并生成像素完美的文档,这些文档可以查看,打印或导出为各种文档格式,包括HTML,PDF,Excel,OpenOffice和Word 。
JasperReport生命周期
如图所示,生命周期包含3个不同的阶段,
1.设计报告
在此步骤中,将涉及创建JRXML文件,该文件是一个XML文档,其中包含报告布局的定义。 我们可以使用iReport Designer或文本编辑器手动创建它。 使用iReport Designer,布局是完全以可视方式设计的,因此您可以忽略JRXML文件的实际结构。
这是有关使用iReport设计报告的详细教程。 我们还可以使用本文后面介绍的Dynamic Jasper设计报告。
2.执行报告。
在执行报告之前,必须将JRXML编译在称为Jasper文件(* .jasper)的二进制对象中。 出于性能原因完成此编译。 Jasper文件是您需要随应用程序一起提供的文件,以便运行报告。 编译报表后,将使用应用程序中的数据填充报表。 net.sf.jasperreports.engine.JasperFillManager类提供了必要的功能来填充报告中的数据。
通过将Jasper文件和数据源传递给JasperReports来执行报告执行。 数据源类型很多,可以从SQL查询,XML文件,csv文件,HQL(休眠查询语言)查询,Java Bean集合等填充Jasper文件。为了找到合适的数据源,JasperReports非常灵活,可以让您编写自己的自定义数据源。
JasperFillManager.fillReportToFile('MasterReport.jasper',参数,getDataSource());
此操作将创建一个Jasper打印文件(* .jrprint),该文件用于打印或导出报告。
3.导出为所需格式
使用上一步中创建的Jasper打印文件,我们将能够使用JasperExportManager将其导出为任何格式。 贾斯珀提供各种形式的出口。 这意味着使用相同的输入,我们可以创建数据的多种表示形式。 Jasper内部使用不同的API创建文档。 但是这些复杂性被更简单的隐藏了
JasperExportManager。
JasperExportManager。 exportReportToPdfFile('MasterReport.jrprint');
简而言之,生命周期可以总结在下图中
关于Jasper Reports生命周期的参考资料和其他优秀文章
- 贾斯珀图书馆Wiki
- 碧玉报告维基
- Ramki Java博客中的Jasper报告
- JasperReport –开源Java报告框架
例子
我发现很难找到Jasper报告的可行示例。 但是它就在包装内! 下载Jasper Library后,转到demo \ samples,您将找到许多示例程序。 其中许多需要有效的HSQL DB连接,要激活它,请转到demo \ hsqldb并启动服务器。 每个文件夹都有一个readme.txt文件,它将帮助您了解如何运行它。 可以使用ant任务执行所有示例。
这是其他一些来源的清单。
- Jasper库中的样本
- Java报告与Jasper报告–第2部分
- 碧玉报告-示例
- Spring MVC 3.1和JasperReports
使用Dynamic Jasper简化报表创建
DynamicJasper (DJ)是一个免费的开源库,它隐藏了Jasper Reports的复杂性,它可以帮助开发人员在设计简单/中等复杂性报告时节省时间,从而自动生成报告元素的布局。
项目主页提供了许多有关如何使用该库的示例和代码片段。 我已经使用了一段时间,它是JRXML文件的非常稳定的替代品。虽然使用动态jasper,但是报表设计是用Java编码的。 这意味着每次编译,填充和导出报告。 通过使用动态碧玉,我们将替代上述碧玉生命周期中的第一步。 即使使用动态jasper,您也需要jasper库和其他相关文件。
这是Dynamic Jasper使用的更多示例。
- 如何在Dynamic Jasper上浏览页面
- Spring 3 – DynamicJasper – Hibernate教程:连接DynamicReport
- Spring 3 – DynamicJasper – Hibernate教程:使用普通列表
参考: 在我们的面向对象的生活博客中,使用我们的JCG合作伙伴 Manu PK 使用Jasper Reports在Java中创建报告 。
翻译自: https://www.javacodegeeks.com/2012/11/using-jasper-reports-to-create-reports-in-java.html