JasperReport快速入门--设计篇(一)

    最近在做高效平台的课程表模块,需要动态显示课表信息,最开始想到了使用报表来实现,所以决定研究一中报表。上网查了一下,信息最多的都是关于JasperReport的,所以决定学习JasperReport

 

         JasperReport是非常优秀的java开源报表工具,因为它开源免费,所以也是最常使用的报表工具。本文的定位是为JasperReport的初学者提供帮助和相互交流。

 

报表开发的生命周期

其实不管是哪类报表,开发周期大概分为两个阶段

1.报表模板设计阶段(一般都会有相应的报表设计器提供支持)

2.报表模板整合到应用程序(将应用程序查询上来的数据填充到报表模板中,然后进行最终效果的显示)

 

jasperreport系列博客分别从这两个阶段对JasperReport进行介绍,本文重点是设计阶段的入门

 

模板设计

如果大家使用百度搜索JasperReport,你会发现出现最多的就是JasperReportLiberary+iReportiReport就是JasperReport的报表设计器;JasperReportLiberary就是编程整合阶段使用的类库。

 

iReport的下载地址

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

 

官方帮组文档的下载地址

http://community.jaspersoft.com/documentation?version=9036

 

ireport的主界面



JasperReport将报表的结构在水平方向上划分为不同的band(),所以JasperReport是带状报表(大家熟悉的水晶报表是表格报表)。如下图所以




每个band的功能和显示的次数都是不一样的,举例:

Title:报表标题,出现在第一页的开头

PageHeader:页头,出现在每一页的开头,如果是第一页,则出现在Title的后面

Detail:报表的内容区,会对查询上来记录进行循环显示

其它的band就不一一列举了,大家可以下载官方文档自己查看,或根据band的名字可以自己猜测

 

那么报表模板文件是以什么格式进行保存的呢?

其实报表模板的源文件是一个标准的XML文件,扩展名是.jrxml。该xml文件内部对报表的bandelement(报表元素)等的大小和位置进行了详细的描述。该XML文件最终会被iReport编译为一个字节码文件,扩展名是.jasper,类似于java类的.class文件。最终我们使用.jasper文件和应用程序进行整合,因为编译后的报表模板效率会更高。


报表文件和java文件的类比

 

源文件

字节码文件

JR报表

.jrxml

.jasper

java

.java

.class

 

    就像我们在进行java编程时的逻辑是一样的,源代码使用纯文本的.java文件进行保存,但最终使用时是编译后的.class文件

 

JR报表的源文件和编译后的文件如下图所示


报表中的具体内容是由报表元素element,来填充的。包括文本元素、图片元素、绘图元素等,如下图所示




其中最常用的是:Static TextText FieldTableCrosstab

 

Static Text中只能放置静态文本,也就是说在程序运行阶段不能改变,其实就是一个字符串常量,类似于我们在CS中使用的Label,经常被用来作为表格的列头

 

Text Field中可以放置动态文本,它的内容是一个表达式,根据程序传给报表的数据,计算表达式的结果,然后动态显示

 

表达式可以有以下几种



其中:

$F中放的是表或实体类的字段名

$V中放的是变量

$P中放的是应用程序传给报表的参数,可以用作给sql语句传参数

$P!中放的是传给sql语句的参数,不是我们常说的参数查询中的参数,而是一段子sql语句

$R中放的是国际化资源文件中的key,用来实现i18n

 

 

tableCrosstab比较复杂,放在下一篇博客讲解。


一个小例子


说了这么多了,来个demo

1.首先新建一个空白报表



下一步



空报表在ireport中显示如下



2.建立一个数据源












点击save创建数据源成功




3.以新建的数据源为基础,创建查询sql语句,并选择要显示的字段






点击OK,创建查询语句和字段成功




4.利用新建的数据源填充报表




点击预览按钮,出现如下效果


这就是一个最简单的例子,可以快速理解jasperreport带状布局的原理

 

后续文章会继续深入讲解jasperreport,希望大家关注。


JasperReport快速入门--设计篇(一),古老的榕树,5-wow.com

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。