iReport的(报表结构)

本文详细介绍了iReport报表的结构,包括Title、Page Header、Column Header等9个预定义的Bands,以及报表属性如列的设置。报表的每个部分在数据打印时有不同的表现,例如Title仅在开始时打印,Page Header每页重复,Detail Band对应数据源中的每个记录。此外,还介绍了如何设置报表的页面尺寸、列的数量和间距,以及如何更有效地利用报表空间。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

报表结构

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

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)总是小于或等于页的topbottome之间的最小高度。

Title

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

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

Page header

这个band允许你设计一个pageheader。它的高度在设计阶段被定义,通常不会改变在创建报表的过程中(除非有垂直插入相当大的成分,例如这个textfields包含很长的文本和subreports)。页面的header出现在整个打印页的相同位置在设计阶段期间。TitleSummary 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,他将被完全的忽视,其他确定结构的普通页也能适用在最后一页。它首次出现在JasperReports0.6.2版本。

Summary

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

Background

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

报表属性:

现在我们已经看过报表的单个部分,我们将继续创建一个新的报表。按菜单上的这个 按钮选择New Document:打开一个窗口。在这里填写报表的属性(图4.2)。这个窗口可以随时打开通过view菜单的Report properties

4.2

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

页面的尺寸大概是报表最重要的属性。一系列报表的尺寸标准被提议。iReport JasperReports使用的最小量度单位是像素。(像素大小是75点每英寸,每英寸的点数)。

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

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

Page type

Dimensions in pixel(像素)

LETTER

612 x 792

NOTE

540 x 720

LEGAL

612 x 1008

A0

2380 x 3368

A1

1684 x 2380

A2

1190 x 1684

A3

842 x 1190

A4

595 x 842

A5

421 x 595

A6

297 x 421

A7

210 x 297

A8

148 x 210

A9

105 x 148

A10

74 x 105

B0

2836 x 4008

B1

2004 x 2836

B2

1418 x 2004

B3

1002 x 1418

B4

709 x 1002

B5

501 x 709

ARCH_E

2592 x 3456

ARCH_D

1728 x 2592

ARCH_C

1296 x 1728

ARCH_B

864 x 1296

ARCH_A

648 x 864

FLSA

612 x 936

FLSE

612 x 936

HALFLETTER

396 x 612

_11X17

792 x 1224

LEDGER

1224 x 792

4.1

通过修改高度和宽度,你就可以创建任意大小的报表。报表页的定位有landscapeportrait选项,事实上这并没有太大的意义,因为报表页是由宽和高来刻画它的尺度的,并且每个单页都是相互独立。然而这个属性可以别用来确定报表的输出。

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

像你看到的那样,一个报表页被几条平行线分开为几部分:bands。这个选项页是用来排版报表的,现在的这部分具有独立的数据(像title片段,或者page footers),和其他的片段一样被打印根据数据记录的不同从零开始(像group headersdetail)。这个选项页的最后一个属性值能分开垂直的列为了利用报表页中可利用的空间。

上下文中的column的概念很容易被”field”搞混。事实上,column和记录集是没有关系的,只和detail band有关系。意思就是说一条记录用十个fields和一个表的话,不需要十列。然而,这些元素可以用table实现恰当的放置。十列将导致一个很长的记录列(非常狭窄的横条)被打印。下面的例子将告诉你怎样设置值为一个简单的列报表在A4纸上。

4.3

Columns的值是1,它的宽度和整个页面一样,除了空白。列之间的空间没有意义,所以它的值是0

 

4.4                                                             4.5

4.5图,这个页的大部分没有被使用,如果使用大量的列,这个报表看起来会好看一些。图4.6展示了两列报表的尺寸大小。

4.6

既然这样,在这个“columns“,我们输入2iReport将自动的计算列的宽度依照页的空白和宽度。如果你想在两列之间插入空白,那就为”spacing”填写一个值。

4.8图中看到的,这个页面的空白有被更好的利用。

滥用列的话可能将打印一个非常长列(像一个电话本一样)。总之,当detail band和连续的bands出现超过一列的宽度空白时你要记住使用列来减少宽度。所有的空白,列的宽度和每列之间的空白,加起来要小于页的宽度。如果不检验这种情形的话可能导致错误产生。

4.7                                                             4.8

在图4.54.7中页面上有用区域设置报表的元素(像fields,images等等)。这部分是不可利用的,像空白和第一列余下的空白。The parts which are not utilizable, such as margins and columns following the first one (which have to be considered like the continuation of this one) are highlighted in grey.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值