参数的使用

阅读(16672) 标签: 参数用法,

本节将详细介绍参数的应用场景和参数名的动态引用。具体内容详见小节。

单元格中使用参数

在报表单元格中可通过@参数名引用参数,也可直接通过参数名直接引用。但为了避免参数名和字段名等重名造成冲突,因此可以选择使用@引用参数,不区分大小写。

下面是一个应用实例。通过传递的参数值查询出所需性别的记录。

1、  点击新建一张报表,保存为4.2.1.rpx通过“报表-> “数据集”菜单建立数据集。

ds1SELECT EMPLOYEE.NAME,EMPLOYEE.GENDER,EMPLOYEE.DEPT, EMPLOYEE.SALARY FROM EMPLOYEE,如图所示:

2、  通过“报表-> “参数”菜单,添加报表参数:

3、  报表设计如下:

其中,A3单元格表达式为:=ds1.select(NAME,GENDER==@gender)

4、  浏览报表时,输入gender参数值,即可查出结果报表。

预览报表:

数据集中使用参数

第一步:用设计器打开报表3.4.rpx,在该报表上做修改,增加四个参数,使报表更灵活。

提示:

1,参数名称尽量用英文,中文容易在部署的时候出现乱码,徒增烦恼。

2,如果所要定义的参数在其他报表文件中也定义过,为了避免重复定义带来的繁琐,可以通过参数配置界面的复制/粘贴按钮,将重复使用的参数从其他报表拷贝到本报表中,如下图所示:

 

通过点击【复制】按钮,可复制选中的参数,按住ctrl键,可复制多个参数;

通过点击【粘贴】按钮,可将复制的参数添加到参数配置界面。

第二步:编辑数据集ds1,设置检索条件(员工.EMPNAME like ? and 员工.BONUS >? and 员工.BIRTHDAY >? and 员工.GENDER =?),如图所示:

选择【参数】标签页中增加四个参数与检索条件中的“?”匹配:

点击【确定】按钮,参数配置完成。

第三步:将报表保存为4.2.rpx,在设计器中预览报表,会弹出“设置报表参数窗口”,录入相关信息,如图所示:

 

点击【确定】按钮查询出姓名中包含“小”字、奖金高于200、出生日期大于“1960-01-01”且性别为“男”的员工信息,(注:性别在数据库中是以编码的形式存储的,“1”代表男,“2”代表女)。查询结果如下图所示:

第四步:此时的报表已经可以实现根据参数的不同而查询出不同的内容了,可是很多时候用户往往希望参数值不录的时候选出所有记录,接下来我们来对报表做一点修改,来实现这一功能。

编辑数据集ds1,将【检索条件】修改为:(员工.EMPNAME like ?  or ? is null) and (员工.BONUS>? or ? is null) and (员工.BIRTHDAY >? or ? is null) and (员工.GENDER =? or ? is null)。如图所示:

 

然后在【参数】标签页中按照问号顺序,写入参数名或含参数的表达式,如下图所示:

 

此时预览报表,不录入任何参数即可查询出所有记录。

${ 参数名 } 的引用

利用${参数名}引用方式可以在报表中动态的进行表达式的替换,在报表运算之前,系统会全面搜索整张报表定义,将所有${参数名}中的参数名替换成参数值。

下面的应用实例中则介绍了通过使用${参数名}的引用方式,随意修改参数值变换查询条件,这样用户就不用根据不同的情况编制许多不同的报表了,大大减轻了用户的工作量。

 

1、  新建一个空白报表,保存为4.2.3.rpx,定义参数,如下所示:

2、  通过“报表-> “数据集”菜单,建立一个数据集。

ds1

SELECT 订单.订单ID,订单.客户ID,订单.订购日期,订单.货主名称,订单.货主国家 FROM 订单 where ${arg1}

报表设计如下:

3、  浏览报表,输入参数值,此处参数值为数据集的查询条件,输入后即可查出结果报表。

4、  输入参数值:订单ID=10523

查询结果:

若传递参数值:货主地区=’华中

查询结果:

这样就完成了一个通过修改参数值变换查询条件的报表。使用${}引用方式,会在计算前将所有${参数名}中的参数名替换成参数值,${参数名}引用只能用在表达式中