当前位置: 代码迷 >> 报表 >> 认识iReport并创设其模板
  详细解决方案

认识iReport并创设其模板

热度:812   发布时间:2016-04-29 01:49:54.0
认识iReport并创建其模板

被Ireport狂虐了一个礼拜,终于在今天做出了第一个成型的例子,撒花~~~~~

好吧,为了记录这个跌跌撞撞的认识过程,必须写一篇博客呀。

?

一、认识ireport

iReport是一个开源的报表工具(我觉得它挺难的。。),它有专门的设计器,设计器是用来生成模板文件并把模板文件编译成二进制文件的。

右侧是设计器常常用到的一些模板组件:



?

.jrxml即是使用Ireport设计器生成的模板文件,它也属于典型的xml文件;

.jasper则是通过.jrxml文件编译的二进制文件,它是web程序真正会使用到的文件。

下面通过使用Jaspersoft iReport Desinger 5.60来认识一下iReport。

去官网下载好ireport的设计器,在bin文件夹中打开ireport.exe启动程序来启动设计器。尝试通过new来创建一个模板:



?你会在中间看到若干个模板文件。注意这里有2个按钮,每个按钮侧重的功能不同。

Open this template主要是打开一个模板,并允许你在该模板上「个性化」,如我选择第4个模板并指定保存路径时,你会发现如下模板样式:



?这个典型的模板文件包括如下几个部分:

title:只在报表的第一页显示,后面的就不在显示,常用来放置报表名称。

page header :相当于页眉,在第一页位于title的下面,而后的页中是位于最上部。

page footer :相当于页脚,和page header是想对应的。

detail :报表内容显示的部分,这部分内容是重复的,相当于迭代的过程,常用于放置类似表格中列的内容。

column header :针对Detail Band?的表头段,一般情况下在这个段中画报表的表头,用于放置表头内容

column footer :和column header 相对的。

summary :出现在整个报表的最后一页的detail的下面,统计总值结果。

?

而当我选择Launch report wizard按钮时,会出现一个产生报表并用数据源填充的向导。如下:



?之所以会出现让我填写sql是因为我选择的Connections/ Data Sources为使用数据库连接的方式。一路next之后,你就会得发现设计器左侧的Fileds Band会多了你刚才所选的字段,你可以通过直接拖拽到模板的Detail区域,如:


你可以通过点击Preview按钮,发现如下报表:


这样,通过Launch report wizard按钮向导得到的一张超原始简单的报表就ok了。

?

我们需要注意以上2个按钮的不同作用!——open this template按钮的作用是选择模板,并由我们自己提供变量;而Launch report wizard按钮的作用是通过向导来绑定数据源直接在设计器里面生成一张报表,它的变量会因为你绑定数据源的操作而自动在Fileds里面生成。

注:报表设计时需要注意的几点:

1)关于中文显示,需要在属性里选择中文字体;

2)Static Text用来放置lable标签,即静态文字。Text Filed用来放置动态变量,是由数据源动态赋予其值。

而Text Filed可以通过右键->Expression Editor来编辑表达式,字符串是需要通过双引号围起来的哦。


?3)别忘记点击那个小锤子似的图标来编译jrxml文件噢:

?

二、关于Parameters &Fields & Variables的区别

Parameters:在报表设计中以$P{参数名}呈现,常常用来接收从数据源传递过来的非数据域(指类似表格中列里面的值)的额外的参数值;

Fields :在报表设计中以$F{变量名}呈现,常用于接收数据源的数据域的值;

Variables:?在报表设计中以$V{变量名}呈现,使用的较少,很少跟数据源交互,一般自带的显示页数等比较常见。

?

三、iReport分组的简单介绍

但很常见地,你的报表不可能仅仅是类似表格一样查询并展示那么简单吧,分组则显得无比重要。

如何在一个典型的报表木板上加上分组呢?

在报表名上右键Add Report Group ,你会发现如下会话框:


?他要你指定分组名,通过哪个字段或表达式来分组。一般而言,若是你是通过向导按钮绑定了数据源,可以直接透过指定字段名来分组,若是没有绑定数据源,则是通过$F{变量名}来分组。

假如已经在设计器里绑定好了数据源,你添加完分组后,可以在模板里发现多了一个band:


?而你会发现这个分组的一个重要属性:


?红色框框内的属性是非常非常重要的,没有它你会发现分组的字段根本无法正常显示。。

预览发现:


?说明,达到了分组的效果。。。

关于分组我是走了N多弯路的,这里小结的部分真的很重要……

?

iReport的简单介绍和使用就到这儿了,下一篇我将记录如何跟web后台结合起来,并且数据源是通过后台绑定的。