IReport报表制作概述最新版模板.docx

上传人:b****9 文档编号:25078792 上传时间:2023-06-04 格式:DOCX 页数:28 大小:1,011.78KB
下载 相关 举报
IReport报表制作概述最新版模板.docx_第1页
第1页 / 共28页
IReport报表制作概述最新版模板.docx_第2页
第2页 / 共28页
IReport报表制作概述最新版模板.docx_第3页
第3页 / 共28页
IReport报表制作概述最新版模板.docx_第4页
第4页 / 共28页
IReport报表制作概述最新版模板.docx_第5页
第5页 / 共28页
点击查看更多>>
下载资源
资源描述

IReport报表制作概述最新版模板.docx

《IReport报表制作概述最新版模板.docx》由会员分享,可在线阅读,更多相关《IReport报表制作概述最新版模板.docx(28页珍藏版)》请在冰豆网上搜索。

IReport报表制作概述最新版模板.docx

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

IReport制作报表

一、启动iReport后,点击菜单”档案”–“开启新档”(见图1),弹出窗口“Reportproperties”。

图1

二、在窗口“Reportproperties”中可定义报表的名称、尺寸、定位及报表边界值等属性(见图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)在FontName选字体;

(2)Size选字体大小;

(3)PDFFontName设置或选择相关的字段,注意如果在FontName选的不是宋体,而是其它字体时,需要通过复制粘贴功能把相应的字体替换为下表中相应的字体,字体对照表如下:

字体名称

字体名字

宋体

STSong-Light

方正舒体

FZSTK.TTF

方正姚体

FZYTK.TTF

仿宋体

simfang.ttf

黑体

simhei.ttf

华文彩云

STCAIYUN.TTF

华文细黑

STFANGSO.TTF

华文新魏

STXINWEI.TTF

华文行楷

STXINGKA.TTF

华文中宋

STZHONGS.TTF

楷体

simkai.ttf

隶书

SIMLI.TTF

宋体-方正超大字符集

SURSONG.TTF

幼圆

SIMYOU.TTF

(4)LineSpacing中设置行间距;

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

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

(7)复选框“PDFEmbedded”勾上,PDFCoding选UniGB-UCS2-H(ChineseSimplified),如果字体选择不是宋体时需要选择Identity-H(Unicodewithhorizontalwriting);

(8)StaticText中可以更改静态文字(双击框也可以更改);

(9)Border中是设置该属性的边框。

图6

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

右键点“Field”选“添加”–“Field”,在对话框中输入Field的Name(名字)和Description(描述—路径值)。

Name(名字)的值可以为任意字符,Description的值为系统中某字段的名称或者XML文件中的路径。

统计报表中Description的值为某个字段在XML文件中的路径,在其它类型报表中Description的值为档案系统中某字段的名称,除了数据库字段外,还必须增加rows字段,并fieldDescription设置报表所需打印的行数。

图7

十、双击”Library”中的”Fields”会看到刚才添加的”Field”,左键按住”件号”拖到表格中,Field就会在框中了,右键可设置”Filed”框的各种属性(和静态字段框一样的),继续增加其他Field并拖到表格中,调整好位置和宽度。

十一、主窗体菜单“Data”中的“连接/资料来源”是设置数据源的(见图9),点击“连接/资料来源”后系统弹出“Connections/Datasources”对话框(见图10)。

图9

十二、在“Connections/Datasources”对话框中点”new”,选”XMLfiledatasource”,如下图:

十三、

十四、单击“next”按钮,输入”name”(名字)、选中”UsethereportXpathexpressionwhenfillingthereport”、点“Browse”选择xml文件数据源,注:

关于XML文件需要从系统的定义档案模版,选择中相应模版的结构,在“报表”页面,增加报表页面里有个下载样例数据。

选完后,可以点下方的”Test”测试是否通过。

(见图11)

十五、

图11

十六、在主窗体中选择“Data”–“报表查询”,系统弹出“ReportQuery”对话框,在“ReportQuery”对话框中,“Querylanguage”设置为“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、newBoolean(!

$F{题名}.equals(null)),是指当题名字段不为空时打印,也可通过勾选TextField属性中的Blankwhennull来实现(注:

excel报表中由于线条显示是需要通过textField边框来实现,最好习惯使用Blankwhennull来实现字段值为空时打印空白)

3、newBoolean($F{题名}.length()>117),是指当题名字段的长度大于117时打印

4、newBoolean($V{REPORT_COUNT}.intValue()%11==0),是指报表的行数为11时出现,一般用于报表底部粗线的打印条件

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

6、newBoolean(!

$F{案卷题名}.equals(null)&&$F{案卷题名}.split(";").length==5),是指题名内容里有四个“;”号;

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

8、newBoolean($F{案卷题名}.indexof(";")==-1),判断案卷题名中是否包含";",若不包含返回值为-1。

9、如报表需要按什么分组打印,可增加的一个字段group,并设置原卷号_2;属类号_1,是指按原卷号与属类号分组打印。

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

11、newInteger($F{文件标题}.toString().trim().length())取文件标题的实际长度。

12、newInteger(Integer.parseInt($F{案卷号}.toString().trim())把字符型转换为整型。

13、取文件形成日期的月

1、打印条件

newBoolean(newString($F{文件形成日期}.replaceAll("/","-")).indexOf("-")>0)

2、输出值

newInteger(newSimpleDateFormat("yyyy-MM-dd").parse($F{文件形成日期}.replaceAll("/","-")).getMonth()+1).toString()

IReport介绍

什么是iReport?

iReport是一个能够创建复杂报表的开源项目,并且它能调用JasperReports库应用于任何一种java应用程序。

本身是分布式的且由符合GNU通用公共许可的百分之百纯java编写。

由于它丰富的图形界面,你能够很快的创建出任何一种你想要的报表。

必要条件:

iReport需要SunJava2SDK1.4以上版本;为了能编译jasper文件就必须安装完整的java2(JDK),不光是(JRE)这个运行环境。

如果你还想编译iReport源代码,你还要安装JakartaAntversion1.6以上版本。

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

报表结构

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

Bands

一个报表依靠“type”页来定义说明。

它被分成不同水平的一份被叫做bands。

当报表加入数据去打印时,这些部分被印刷很多次依照他们自身的属性(依照报表创建者设计的规则)。

举个例子,pageheader被重复的打印在每页的开始部分,这样的话,每个band都会重复的打印每一单一的记录。

这个“type”页被分成9个预先确定的bands作为新组被加进去。

事实上,iReport控制每一个头条(Groupheader)和一个摘要条(Groupfooter)为每一个组。

图4.1

一个带总是和页的宽度一样(左右的空白除外)然而它的高度,即使已经被设计好,但可能还会依据被包含在内的元素的实际来打印;它能够自由的延长靠近页底。

这种特色的出现在bands包含一个subreports或者textfield时纵向的内容。

通常情况下,bands的高度被用户指定一个“minimalheight”。

不是所有的bands能依照内容被这个外力改变,特别是:

ColumnFooter,PageFooter和LastPageFooter.所有的band高度的总和(除了background)总是小于或等于页的top和bottome之间的最小高度。

Title

这是首先看到的band。

它被创建仅仅一次,可能被打印在每一分开的页。

耍点小聪明,你能利用这个模拟一个无效的subreports(随后我将看看如何做)。

关于尺度的确认,它是不可能躲过去的,在报表页的高度设计期间。

Asregardstheadmitteddimensions,itisnotpossibletoexceed,

duringdesigntime,thereportpageheight(包含top和bottome标记之间)。

如果title被打印在几张单独的页面上,这个band的高度不用被包括在整个band的高度之内的,一般低与page的高度。

Pageheader

这个band允许你设计一个page的header。

它的高度在设计阶段被定义,通常不会改变在创建报表的过程中(除非有垂直插入相当大的成分,例如这个textfields包含很长的文本和subreports)。

页面的header出现在整个打印页的相同位置在设计阶段期间。

Title和Summarybands不包括pageheader在打印一个单独的页时。

Columnheader

这个band在每一个详细的列开始时被打印。

这column的概念一会儿再解释。

通常的,包含标签的tabular报表的列的名字被插入在这里。

Groupheader

一个报表能容纳零个到多个groupbands,它允许收藏详细的记录在不动groups。

有groupheader,自然要有groupfooter(他们能能独立的展现和取消)。

不同的属性被联合在一个group。

他们确定他们的行为功过查看graphicpoint。

它是可能的影响一个新的页的groupheader或者一个newcolumn,打印这个band在整个页的下面,如果这个bands超出了一个单独的页(以一个组的级别作为一个pageheader)。

它是可能的去修改被请求的高度并打印它:

如果它是超过其他的高度,这个group将被打印在一个新的page(特别要注意它的值由于太长,在打印时会无限的循环),等等。

接下来我们将详细讨论groups。

Detail

Detailband将每个通过datasources读到记录响应的传给打印机。

很可能,大多数的元素都被放在这里。

Groupfooter

这个band表示一个group的结束。

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

Columnfooter

这个band的出现表示每一个column的结束。

它的尺寸是不能被调整的(即使它包含一个相当大的元素,像subreports或者文本域)。

Pagefooter

这是页脚。

它和pageheader同时出现在每页。

同columnfooter一样,他是不足够大的。

LastPagefooter

如果你想使最后一页的footer与其他的页的footers不一样,这时可能就要用到这个band。

如果这个band的高度是0,他将被完全的忽视,其他确定结构的普通页也能适用在最后一页。

它首次出现在JasperReports的0.6.2版本。

Summary

在其他的地方这个组名被叫做reportfooter。

它允许你在report的最后插入你想要的任何内容关于总结等。

Background

Band第一次出现在JasperReport0.4.6版本时。

它由于许多用户的坚持不懈的要求能够创建水印和similareffects而引入(整个页面的结构).它可以具有最大的高度以至于和页面高度一样。

报表属性

(1)报表的名字是第一个属性。

这个名字是本地命名,它和源文件的名字是相互独立的,它仅仅被JasperReportslibrary调用(例如:

命名一个报表编译后的java文件)。

(2)页面的尺寸大概是报表最重要的属性。

iReport和JasperReports使用的最小量度单位是像素。

(像素大小是75点每英寸,每英寸的点数)。

然而,我们经常使用的报表的量度单位更为平常,像厘米,英寸或毫米。

下表列出了量度标准和像素大小。

由于尺寸管理基于像素,所以当我们用不同的量度看同一数据会发生很大改动。

(注:

每30像素为1CM)

Pagetype

Dimensionsinpixel(像素)

LETTER

612x792

NOTE

540x720

LEGAL

612x1008

A0

2380x3368

A1

1684x2380

A2

1190x1684

A3

842x1190

A4

595x842

A5

421x595

A6

297x421

A7

210x297

A8

148x210

A9

105x148

A10

74x105

B0

2836x4008

B1

2004x2836

B2

1418x2004

B3

1002x1418

B4

709x1002

B5

501x709

ARCH_E

2592x3456

ARCH_D

1728x2592

ARCH_C

1296x1728

ARCH_B

864x1296

ARCH_A

648x864

FLSA

612x936

FLSE

612x936

HALFLETTER

396x612

_11X17

792x1224

LEDGER

1224x792

表4.1

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

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

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

(5)一个报表页被几条平行线分开为几部分:

bands。

column和记录集是没有关系的,只和detailband有关系。

意思就是说一条记录用十个fields和一个表的话,不需要十列。

然而,这些元素可以用table实现恰当的放置。

十列将导致一个很长的记录列(非常狭窄的横条)被打印。

下面的例子将告诉你怎样设置值为一个简单的列报表在A4纸上。

字段数的值是1,它的宽度和整个页面一样,除了空白。

列之间的空间没有意义,所以它的值是0。

(注:

设计脊背、照片卡片等报表时需要)

当“字段数“输入2。

iReport将自动的计算列的宽度依照页的空白和宽度。

如果你想在两列之间插入空白,那就为“spacing”填写一个值。

所有的空白,列的宽度和每列之间的空白,加起来要小于页的宽度。

如果不检验这种情形的话可能导致错误产生。

(6)脚本是一个java类,它的方法执行在报表生成期间,通过触发一个特殊的事件,在scriptlet选项卡,可以指定一个外部的脚本(java类)或激活iReport的内部脚本支持。

如果不想使用脚本,那就设置下拉菜单的值为:

Don’tusescriptletclass…或者在输入区域填写你所要使用的类的名字。

(7)在”more..”选项卡可以对打印进行设置。

Titleonanewpage选项:

Title指定为一个新页的选项,打印在每页的开始,在title之后页面将发生大的变化。

图4.12和4.13展示报表的结果,图4.11显示报表。

图4.11

Title被打印总是一样的,而且在每页的顶部。

图4.12显示使用缺省设置打印的结果:

图4.12

图4.13显示打印的结果如果“titleonanewpage“选项设置为true。

像你看到那样,没有一行其他的band被打印在title页,甚至没有pageheader或pagefooter。

然而这页仍然计算这页的总数。

图4.13

Summaryonanewpage选项:

这个选项完全和先前的选项一样,只是summaryband被打印在最后一页。

现在,如果你选择了这项,那新页将包含summaryband。

Floatingcolumnfooter选项:

这个选项允许你加强columnfooterband的打印,直接在最后detailband(或groupfooter)后显示而不不在column后显示。

当你想用报表元素创建表格时使用这个选项。

(详细请看JasperReportstables.jrxml)

打印顺序:

Printorder用来决定如何组织打印多列数据。

缺省的printorder一是vertical,它是垂直的打印记录直到页末开始打印新的一列。

Horizontalprintorderprints以横向打印记录当一行占据页宽后开始打印另一行。

图4.14和4.15:

图4.14图4.15

这两个图清晰的显示这个两个选项的概念。

如你看到的,每个名字按字母的顺序打印。

图4.14显示了纵向的打印(第一列打印完接着打印第二列),图4.15显示了横向的打印(打印完所有的行显示出整个列)

无数据打印(如果没有数据时):

当提供一个空的数据打印时(或者sql查询没有返回记录)一个空文件被创建(或返回是一个零字节长度的流)。

这个缺省的行为能被修改通过指定其他的,在没有数据时。

(指whennodata)。

表4.2概述了可能的值和意义。

Option

Description

NoPages

缺省值,最后的结果为空。

BlankPage

返回一个空白页。

AllSectionsNoDetails

返回整个页的组成,出了detailband

表4.2

i18n:

il8n选项卡用来设置片段的参数。

ResourceBundleBasename

ResourceBundlebasename是一个参数名,当你想使报表国际化时。

ResourceBundle包含用在报表中的标签,句子,表达式翻译文本以指定的语言。

这个语言符合一个特殊的文件。

basename

表示文件名,能帮助你找到这个文件用正确翻译。

为了用精确的语言来重建文件名,一些language/country首位字母大写(e.g._it_IT,forItalian-Italy)和.properties扩展名作为前缀。

XML源文件的编码设置:

保存源文件的缺省编码格式是UTF-8.然而,如果你想用一些你需要的XML编码格式,你就需要指定正确的charset(UTF-8)。

其他常用的可以选择编码格式列表(“ISO-8859-1”广泛应用于欧洲).

 

变量的涵义

变量:

$V{PAGE_NUMBER}代表当前页数(可以是页码也可以是页数,通过TextField的计算时间的不同值来设置)

$V{PAGE_COUNT} 当前页面中记录的数目

$V{groupname_COUNT}代表当前组的记录数   eg:

如果组是根据$F{the_city}分组,组名是CityGroup的话,那么此变量为$V{CityGroup_COUNT}

$V{COLUMN_NUMBER} 列号码

$V{COLUMN_COUNT} 当前列中记录的数目(是当前页里行的序号,在新页上会重置为1)

$V{REPORT_COUNT} 当前文档中数据源记录数目

当需要设置起始页码时,如页码第1页需从5开始打印,则

1、打印报表时设置起始页码为4

2、在设计的报表中添加一个parameters,对应设置为后台传递页码字段“PageNoInit”,且类型为integer

3、报表中添加的字段值设置为newjava.lang.Integer($P{PageNoInit}.intValue()+$V{PAGE_NUMBER}.intValue())

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > IT计算机 > 电脑基础知识

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1