传智健康项目中相关知识点介绍(如图片存储,发送短信,定时调度,统计报表...)(三)

简介: 传智健康项目中相关知识点介绍(如图片存储,发送短信,定时调度,统计报表...)

6.1.2 JasperReports


JasperReports是一个强大、灵活的报表生成工具,能够展示丰富的页面内容,并将之转换成PDF,HTML,或者XML格式。该库完全由Java写成,可以用于在各种Java应用程序,包括J2EE,Web应用程序中生成动态内容。一般情况下,JasperReports会结合Jaspersoft Studio(模板设计器)使用导出PDF报表。


<dependency>
  <groupId>net.sf.jasperreports</groupId>
  <artifactId>jasperreports</artifactId>
  <version>6.8.0</version>
</dependency>

6.2 JasperReports概述

6.2.1 JasperReports快速体验

本小节我们先通过一个快速体验来感受一下JasperReports的开发过程。

第一步:创建maven工程,导入JasperReports的maven坐标

<dependency>
  <groupId>net.sf.jasperreports</groupId>
  <artifactId>jasperreports</artifactId>
  <version>6.8.0</version>
</dependency>
<dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <version>4.12</version>
</dependency>

第二步:将提前准备好的jrxml文件复制到maven工程中(后面会详细讲解如何创建jrxml文件)

9f51e828c38c3ea79caa8c0cecb9a23d.png

第三步:编写单元测试,输出PDF报表

@Test
public void testJasperReports()throws Exception{
    String jrxmlPath = 
        "D:\\ideaProjects\\projects111\\jasperdemo\\src\\main\\resources\\demo.jrxml";
    String jasperPath = 
        "D:\\ideaProjects\\projects111\\jasperdemo\\src\\main\\resources\\demo.jasper";
    //编译模板
    JasperCompileManager.compileReportToFile(jrxmlPath,jasperPath);
    //构造数据
    Map paramters = new HashMap();
    paramters.put("reportDate","2019-10-10");
    paramters.put("company","itcast");
    List<Map> list = new ArrayList();
    Map map1 = new HashMap();
    map1.put("name","xiaoming");
    map1.put("address","beijing");
    map1.put("email","xiaoming@itcast.cn");
    Map map2 = new HashMap();
    map2.put("name","xiaoli");
    map2.put("address","nanjing");
    map2.put("email","xiaoli@itcast.cn");
    list.add(map1);
    list.add(map2);
    //填充数据
    JasperPrint jasperPrint = 
        JasperFillManager.fillReport(jasperPath, 
                                     paramters, 
                                     new JRBeanCollectionDataSource(list));
    //输出文件
    String pdfPath = "D:\\test.pdf";
    JasperExportManager.exportReportToPdfFile(jasperPrint,pdfPath);
}

6.2.2 JasperReports原理


7c6a80f84b97d111bfe20f08bea39dbc.png


JRXML:报表填充模板,本质是一个xml文件

Jasper:由JRXML模板编译成的二进制文件,用于代码填充数据

Jrprint:当用数据填充完Jasper后生成的对象,用于输出报表

Exporter:报表输出的管理类,可以指定要输出的报表为何种格式

PDF/HTML/XML:报表形式


6.2.3 开发流程


使用JasperReports导出pdf报表,开发流程如下:


制作报表模板

模板编译

构造数据

填充数据

输出文件


6.3 模板设计器Jaspersoft Studio


Jaspersoft Studio是一个图形化的报表设计工具,可以非常方便的设计出PDF报表模板文件(其实就是一个xml文件),再结合JasperReports使用,就可以渲染出PDF文件。


下载地址:https://community.jaspersoft.com/community-download


3fb784644a5998064c8827744df10833.png


下载完成后会得到如下安装文件:


a147dc2d79392c65cda45cc854d685f4.png


直接双击安装即可。


6.3.1 Jaspersoft Studio面板介绍


2fe43a03e898cc61222778e513c9599c.png


6.3.2 创建工程和模板文件


打开Jaspersoft Studio工具,首先需要创建一个工程,创建过程如下:


52d01ecd312566be6431149d28411429.png


56acb565ffbaacaa10f087e5aa4b0024.png


d9c2abd0e6c34f8b1138b9d153406f77.png



92b6b4db22e6910690914bd8cacf71e3.png


创建完工程后,可以在工程上点击右键,创建模板文件:


7663b043def2f39b7a6b3115852a613c.png


c35d0836b9b9f49044386938e09cd532.png

7e493cc846ebe35f3286ce8cf0803ab2.png

1bbcedfb44b4b64f2387dde5726ab905.png

fffbb778e9aa1159f7e61735117c2b00.png


5e3efe63db5adde35b83a8e19fb63ef7.png

可以看到创建处理的模板文件后缀为jrxml,从设计区面板可以看到如下效果:


028030a44f534bfa4367132447c6d5c7.png


可以看到整个文件是可视化的,分为几大区域(Title、Page Header、Column Header等),如果某些区域不需要也可以删除。


在面板左下角可以看到有三种视图方式:Design(设计模式)、Source(源码模式)、Preview(预览模式):


通过Design视图可以看到模板的直观结构和样式

通过Source视图可以看到文件xml源码

通过Preview视图可以预览PDF文件输出后的效果

通过右侧Palette窗口可以看到常用的元素:


02715acd1996d654a3578958c0bf7136.png


6.3.3 设计模板文件

6.3.4 增减Band

可以根据情况删除或者增加模板文件中的区域(称为Band),例如在Page Header区域上点击右键,选择删除菜单:


c6beec08ffd84ee8cac289e498c53810.png


其中Detail区域可以添加多个,其他区域只能有一个。


6.3.5 将元素应用到模板中

Image元素

从右侧Palette面板中选择Image元素(图片元素),拖动到Title区域:


ec898397101a0948f130ca10cd2b4dbb.png


弹出如下对话框,有多种创建模式,选择URL模式,并在下面输入框中输入一个网络图片的连接地址:


75f30dc97d0f71e5c42e442a288f91b3.png


b1a87c97c9438989055c44f05f64edab.png


可以选中图片元素,鼠标拖动调整位置,也可以通过鼠标调整图片的大小。


调整完成后,可以点击Preview进入预览视图,查看PDF输出效果:


a6215722ab23ebc6dbda167238189b29.png


点击Source进入源码视图,查看xml文件内容:


7723ad5a38416186f1ca6ee044d56311.png


其实我们上面创建的demo1.jrxml模板文件,本质上就是一个xml文件,只不过我们不需要自己编写xml文件的内容,而是通过Jaspersoft Studio这个设计器软件进行可视化设计即可。


Static Text元素

Static Text元素就是静态文本元素,用于在PDF文件上展示静态文本信息:


4cbc52d94cb7d724b511e1df1b1037d1.png


双击Title面板中的Static Text元素,可以修改文本内容:


8e38bf59eb635410c18a4d682047b69b.png


选中元素,也可以调整文本的字体和字号:


c86ed7810cbe450c995ba600094fddcf.png


点击Preview进入预览视图,查看效果:


7f9d0f2352647d675b180ac279208eea.png


Current Date元素

Current Date元素用于在报表中输出当前系统日期,将改元素拖动到Title区域:


6f51b1a75bf6f0709ad3747b0b7c1341.png


预览输出效果:


4d9781afc0704aa6d32e2ad6c43b2bb5.png


默认日期输出格式如上图所示,可以回到设计视图并选中元素,在Properties面板中的Text Field子标签中修改日期输出格式:


f6f8a91b9c0a96e31d4d98784539d548.png


修改日期格式:


b633e0b93398a143e6216aeebb56d9d4.png


保存文件后重新预览:


f3d34e7d768c47f7e6481167fe9536bb.png

相关文章
|
6月前
|
人工智能 自然语言处理 BI
草料二维码表单功能:轻松收集和管理数据
表单作为草料二维码的高级功能之一,可用于收集格式统一的数据。你可以通过组合姓名、图片、检查项等组件搭建出电子表单,关联到二维码中,扫码填写表单即可更快速、规范的收集数据。 这些数据保存在账号下形成动态档案,可以导出Excel或PDF进行存档;也可以根据企业要求自定义PDF导出格式。
204 2
|
6月前
|
JavaScript 小程序 Java
基于Java+SpringBoot+Vue的大学生考勤系统的设计与实现(亮点:多角色、打卡签到、请假审批、上传成绩单文件、统计图展示)
基于Java+SpringBoot+Vue的大学生考勤系统的设计与实现(亮点:多角色、打卡签到、请假审批、上传成绩单文件、统计图展示)
301 0
基于Java+SpringBoot+Vue的大学生考勤系统的设计与实现(亮点:多角色、打卡签到、请假审批、上传成绩单文件、统计图展示)
|
6月前
|
监控 安全 BI
宜搭报表中,如何实现将报表定时下载并推送到群里
宜搭报表中,如何实现将报表定时下载并推送到群里
|
BI 数据库
汇总报表怎么做,如何设计实现汇总报表?
汇总报表怎么做,如何设计实现汇总报表?
|
存储 Java BI
传智健康项目中相关知识点介绍(如图片存储,发送短信,定时调度,统计报表...)(一)
传智健康项目中相关知识点介绍(如图片存储,发送短信,定时调度,统计报表...)
传智健康项目中相关知识点介绍(如图片存储,发送短信,定时调度,统计报表...)(一)
|
存储 Web App开发 JavaScript
传智健康项目中相关知识点介绍(如图片存储,发送短信,定时调度,统计报表...)(二)
传智健康项目中相关知识点介绍(如图片存储,发送短信,定时调度,统计报表...)
传智健康项目中相关知识点介绍(如图片存储,发送短信,定时调度,统计报表...)(二)
|
SQL 存储 Java
传智健康项目中相关知识点介绍(如图片存储,发送短信,定时调度,统计报表...)(四)
传智健康项目中相关知识点介绍(如图片存储,发送短信,定时调度,统计报表...)
传智健康项目中相关知识点介绍(如图片存储,发送短信,定时调度,统计报表...)(四)
|
JSON 分布式计算 大数据
行政区统计_功能实现|学习笔记
快速学习行政区统计_功能实现
114 0
行政区统计_功能实现|学习笔记
|
JSON 关系型数据库 大数据
电商项目之用户行为日志字段分析|学习笔记
快速学习电商项目之用户行为日志字段分析
|
小程序 API
实战:业务逻辑设计(疫苗预约)进度记录
实战:业务逻辑设计(疫苗预约)进度记录
202 0
实战:业务逻辑设计(疫苗预约)进度记录