使用Jasper Reports以Java创建报告
上周,我试图使用Jasper创建报告。 在这篇文章中,我将记录一些资源和链接,以便对任何寻求类似信息的人都有用。
我将介绍Jasper报告,示例和Dynamic Jasper的生命周期。
Jasper Reports是世界上最受欢迎的开源报告引擎。 它完全用Java编写,并且能够使用来自任何类型的数据源的数据,并生成像素完美的文档,这些文档可以查看,打印或导出为各种文档格式,包括HTML,PDF,Excel,OpenOffice和Word 。
JasperReport生命周期
图片来自Jasper Library Wiki
如图所示,生命周期包含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');
简而言之,生命周期可以总结在下图中
图片来自Ramki Tech
关于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
使用Jasper Reports以Java创建报告相关推荐
- java 使用jasper_使用Jasper Reports以Java创建报告
java 使用jasper 上周,我试图使用Jasper创建报告. 在这篇文章中,我将记录一些资源和链接,以便对任何寻求类似信息的人都有用. 我将介绍Jasper报告,示例和Dynamic Jaspe ...
- Jaspersoft Studio入门:从模板创建报告,并创建数据源
Jaspersoft Studio is a plugin for Eclipse that lets you create reports from a datasource (usually a ...
- Java老矣,尚能饭否?2020 Java生态系统报告出炉
来自:漫话编程 最近,Jrebel公布了一份2020 Java生态系统报告,这份报告主要关注开发人员在开发过程中使用的技术. 这份报告包含了技术人员正在用的编程语言.应用程序架构.应用服务器.运行时平 ...
- Java实验实现一个circle类,java实验报告-类的定义.doc
java实验报告-类的定义 南京理工大学泰州科技学院 实验报告书 课程名称: <JAVA面向对象程序设计> 实验题目: 实验三 类的定义 班 级: 09计算机(2) 学 号: 090903 ...
- java创建类的三个步骤_3个简单步骤即可测试Java 8
java创建类的三个步骤 即将发布的Java 8版本为Java开发人员带来了许多新功能,但是升级时始终存在代码破裂的风险. 我们都记得Java 7出厂时有一系列非常严重的错误 . 当然,我们所有人都可 ...
- java数组使用实验报告_JAVA数组与类的定义-java实验报告
JAVA数组与类的定义-java实验报告 JAVA数组与类的定义-java实验报告 .实验目的与要求 1. 熟悉Java类.对象和方法的一般操作练习等. 2. 熟悉数组等的定义和使用. 二.实验内容及 ...
- java自学报告_Vi,Java,Ant和Junit自学报告
vi自学报告 概述 vi 编辑器是所有 Unix 及 Linux 系统下最基本的编辑器,它直接以命令行窗口作为显示界面.vim是vi的升级版,完全兼容vi并提供了一些新的特性.因为vi.vim完全脱离 ...
- java实验册_Java实验报告册Java实验报告册.doc
Java实验报告册Java实验报告册 <面向对象程序设计> 实验报告与习题册2013 / 2014 学年 第1学期系 别 计算机科学与技术系专 业 班 级 姓 名 指导教师 目 录 项 目 ...
- sql 查询手动创建的表_学习SQL:使用SQL查询手动创建报告
sql 查询手动创建的表 In the previous two articles, we've practiced SQL queries and went through a few more e ...
最新文章
- 抽象SQL查询:SQL-MAP技术的使用
- Oracle任务调度的高级选项
- python保存模型_MNIST数据集训练完如何保存成模型文件?
- WCF 入门调用实例教程
- 树莓派保持网络连接shell脚本
- 计算机应用基础精品课程申报表,计算机应用基础精品课程申报表(15页)-原创力文档...
- 联想拯救者R720黑苹果EFI分享
- ensp配置服务器发布(将DMZ区的web服务区发布,供client访问)
- 在HTTPS网站安装百度分享按钮代码及其SEO外链作用
- 蚂蚁金服-微贷事业群 (北京、杭州)招前端
- Geophysics背景知识(2)
- BDD100K数据集简单解析以及格式转换成voc格式
- 模拟集成电路设计:MOS器件物理模型(1)
- 功能性近红外脑成像技术fNIRs开源网站
- 1.C标准库——stdlib.h
- 网络验证 api.php,青柠网络验证webapi接口说明
- 走出你职业生涯的瓶颈[zt]
- Eclipse运行jsp文件(基于tomcat),界面404或者显示无法访问
- we learn考试能切屏吗_托福说 | 当留学生必备技能成托福口语真题,这题你能拿满分吗?!...
- 一人之下手游当前服务器注册已满,一人之下手游不能注册是怎么回事 一人之下手游不能注册原因详情...
热门文章
- 用python进行自然语言处理_Python自然语言处理示例:SVM和贝叶斯分类
- How to install plugin for Eclipse from .zip
- MySQL优化(二):索引的类型、匹配原则、创建原则
- MVC如何添加Model
- 八爪鱼 是java做的吗_章鱼扫描仪:Java构建工具和恶意软件
- nosql和rdnms_用于SaaS和NoSQL的Jdbi
- netflix_学习Netflix管理员–第2部分
- 使用Java和JSF构建一个简单的CRUD应用
- OCA第6部分中的Java难题
- Apache Camel 2.21发布–新增功能