url 外部参数或 session、cookie 等系统变量参数在报表使用

报表中会用到外部参数,比如 session、cookie 内变量,另外还有 url 带来的其它参数等等,在报表单元格显示或作为过滤条件实现报表查询。

本文将以 url 外部参数和 session 会话变量为例,介绍如何传给润乾报表使用。

注:本例所用 jsp 为自带 demo 应用下的 showReport.jsp,数据源为自带 demo。

url 外部参数

url:http://localhost:6868/demo/reportJsp/showReport.jsp?rpx= 雇员信息.rpx&empName= 张颖静

如上,访问“雇员信息”报表时,直接传入要查询人的名字。对于这类参数,实际是通过 request 方式传递,如果是自定义 jsp 发布报表,通过 request 方式(类似 request.getParameters(“empNmae”))接收就可以,在自带的 showReport.jsp 中已经定义了接收方法,如下
imagepng

所以,不需要再单独定义代码来接收了,直接可以被上面的代码获取

另外一个关键问题是,页面获取到的参数如何传到报表呢?

其实也很简单,这也是参数传到报表内的关键点,报表在 jsp 内发布是通过标签库方式,其中有一个 params 属性,负责把参数传到报表内。
imagepng

第一张图片也可看到,request 接收到参数以后按 params 的格式要求拼成了对应的参数串。接下来通过报表实例来看下。

(1) 准备“雇员信息”报表

imagepng

定义 empName 参数,一定注意名字和”params”内的参数名字保持一致,包括大小写。
imagepng

(2) 在单元格内显示“empName”参数值

其中(1)内的 A1 单元格为:=@empName+“ 基本信息”,即显示由 url 传来的 empName 值并和其他串拼在一起。

访问 url 看看结果:

imagepng

(3) 在数据集中使用“empName”参数

报表数据集

imagepng

指定参数

imagepng

访问 url 查看效果

imagepng

已按照 url 传入的 empName 实现条件查询。

小结

通过例子可以看出,只要知道了“params”这个标签属性的作用,不论哪种类型的参数想传到报表使用都很容易,无非就是页面获取到,拼到 params 值的格式串里就可以了。

接下来再以 session 变量为例,加深理解一下。

session 变量

还是以上面的“雇员信息”报表及自带 showReport.jsp 为例,此时我们不在 url 上传入 empName,而是从 session 中获取用户名并传到报表内。

url 改为:http://localhost:6868/demo/reportJsp/showReport.jsp?rpx= 雇员信息.rpx

开整!!!

(1) jsp 内获取 session 变量

imagepng

(2) 把获取的 session 值拼到 params 属性值格式串内

imagepng

(3) 访问结果

imagepng

同样将 session 变量传到报表内使用。

通过以上两例,不难发现:不论是 url 外部参数还是系统的 session、cookie 等变量,传到报表的核心就是报表标签的 params 属性,更多关于标签内参数的使用,可参考:http://d.raqsoft.com.cn:6999/report/preference/+hmofbbb102.html#__655