当前位置:文档之家› IReport报表制作概述最新版

IReport报表制作概述最新版

IReport报表制作概述最新版
IReport报表制作概述最新版

IReport制作报表

一、启动iReport后,点击菜单‖档案‖–―开启新档‖(见图1),

弹出窗口“Report properties”。

图1

二、在窗口―Report properties‖中可定义报表的名称、尺寸、定

位及报表边界值等属性(见图2)。―定位‖下拉列表中包含两个选项“Portrait”和“Landscape”,其中Portrait代表纵向报表,Landscape代表横向报表),下面以制作‖归档文件目录‖为例子来介绍如何制作报表。

图2

三、定义报表名称及定位等属性后,点击“OK”按钮系统弹出报表

设计的主窗体。在窗体的左下方点击右键,弹出菜单“栏的属性”(见图3)。

图3

四、选择该菜单,在弹出窗体中设置各个栏的高度(见图4)。设

置方法如下:选中某个栏后输入高度值,点击“Apply”按钮。

对不需要显示的栏设置其高度值为“0”即可,注意:档案的报

表最常用的栏目为:columnHeader、detail、columnFooter。

图4

五、在上方选取‖静态字段‖工具(T图标),再在‖columnHeader‖栏中

画出来(见图5),以同样的方法增加其它所有静态的文字。

columnHeader栏里面的图表、文字一页只会显示一次,Detail

栏中的会根据条件循环显示,直到页面不够画才换一页显示。

图5

六、右键单击画出的静态字段框选‖属性‖,在弹出的对话框中(见

图6)设置其它属性:Font选项卡中设置字体的相关属性。

(1)在Font Name 选字体;

(2)Size选字体大小;

(3)P DF Font Name 设置或选择相关的字段,注意如果在Font Name选的不是宋体,而是其它字体时,需要通过复制粘贴

功能把相应的字体替换为下表中相应的字体,字体对照表如

下:

(4)L ine Spacing中设置行间距;

(5)A lign和Vertical Align分别代表静态框中的文字的水平对齐和纵向对齐;

(6)R otation中设置文字的显示方向;

(7)复选框―PDF Embedded‖勾上, PDF Coding 选UniGB-UCS2-H (Chinese Simplified),如果字体选择不是

宋体时需要选择Identity-H (Unicode with horizontal writing) ;

(8)Static Text中可以更改静态文字(双击框也可以更改); (9)Border中是设置该属性的边框。

图6

七、在主窗体的“Library”中设置“Field”和变量(见图7)。右

键点“Field”选“添加”–“Field”,在对话框中输入 Field 的Name(名字)和Description(描述—路径值)。Name(名字)的值可以为任意字符,Description的值为系统中某字段的名称或者XML文件中的路径。统计报表中Description的值为某个字段在XML文件中的路径,在其它类型报表中Description的值为档案系统中某字段的名称,除了数据库字段外,还必须增加rows字段,并field Description设置报表所需打印的行数。

图7

八、双击‖Library‖中的‖Fields‖会看到刚才添加的‖Field‖,左键

按住‖件号‖拖到表格中,Field就会在框中了,右键可设置‖Filed‖框的各种属性(和静态字段框一样的), 继续增加其

他Field并拖到表格中,调整好位置和宽度。

九、主窗体菜单“Data”中的“连接/资料来源”是设置数据源的

(见图9),点击“连接/资料来源”后系统弹出

“Connections/Datasources”对话框(见图10)。

图9

十、在“Connections/Datasources”对话框中点‖new‖,选‖XML file

data source‖,如下图:

十一、单击“next”按钮,输入‖name‖(名字)、选中‖Use the report Xpath expression when filling the report ‖、点―Browse‖

选择xml文件数据源,注:关于XML文件需要从系统的定义档

案模版,选择中相应模版的结构,在“报表”页面,增加报表

页面里有个下载样例数据。选完后,可以点下方的‖Test‖测试是

否通过。(见图11)

图11

十二、在主窗体中选择―Data‖–―报表查询‖,系统弹出“Report Query”对话框,在“Report Query”对话框中,“Query language”

设置为“Xpath”,输入XPath路径(测试数据中为

/data/descendant::Package/Description)。(如图14)

图14

十三、在主窗体中,点击数据源下拉列表,从中选择数据源。(如

图15)

图15

十四、编译并执行报表。报表的执行包括无数据执行和有数据执

行。 (如图15)

编译无数据浏览有数据浏览

图15

附注:报表设计一些技巧

1、报表设计器属性

PDF格式:高度、宽度参数是数字30都代表1CM;

如:ColumnHeader的高度设置为5CM,此时需要设成150

EXCEL格式:高度为28.85代表1cm,宽度为30.05代表1cm。如:ColumnHeader的高度设置为5CM,此时需要设成144。

打印条件设置

2、new Boolean(!$F{题名}.equals(null)),是指当题名字段不为

空时打印,也可通过勾选Text Field属性中的Blank when null 来实现(注:excel报表中由于线条显示是需要通过textField边框来实现,最好习惯使用Blank when null来实现字段值为空时打印空白)

3、new Boolean($F{题名}.length() > 117) ,是指当题名字段的

长度大于117时打印

4、new Boolean($V{REPORT_COUNT}.intValue() % 11 == 0),是

指报表的行数为11时出现,一般用于报表底部粗线的打印条件5、$F{起止日期}.substring(0,4),是指截取起止日期的前四位,

用截取函数时,最好加上条件,即new Boolean($F{起止日期}.length() > 4),否则如果起止日期为空时,报表就无法正常打印了,如果想从第五位开始取4位的话,$F{起止日期}.substring(4,8)

6、new Boolean(!$F{案卷题名}.equals(null) && $F{案卷题

名}.split(";").length==5) ,是指题名内容里有四个“;”

号;

7、$F{案卷题名}.split(";")[1],是指出题名的第二段

8、new Boolean($F{案卷题名}.indexof(";")==-1),判断案卷题

名中是否包含";",若不包含返回值为-1。

9、如报表需要按什么分组打印,可增加的一个字段group,并设

置原卷号_2;属类号_1,是指按原卷号与属类号分组打印。

10、如果报表是复合报表,取案卷库字段用_1,取卷内库字段_2

11、new Integer($F{文件标题}.toString().trim().length())取

文件标题的实际长度。

12、new Integer(Integer.parseInt($F{案卷

号}.toString().trim()) 把字符型转换为整型。

13、取文件形成日期的月

1、打印条件

new Boolean(new String($F{文件形成日期}.replaceAll( "/",

"-" )).indexOf("-")>0)

2、输出值

new Integer(new

SimpleDateFormat("yyyy-MM-dd").parse($F{文件形成日

期}.replaceAll( "/", "-" )).getMonth() + 1).toString()

IReport介绍

什么是iReport?

iReport是一个能够创建复杂报表的开源项目,并且它能调用JasperReports库应用于任何一种java应用程序。本身是分布式的且由符合GNU通用公共许可的百分之百纯java编写。由于它丰富的图形界面,你能够很快的创建出任何一种你想要的报表。

必要条件:

iReport需要Sun Java 2 SDK 1.4以上版本; 为了能编译jasper文件就必须安装完整的java2(JDK),不光是(JRE)这个运行环境。如果你还想编译iReport源代码,你还要安装Jakarta Ant version 1.6以上版本。

硬件方面,类似于java的环境,iReport也占很多的RAM,所以它也需要至少256Mb 的内存和至少20Mb的磁盘空间。

报表结构

这章我们将分析报表的构成,来观察一下它由那几部分构成,当用数据打印时这几部分是如何运转的。

Bands

一个报表依靠―type‖页来定义说明。它被分成不同水平的一份被叫做bands。当报表加入数据去打印时,这些部分被印刷很多次依照他们自身的属性(依照报表创建者设计的规则)。举个例子,page header 被重复的打印在每页的开始部分,这样的话,每个band都会重复的打印每一单一的记录。

这个―type‖ 页被分成9个预先确定的bands作为新组被加进去。事实上,iReport 控制每一个头条(Group header)和一个摘要条(Group footer)为每一个组。

图4.1

一个带总是和页的宽度一样(左右的空白除外)然而它的高度,即使已经被设计好,但可能还会依据被包含在内的元素的实际来打印;它能够自由的延长靠近页底。这种特色的出现在bands包含一个subreports或者text field时纵向的内容。通常情况下,bands的高度被用户指定一个“minimal height”。不是所有的bands能依照内容被这个外力改变,特别是:Column Footer,Page Footer 和Last Page Footer.所有的band高度的总和(除了background)总是小于或等于页的top和bottome之间的最小高度。

Title

这是首先看到的band。它被创建仅仅一次,可能被打印在每一分开的页。耍点小聪明,你能利用这个模拟一个无效的subreports(随后我将看看如何做)。关于尺度的确认,它是不可能躲过去的,在报表页的高度设计期间。As regards the admitted dimensions, it is not possible to exceed,

during design time, the report page height (包含top和bottome标记之间)。如果title被打印在几张单独的页面上,这个band的高度不用被包括在整个band的高度之内的,一般低与page的高度。

Page header

这个band允许你设计一个page的header。它的高度在设计阶段被定义,通常不会改变在创建报表的过程中(除非有垂直插入相当大的成分,例如这个textfields包含很长的文本和subreports)。页面的header出现在整个打印页的相同位置在设计阶段期间。Title和Summary bands不包括page header 在打印一个单独的页时。

Column header

这个band在每一个详细的列开始时被打印。这column的概念一会儿再解释。通常的,包含标签的tabular报表的列的名字被插入在这里。

Group header

一个报表能容纳零个到多个group bands,它允许收藏详细的记录在不动groups。有group header ,自然要有group footer(他们能能独立的展现和取消)。不同的属性被联合在一个group。他们确定他们的行为功过查看graphic point。它是可能的影响一个新的页的group header或者一个newcolumn,打印这个band在整个页的下面,如果这个bands超出了一个单独的页(以一个组的级别作为一个page header)。它是可能的去修改被请求的高度并打印它:如果它是超过其他的高度,这个group将被打印在一个新的page(特别要注意它的值由于太长,在打印时会无限的循环),等等。接下来我们将详细讨论groups。

Detail

Detail band 将每个通过datasources读到记录响应的传给打印机。很可能,大多数的元素都被放在这里。

Group footer

这个band表示一个group的结束。通常它包含的区域显示小计或者分开图解元素,作为一条线,等等。

Column footer

这个band的出现表示每一个column的结束。它的尺寸是不能被调整的(即使它包含一个相当大的元素,像subreports或者文本域)。

Page footer

这是页脚。它和page header同时出现在每页。同column footer一样,他是不足够大的。

Last Page footer

如果你想使最后一页的footer与其他的页的footers不一样,这时可能就要用到这个band。如果这个band的高度是0,他将被完全的忽视,其他确定结构的普通页也能适用在最后一页。它首次出现在JasperReports的0.6.2版本。

Summary

在其他的地方这个组名被叫做report footer。它允许你在report的最后插入你想要的任何内容关于总结等。

Background

Band第一次出现在JasperReport0.4.6版本时。它由于许多用户的坚持不懈的要求能够创建水印和similar effects而引入(整个页面的结构). 它可以具有最大的高度以至于和页面高度一样。

报表属性

(1)报表的名字是第一个属性。这个名字是本地命名,它和源文件的名字是相互独立的,它仅仅被JasperReports library 调用(例如:命名一个报表编译后的java文件)。

(2)页面的尺寸大概是报表最重要的属性。iReport 和JasperReports使用的最小量度单位是像素。(像素大小是75点每英寸,每英寸的点数)。然而,我们经常使用的报表的量度单位更为平常,像厘米,英寸或毫米。下表列出了量度标准和像素大小。由于尺寸管理基于像素,所以当我们用不同的量度看同一数据会发

通过修改高度和宽度,你就可以创建任意大小的报表。

(3)报表页的定位有landscape和portrait选项,Portrait代表纵向报表,Landscape 代表横向报表。

(4)页面的空白尺寸依赖于page Margin选项卡的四个输入值来确定。

(5)一个报表页被几条平行线分开为几部分:bands。column和记录集是没有关系的,只和detail band有关系。意思就是说一条记录用十个fields和一个表的话,不需要十列。然而,这些元素可以用table实现恰当的放置。十列将导致一个很长的记录列(非常狭窄的横条)被打印。下面的例子将告诉你怎样设置值为一个简单的列报表在A4纸上。

字段数的值是1,它的宽度和整个页面一样,除了空白。列之间的空间没有意义,所以它的值是0。(注:设计脊背、照片卡片等报表时需要)

当“字段数“输入2。iReport将自动的计算列的宽度依照页的空白和宽度。如果你想在两列之间插入空白,那就为“spacing”填写一个值。

所有的空白,列的宽度和每列之间的空白,加起来要小于页的宽度。如果不检验这种情形的话可能导致错误产生。

相关主题
文本预览
相关文档 最新文档