报表技术之PDF格式报表生成 (JasperResport)

报表技术之PDF格式报表生成 (JasperResport)

1.JasperReport

IText PDF 类库 , 编程非常复杂 ,运维成本非常高
这里写图片描述
这里写图片描述
这里写图片描述
2.IReport 图形化报表开发工具 下载安装

这里写图片描述
这里写图片描述
下载网址:

http://community.jaspersoft.com/project/ireport-designer/releases

这里写图片描述

安装只需要默认即可完成。(路径可以自己选择),注意:可能需要jdk1.7才能打开
3.IReport 报表模板简介和设置中文生成
3.1. 新建 JasperReport 模板文件 .jrxml
这里写图片描述
这里写图片描述

3.2.设置默认语言
对输入中文内容 设置组件属性
这里写图片描述
这里写图片描述
在 IReport 引入 ITextAsian.jar 字库
这里写图片描述
这里写图片描述
3.3.了解报表模板结构
Title: 报表标题
PageHeader: 页眉
ColumnHeader: 表格列标题
Detail: 表格数据内容
ColumnFooter: 表格页脚
PageFooter: 页脚
Summary: 摘要
这里写图片描述
3.4.常用报表组件
这里写图片描述
StaticText: 静态文本
TextField : 显示动态文本

设置预览格式为 PDF
这里写图片描述
4.IReport 配置数据库连接,基于数据表生成报表
这里写图片描述
4.1.点击按钮配置数据库连接
新建JDBC连接
这里写图片描述
这里写图片描述
4.2 在 ireport 添加 oracle 的 jdbc 驱动
这里写图片描述
4.3 通过 ReportQuery 查询数据库
这里写图片描述
这里写图片描述
4.4.设计报表
这里写图片描述

5.JasperResport 根据模板文件 生成报表
5.1. 设置 ireport 字段 自动换行
这里写图片描述
这里写图片描述

5.2将桌面(文件路径)的waybill.jrxml文件复制到项目中
这里写图片描述
5.3在页面添加按钮,并绑定点击事件,提交表单
这里写图片描述
5.4在maven项目的父模块添加jasperReport依赖
这里写图片描述
5.5 在 ReportAction 添加 exportJasperPdf 方法
这里写图片描述
这里写图片描述
问题:当项目的功能够多时,可能会出现jar包冲突(当导入本次是jackson包冲突)
Caused by: java.lang.ClassNotFoundException:
com.fasterxml.jackson.annotation.ObjectIdResolver
在pom的座标中引入
这里写图片描述
生成的PDF可能会出现没有自动换行,因为你的边框没有设置足够的大小,导致换行的数据没有被显示出来,可以调高字段行高

效果展示(格式比较乱,可以细心去调每个内容的间距、行高等)
这里写图片描述
5.6.从数据导入只能显示与数据库字段项匹配的,但是当想描述一些数据库中没有的数据,就需要以下操作
重新设计ireport报表:在 ireport 添加 符合 WayBill 对象属性的 Field
这里写图片描述
这里写图片描述
修改 ReportAction 代码
这里写图片描述
这里写图片描述
异常:

Caused by: QueryPhaseExecutionException[Result window is too large, from + size must be less than or equal to: [10000] but was [2147483647]. See the scroll api for a more efficient way to request large data sets. This limit can be set by changing the [index.max_result_window] index level parameter.]

修复 WayBillServiceImpl 查询数据代码:
这里写图片描述

注意:当模板中有中文时,一定要设置字体和字体的编码
这里写图片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章