IReport报表制作概述.docx

上传人:b****9 文档编号:26174612 上传时间:2023-06-17 格式:DOCX 页数:27 大小:1.09MB
下载 相关 举报
IReport报表制作概述.docx_第1页
第1页 / 共27页
IReport报表制作概述.docx_第2页
第2页 / 共27页
IReport报表制作概述.docx_第3页
第3页 / 共27页
IReport报表制作概述.docx_第4页
第4页 / 共27页
IReport报表制作概述.docx_第5页
第5页 / 共27页
点击查看更多>>
下载资源
资源描述

IReport报表制作概述.docx

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

IReport报表制作概述.docx

IReport报表制作概述

IReport介绍

什么是iReport?

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

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

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

必要条件:

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

若是你还想编译iReport源代码,你还要安装JakartaAntversion以上版本。

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

报表结构

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

Bands

一个报表依托“type”页来概念说明。

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

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

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

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

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

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

这种特色的出此刻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的版本。

Summary

在其他的地址那个组名被叫做reportfooter。

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

Background

Band第一次出此刻JasperReport版本时。

它由于许多用户的坚持不懈的要求能够创建水印和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

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

(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以后页面将发生大的转变。

图和展现报表的结果,图显示报表。

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

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

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

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

但是这页仍然计算这页的总数。

Summaryonanewpage选项:

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

此刻,若是你选择了这项,那新页将包括summaryband。

Floatingcolumnfooter选项:

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

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

(详细请看JasperReports

打印顺序:

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

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

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

图和:

图图

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

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

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

无数据打印(若是没有数据时):

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

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

(指whennodata)。

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

Option

Description

NoPages

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

BlankPage

返回一个空白页。

AllSectionsNoDetails

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

i18n:

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

ResourceBundleBasename

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

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

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

basename

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

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

XML源文件的编码设置:

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

其他经常使用的能够选择编码格式列表(“ISO-8859-1”普遍应用于欧洲).

IReport制作报表

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

图1

二、在窗口“Reportproperties”中可概念报表的名称、尺寸、定位及报表边界值等属性(见图2)。

“定位”下拉列表中包括两个选项“Portrait”和“Landscape”,其中Portrait代表纵向报表,Landscape代表横向报表),下面以制作”归档文件目录”为例子来介绍如何制作报表。

三、

图2

四、概念报表名称及定位等属性后,点击“OK”按钮系统弹出报表设计的主窗体。

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

图3

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

设置方式如下:

选中某个栏后输入高度值,点击“Apply”按钮。

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

档案的报表最经常使用的栏目为:

columnHeader、detail、columnFooter,高度值参数是数字30代表1CM。

如:

ColumnHeader的高度设置为150,detail的高度设置为45,其它的全数清为“0”,设置完成后关闭该窗口。

六、

图4

七、在上方选取”静态字段”工具(T图标),再在”columnHeader”栏中画出来(见图5),以一样的方式增加其它所有静态的文字。

columnHeader栏里面的图表、文字一页只会显示一次,Detail栏中的会依照条件循环显示,直到页面不够画才换一页显示。

图5

八、右键单击画出的静态字段框选”属性”,在弹出的对话框中(见图6)设置其它属性:

Font选项卡中设置字体的相关属性。

(1)在FontName选字体;

(2)Size选字体大小;

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

字体名称

字体名字

宋体

STSong-Light

方正舒体

方正姚体

仿宋体

黑体

华文彩云

华文细黑

华文新魏

华文行楷

华文中宋

楷体

隶书

宋体-方正超大字符集

幼圆

(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、报表设计器属性的数字,30代表1cm

打印条件设置

2、newBoolean(!

$F{落款}.equals(null)),是指当落款字段不为空时打印

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(";")[2],是指出落款的第二段

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

9、若是报表是复合报表,取案卷库字段用_1,取卷内库字段_2

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

当前位置:首页 > 幼儿教育 > 幼儿读物

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

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