如何使用报表参数

1 参数的概念

在我们设计一张报表的时候,很少有里面的数据是固定不变的,常常需要根据一些条件来过滤出我们想要的数据。这就需要通过参数的形式控制报表中的数据。

2 参数的使用

在设计器中重新制作一张报表,我们为报表创建一个参数数组,利用参数数组筛选数据,其意思是显示所有输入的id号的信息。

第一步:新建报表,命名为“id.brt”

第二步:新建数据集,

ds:select  * from 产品

第三步:将摘要视图中的数据集字段托放到单元格中,如下图所示:

A3单元格中表达式为:=ds.select(产品ID),设置为纵向扩展;

B3单元格中表达式为:=ds.产品名称;

C3单元格中表达式为:=ds.单位数量;

D3单元格中表达式为:=ds.单价;

E3单元格中表达式为:=ds.库存量;

第四步:创建参数

1、在摘要视图上点击新建参数图标,在出现的对话框中如下图设置:

皕杰报表参数支持多种数据类型,有整数、实数、字符串、日期、时间、日期时间、布尔、整数组、实数组、字符串组、默认,这里选择整数组。

皕杰报表参数属性缺省值支持表达式计算,不支持含有数据集函数的表达式计算。

2、单击“确定”,参数创建完成。

第五步:修改数据集

1、在摘要视图中,在ds数据集节点上右键,单击【编辑】菜单,在弹出的对话框编辑器中,选择【2,编辑查询SQL】,将查询语句修改为:

select  * from 产品  where 产品ID  in (?)

注意

“select * from 产品 where 产品ID in (?)”这里接收的是数据集参数传递的值,由于我们将参数设置成数组(整数组),这里将接受一个数组,且输入的id号是无序的,所以这里用in (?)

2、选择【3,数据集参数】,单击右侧的【新建】按钮,新建一个数据集参数,单击“参数选择”下的小三角,如下图所示:

在弹出的下拉列表中选择“id”,单击“确定”,完成对数据集的编辑。

第五步:保存预览:单击工具条上的预览按钮,会弹出“请输入参数及变量值”对话框,录入相关信息,如图所示:

单击【确定】按钮,筛选出产品id为:1,5,6,8,9,10,15的产品信息,如图:

3 参数的赋值

在第1节和第2节,我们介绍了参数的概念和参数的一些应用场景,接下来我们讲解一下在web中如何将参数的值传递给报表引擎。

ⅠServlet方式下,参数的传递

采用Get或Post方式的url请求ReportEmitter,在请求串后添加params参数;params的格式如下:

Params=参数1名称=参数1数值;参数2名称=参数2数值;参数3名称=参数3数值… …

例如:http://IP地址:服务器端口/web路径/ReportEmitter?rpt=Demo/参数报表/时间参数.brt&params=year=1997;area=华南区

Ⅱ Taglib方式下,参数的传递

首先:引入taglib,在jsp的开始部分,添加如下引用:

<%@ taglib prefix="bios"  uri="http://www.bijetsoft.com/BiosReportTags" %>

其次定义一个params变量,并给这个变量赋值,格式如下:

Params=参数1名称=参数1数值;参数2名称=参数2数值;参数3名称=参数3数值… …

最后,在taglib中如下引用参数:

<bios:report rpt="<%=rpt%>" params="<%=params%>" vars="<%=vars%>" height="450" />