(二)Hello world JasperReport
一、前言
在工作中,尤其是传统企业中,面不了会用到报表(包含图表,子报表,交叉表等的复杂布局)展示数据。学习JasperReport,是因为经历了GRID++报表开发的痛苦(尤其是IE兼容性问题极其严重)、不顺手。
二、eclipse集成
TIBCO Jaspersoft Studio是JasperReports库和JasperReports服务器的基于Eclipse的报表设计器;虽然,它挺好的;只是,开发人员已经习惯了现有电脑的eclipse(或idea),为了开发效率,它可以作为Eclipse插件使用(主要原因是我喜欢eclipse DevStyle主题 ^_^)。
eclipse > Help > Eclipse Marketplace
三、主界面和报表设计视图
学习参考:https://blog.csdn.net/deniro_li/article/details/73610105
- 编辑器
页签 | 说明 |
Design | 可视化的报表设计区域。 |
Source | 报表对应的 JRXML 源代码。 |
Preview | 预览报表设计的效果。 |
- 辅助视图
视图 | 说明 |
Repository Explorer | 维护报表的数据来源。 |
Project Explorer | 维护项目目录(当前的 workspace 下)。 |
Outline | 本张报表的结构,在预览模式下,为空。 |
Properties | 查看或者编辑某个报表元素的属性,可以打开多个元素的属性视图。 |
Problems | 展示问题或者错误。 |
Report state summary | 报表执行控制台、错误日志、统计信息。 |
- Design
我们一般在 Design 页签中设计报表。报表分为几个不同的水平分割部分,它们都被叫做栏(Band),可以把这些报表元素放在这些栏中。每一个栏根据它们的特性,可能会被重复多次。比如 页头(page header)在每一页都会被重复一次,而 detail band 中的内容,在每一条记录中都会被重复一次。
因为布局是可视化的,所以几乎可以忽略它们底层的源代码(JRXML)。
Design 页签预先定义了 9 个栏。一个栏的宽度与页面的宽度相同(不包括左右外边距)。一般来说,栏 的高度会自动适配实际内容,但有的栏是固定的,比如 Column footer、page footer 以及最后一页的 last page footer 的栏。
下面是栏的类型:
Band 名称 | 说明 |
Title | 标题。它只会出现一次,可以被打印在一个独立的页中做封面(这种情况下,这个栏的高度不会被计算到所有栏的总高度中)。 |
Page Header | 页头。它会出现在所有的被打印的页面中(如果 Tile 和 Summary 被打印在独立页中的话,那么就不会打印页头)。 |
Column Header | 每一页的数据顶部栏。一般放数据表中的列名。 |
Group Header | 分组的顶部栏。可选或者可以有多个。一般与 Group footer 配合使用。可以设置它的最小高度,但如果它的实际高度超过了这个最小值,那么它就会被打印到新页上,这一点一定要注意! |
Group Footer | 分组的底部栏。 |
Column Footer | 每一页的数据底部栏。 |
Page Footer | 页尾。 |
Last Page Footer | 最后一页的页尾。可以通过它设计一个与其他页的页尾与众不同的效果。如果它的高度被设置为 0,那么它将被完全忽略。 |
Summary | 摘要栏。一般放置汇总的统计数据。 |
Background | 背景。可以在这里加水印。它可以被设置的最大高度是页面的高度。 |
Detail | 显示数据,如:Fields变量 |
- JasperReport列出以下可选的尺寸格式:
页面格式 | 尺寸(像素) | 页面格式 | 尺寸(像素) |
Letter | 612x792 | B0 | 2836x4008 |
Note | 540x720 | B1 | 2004x2836 |
Legal | 612x1008 | B2 | 1418x2004 |
A0 | 2380x3368 | B3 | 1002x1418 |
A1 | 1684x3368 | B4 | 709x1002 |
A2 | 1190x1684 | B5 | 501x709 |
A3 | 842x1190 | ARCH_E | 2592x3456 |
A4 | 595x842 | ARCH_D | 1728x2593 |
A5 | 421x595 | ARCH_C | 1296x1728 |
A6 | 297x421 | ARCH_B | 864x1296 |
A7 | 210x297 | ARCH_A | 648x864 |
A8 | 148x210 | FLSA | 612x936 |
A9 | 105X148 | FLSE | 612x936 |
A10 | 74X105 | HALFLETTER | 396x612 |
11X17 | 792x1224 | LEDGER | 1224x792 |
四、报表元素
学习参考:https://blog.csdn.net/deniro_li/article/details/77850188
- 基础元素
五、spring boot 集成
采用 spring-boot 1.5.14.RELEASE
<dependency><groupId>com.itextpdf</groupId><artifactId>itext-asian</artifactId><version>5.2.0</version></dependency><dependency><groupId>com.itextpdf</groupId><artifactId>itextpdf</artifactId><version>5.5.13</version></dependency> <dependency><groupId>net.sf.jasperreports</groupId><artifactId>jasperreports</artifactId><version>6.9.0</version></dependency><dependency><groupId>net.sf.jasperreports</groupId><artifactId>jasperreports-fonts</artifactId><version>6.9.0</version></dependency><dependency><groupId>net.sf.jasperreports</groupId><artifactId>jasperreports-functions</artifactId><version>6.9.0</version></dependency>
六、解决中文显示
网上有替换字体的、有更换 jar 包的,一一使用都不完美。后来发现了此文章(感谢他):http://www.itclj.com/blog/5a0b079d81c06e4103ef5129 ,使用之后真不错!终于,解决了中文显示的难题。
jasperreport 源码
我使用的是:华文宋体;fonts.xml
<?xml version="1.0" encoding="UTF-8"?>
<fontFamilies><fontFamily name="华文宋体"><normal>fonts/STSONG.TTF</normal><bold>fonts/STSONG.TTF</bold><italic>fonts/STSONG.TTF</italic><boldItalic>fonts/STSONG.TTF</boldItalic><pdfEncoding>Identity-H</pdfEncoding><pdfEmbedded>true</pdfEmbedded><exportFonts><export key="net.sf.jasperreports.html">'华文宋体', Arial, Helvetica, sans-serif</export><export key="net.sf.jasperreports.xhtml">'华文宋体', Arial, Helvetica, sans-serif</export></exportFonts></fontFamily>
</fontFamilies>
jasperreports_extension.properties
net.sf.jasperreports.extension.registry.factory.simple.font.families=net.sf.jasperreports.engine.fonts.SimpleFontExtensionsRegistryFactory
net.sf.jasperreports.extension.simple.font.families.lobstertwo=fonts/fonts.xml
STSONG.TTF 字体下载,可以去 WIN10 控制面板 COPY。
预览效果:
七、参考文献
- http://www.itclj.com/blog/5a0b079d81c06e4103ef5129
- https://blog.csdn.net/SHIYUN123zw/column/info/31009
- https://community.jaspersoft.com/documentation/tibco-jaspersoft-studio-user-guide/v750/getting-started-jaspersoft-studio
- http://www.bubuko.com/infodetail-2492974.html
八、下期预告
- map填充报表;javaBean填充报表
- 展示分组报表
(二)Hello world JasperReport相关推荐
- jasperreport mysql_一步一步学iReport + JasperReports(二) :JasperReport初级教
本文可以定位于 认识IReport这个IDE本身及其基本用法 ,学习时,你不需要全部实现此文章中的例子,只要理解便可,具体用法将在后面提到, 本文主要讲述了ireport的下载.安装和界面介绍,以及基 ...
- Jasperreport之与Springboot整合
环境: jdk1.8 Jaspersoft Studio 6.5.0 Jasperreport 6.5.0 Springboot 1.5.x 一 用Jaspersoft Studio报表设计器设计一 ...
- JasperReport学习笔记2-创建简单的报表例子
http://www.iteye.com/topic/399750 一,创建简单的jrxml文件 Xml代码 <?xml version="1.0"?> <! ...
- 利用JasperReport+iReport进行Web报表开发
用JasperReport+iReport进行Web报表开发 序言 在非常多实际的项目里,报表都是当中十分重要的组成部分,比如把查询结果以报表的形式呈现出来.这里所提到的报表可不是简单的二维表,而是拥 ...
- JasperReport里面的Demo
1. alterdesign 该例子演示了报表编译后,在报表展现的时候如何动态的控制其中的元素 比如让某一个矩形变色或其他 2. antcompile 演示如何让 ant 来编译 3. chart 演 ...
- JasperReport+iReport进行java报表开发
一 相关基础知识 1.关于JasperReport和iReport Jasperreport是一个报表制作程序,用户需要按照它制定的规则编写一个XML文件,然后得到用户需要输出的格式 ...
- JasperReport报表设计总结
1)定制报表格式. 有二种方式,一种就是写jrxml文件,其实就是xml文件,只不过是后缀名不一样罢了.另一种方式更直接,就是生成一个JasperDesign类的实例,在japsperDesign ...
- iReport与JasperReport简介
一.iReport与JasperReport简介 1.1 简介 JasperReport是报表的引擎部分,界面设计是用iReport.为什么选择这两个软件呢?因为这两个软件都是开源的,即免费的(虽 ...
- pdf报表的制作入门,JasperReport
PDF报表的制作入门,JasperReport 概述 在企业级应用开发中,报表生成.报表打印下载是其重要的一个环节.在之前的课程中我们已经学习了报表中比较重要的一种:Excel报表.其实除了Excel ...
最新文章
- 10 个 Python 工程师,9 个不合格!
- HDOJ2203 亲和数
- php基于laravel框架的批量插入操作
- shell中$XX相关
- 旅游景点人物进出系统[OC项目]
- Java黑皮书课后题第6章:**6.3(回文整数)使用下面的方法头编写两个方法:……使用reverse方法实现isPalindrome。如果一个数字的逆序数和它自身相等,这个数就称为回文数。
- Mysql字符串截取 mysql将字符串字段转为数字排序或比大小
- 正则表达式总结及一些有用的例子
- 竞彩足球混合过关赔率API调用示例代码
- 查看vs支持的c#语言版本/查看.NetCore版本/更改c#语言版本
- 网络安全实验 缓冲区栈溢出实验 Ollydbg
- c语言编译器C11,如何检测c11支持编译器与cmake
- c语言程序设计杨明莉刘磊答案,清华大学出版社-图书详情-《C/C++程序设计基础与实践教程(第2版)》...
- [书籍精读]《移动WEB前端高级开发实践》精读笔记分享
- 牛掰了!鸿蒙与Android完美融合,将鸿蒙设备当Android设备用
- 基于php732电子杂志投稿审核网站
- 灰色关联度分析(Grey Relation Analysis,GRA)原理详解
- html做万用表效果,一种万用表的制作方法
- Linux——DHCP篇
- although 与 though 的区别