iReport专题学习之变量、栏05
来源:互联网 发布:微电影知乎 编辑:程序博客网 时间:2024/05/01 01:18
一、变量(Variables)
Variables是用来存储对某些字段计算后的结果,比如sum等,和fields、parameters一样,variables也是有数据类型的,你必须为一个Variables实例声明一个java类型,下图显示了如何创建一个新的Variables,下面我们来了解下每个字段的意思:
Variable name:variable的名称,我们可以在表达式中通过下面的方法来引用一个Variable.
$V{variable name}
Variable Class type:variable也可以使任意一个java类型,在下拉框里你可以看到大多数常用的类型,如java.lang.String等。
Calculation Type:一个计算类型可以用来计算结果,当一个预先定义的值是"nothing"时,那它的意思就是不做任何计算,ireport会根据指定的计算类型和从数据源获取的每一条记录计算出结果,然后去更改variables的值,做一个变量的计算意为着去执行一个表达式,如果计算类型为nothing,那么ireport将会根据variable expression为variable赋值,计算类型列举如下:
类型
说明
Nothing
不做任何计算
Count
对记录集数量进行循环累加(计算有多少条记录),这和sum不一样,sum的计算是针对数字的,会对数字进行累加操作。
Distinct Count
也是对计算有多少条记录的累加操作,只是在累加过程中会忽略已经出现的记录(比如某个字段的值已经出现后就不会再记录)
Sum
添加每一次表达式(这里的表达式只能是数字类型)迭代的结果到变量中
Average
它用算术的方法来计算表达式累加结果的平均值
Lowest
返回表达式最小值
Highest
返回表达式最大值
StandardDeviation
根据表达式所有值返回标准方差
Variance
返回表达式接收到的值的变化
System
不做任何计算并且表达式也是没有价值的,在这样的用例中,报表引擎仅仅保存内存中variable的最后的值。
Reset Type:重置类型,表示一个变量在什么时候做重置操作,reset类型如下:
类型名称
说明
None
任何时候都不做重置操作
Report
在报表创建的时候Variable才会对表达式进行初始化
Page
Variable的初始化在每一页都做一次reset操作
Column
Variable的初始化在每一列都做一次reset操作(这里的Column指的是report里的page的column,每个报表的column可以通过报表的Editàreport properties窗口进行修改)
Group
Variable的初始化在每一个组都做一次reset操作
Reset Group:如果group reset type被勾选,这里就要选择group名称(关于group可以参考后面的章节)
Increment:它指定当一个variable值被评估或者当你想要这个组采用类似于subtotals或者averages来计算,increment类型可以参考下面的的表。
incremenet Group:如果这个group的increment type被勾选它将指定这个组决定variable的increment。
custom incrementer Factory Class:指定一个实现了JRIncrementerFactory接口的java类名称,通常用来定义一些诸如sum之类的非数字类型的操作。
Variable Expression:它是一个java的expression,用来标示variable每一次迭代的值。
initial value Expression:它是一个为variable初始化时采用的expression。
内置的variables和parameters一样,ireport提供了一些内置的variables,这些变量是只读的,不能被用户修改,如下表所示:
Variable 名称
说明
PAGE_NUMBER
它包含当前页的页。
COLUMN_NUMBER
它包含当前的列数。
REPORT_COUNT
当前的记录数目
PAGE_COUNT
当前的页号
COLUMN_COUNT
当前的列号
<group name>_COUNT
在<group name>里的记录总数
二、栏
在本节中,我们将解释如何用iReport去管理bands,在前面的章节中我们介绍了报表的结构,在本章中我们将要看如何使用bands来划分报表。
2.1、栏(Bands)
iReport把一个报表划分成七个主要的bands和一个名为backgroup的band(一共是八个bands),每当我们添加一个group时就会有两个新band添加到报表当中:group footer bands和group header bands.
通过上图中,我们可以修改左边列表窗口中的任何一个band属性,比如它的高(以像素为单位)。Print When expression表示我们可以再这里输入一个表达式,这样我们可以根据表达式的值来控制当前的这个band是否输出,这里需要注意的是Print When expression里必须返回一个java.lang.Boolean类型的对象,如:New Boolean(true),上面的表达式说明这个bands总会被打印(如果我们什么都不输入这个就是默认值),在表达式里可以使用fields、variables、parameters,根据这个特性我们可以通过相关的fields、variables、parameters来灵活的控制当前的band是否可以输出,比如下面的代码:
($F{SALARY}.intValue()>4000?new Boolean(true):New Boolean(false));
上面的代码说明了当salary的值如果大于4000就输出当前的band否则就不输出当前的band.
把鼠标移到bands的边上我们可以鼠标拖拉的方式改变band的大小,以此来适配band里面的内容。
- iReport专题学习之变量、栏05
- iReport专题学习之变量、栏05
- iReport专题学习之入门简介01
- iReport专题学习之报表结构02
- iReport专题学习之报表元素03
- iReport专题学习之字段、参数04
- iReport专题学习之组(Group)06
- iReport专题学习之父报表 08
- iReport专题学习之数据源 09
- iReport专题学习之字段、参数04
- iReport专题学习之入门简介01
- iReport专题学习之报表结构02
- iReport专题学习之报表元素03
- iReport专题学习之字段、参数04
- iReport专题学习之组(Group)06
- iReport专题学习之子报表(SubReport) 07
- mysql系统变量专题学习
- iReport预置系统变量
- HDU 1176 免费馅饼
- Android API Guides 之 App Manifest(13) - <meta-data>
- Django 1.6 在Windows平台下的配置
- 枚举类型 Java编程思想 读书笔记
- Android API Guides 之 App Manifest(14) - <path-permission>
- iReport专题学习之变量、栏05
- 线段树练习
- GNU系统下DL_POLY的编译
- ZOJ 3769 —— Diablo III(背包,DP)
- tcp实现简单的文件服务器(只能传文件)
- 2012淘宝笔试及答案
- Android API Guides 之 App Manifest(15) - <permission>
- linux下MySQL安装及设置
- Android API Guides 之 App Manifest(16) - <permission-group>