在我们设计一张报表的时候,有些时候表达式或数据集的某些字段是不确定的,经常需要根据给定的变量进行表达式或数据集字段进行一些变量替换,这种情况下就需要变量。在报表运算之前,系统会全面搜索整张报表的表达式定义,将所有的变量名替换成变量值。 表达式中的引用方法为${变量名},变量不能写在引号里面。
用设计器打开第七章中设计好的free.brt报表,在该报表上做修改,增加一个变量,使报表更灵活。
第一步:新建变量,在摘要视图中,单击新建变量按钮,输入变量名称:
第二步:修改数据集
1、在摘要视图中,在ds1数据集节点上右键,单击【编辑】菜单,在弹出的对话框编辑器中,选择【2,编辑查询SQL】,将查询语句修改为:
SELECT 名字,雇员ID,${colname},雇用日期,地址,出生日期,邮政编码,照片 FROM 雇员
第三步:定义表达式:
其中:
A4单元格的数据值修改为:${colname}
B4单元格的数据值修改为:=ds1.#3
第四步:保存预览:单击工具条上的预览按钮,会弹出“设置报表参数窗口”,录入相关信息,如图所示:
输入colname的值为“职务”,单击【确定】按钮,如图:
输入colname的值为“尊称”,单击【确定】按钮,如图:
在第1节和第2节,我们介绍了变量的概念和参数的一些应用场景,接下来我们讲解一下在web中如何将变量的值传递给报表引擎。
采用Get或Post方式的url请求ReportEmitter,在请求串后添加vars参数;vars的格式如下:
vars=变量1名称=变量1数值;变量2名称=变量2数值;变量3名称=变量3数值… …
例如:http://IP地址:服务器端口/web路径/ReportEmitter?rpt=Demo变量演示.brt&vars=year=1997;area=华南区
首先:引入taglib,在jsp的开始部分,添加如下引用:
<%@ taglib prefix="bios" uri="http://www.bijetsoft.com/BiosReportTags" %>
其次定义一个vars变量,并给这个变量赋值,格式如下:
vars=变量1名称=变量1数值;变量2名称=变量2数值;变量3名称=变量3数值… …
最后,在taglib中如下引用变量:
<bios:report rpt="<%=rpt%>" params="<%=params%>" vars="<%=vars%>" height="450" />