iReport是一款非常强大的组件,针对于各种复杂的报告、单元页等,它完全适配Java语言,所以在组件内适用java代码。
本次业务需要项目管理平台进行出报告模块,报告内置 柱状图,表格,图表等复杂组件,所以决定前端调用,后端出报告,并且返回。
注意:本次版本5.6.0,需要适配jdk1.6的版本,压缩在同级目录下,并在config文件进行配置即可。
一.下载
1. 链接
下载地址:https://sourceforge.net/projects/ireport/files/iReport/iReport-5.6.0/
下载zip可以直接解压
2. 配置
iReport 5.6.0 由于历史久远,最多支持jdk到1.7 ,如果你的本地jdk环境是1.8,打开会闪退; 所以需要自行准备jdk1.7 ,我这里准备的是jdk1.6
在etc的config文件进行jdk路径配置
二.基本操作
1、主体结构
title:标题
page header:页表头
column header:列表头
detail 1 :字段field(参与循环)
column footer:列底部
page footer:页底部
summary:总结或批注
每部分都有相应的功能,可针对于每页想输出的内容进行分区编写。
2、Report Inspector
这里存放的为各个分区里面的组件,可以根据需求进行右键设置,删除,增添。这里边重点有
parameters:参数,在编译时必须传参,页面根据传参而相应显示。
fields:属性字段,为所输入实体类中的属性。
variables:变量,大多存放页码,数量等。
dataset1:集合,下面table中会提及。
page header:表头。
detail:循环数据。
3.属性框
可以在这对,不同的组件和Inspector分区,进行属性的设置,包括:组件表达式express,输入框的颜色字体等,边框的虚实线等。
4.运行
Designer:分区与组件模式
xml:其实模板的实质是xml文件,可查看
preview:编写完成,预览
compile:在预览之后,即为编译按钮,可以根据编写的jrxml生成jasper文件,导入idea中可作为模板。
三、基本组件使用
1.Static Text(静态文本框):静态的文字
2.Text Field(文本域):进行属性设置格式为$F{字段},根据自行要求进行属性设置,field即为实体类字段。
3.Image(图片):进行引入,可以为流形式,测试可为绝对路径
注意:Image组件可以不选择任何图片文件直接选择取消,这就是"二维码"制作方法。
4.Current Date(当前时间):设置时间,可直接new 对象,设置pattern。
5、List
5.1、准备工作,创建所需集合。
5.2、进行配置。
6、table 报表的使用
6.1 选择已经有的表单或者新建,这里我选择以上我的表单。
6.2 设置所需字段,然后设置使用数据字段集合
6.3 、设计表头、列名、detail循环属性
6.4 编译生成:其中生成红色数据或者黑色数据,可在属性中pring when express 满足条件时,灵活显示,这里不多做介绍。
四、集成
1、maven 集成依赖
<!-- jasper报表依赖 -->
<dependency>
<groupId>net.sf.jasperreports</groupId>
<artifactId>jasperreports</artifactId>
<version>6.8.0</version>
<exclusions>
<exclusion>
<groupId>com.lowagie</groupId>
<artifactId>itext</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>com.lowagie</groupId>
<artifactId>itext</artifactId>
<version>2.1.7</version>
</dependency>
<dependency>
<groupId>cn.lesper</groupId>
<artifactId>iTextAsian</artifactId>
<version>3.0</version>
</dependency>
<dependency>
<groupId>org.codehaus.groovy</groupId>
<artifactId>groovy-all</artifactId>
<version>2.4.15</version>
</dependency>
<!-- mysql -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.34</version>
</dependency>
</dependencies>
2、代码
controller
service
util
jasper report 核心方法
五、总结
总之,jasper-report 是一款强大兼容java的报告组件,但是对于模板的制作,以及配置集成的工作也是需要时间来沉淀。
有问题大家可以多多交流!