参数的传递
用户可在调用报表时传递更多参数,从而控制报表展现时的数据权限以及报表展现时的效果。
传递参数控制数据权限
产品中实现了用户读取表中数据的权限控制,同一张表,不同用户拥有不同权限,获取的数据不同。展现报表时通过传递参数username来获取用户权限。
如下展现示例:
示例代码:
<// 引入安全校验类
<%@ page import="com.runqianapp.security.entry.sec.Security"%>
// 引入模块调用入口的js文件
<script type="text/javascript" src="/reportmis/mis2/security/js/ModuleEntry.js"></script>
<script type="text/javascript">
function sr2(){
// 要传递的参数,resID:报表的资源ID,username:用户名
var params = "{resID : '11946',username:'<%=username%>'};
<%
Map
paramMap = new TreehMap
();
//将报表资源ID和用户名加入安全校验信息
paramMap.put("resID","11946");
paramMap.put("username",<%=username%>);
// 生成安全校验信息
String secInfo = Security.generate(request, paramMap);
%>
// 调用产品报表展现模块
// "SR"为展示报表的模块ID,params为要传递的参数,secInfo是安全验证信息,"_blank"表示新窗口打开。
new ModuleEntry('SR', params, "<%=secInfo%>", '_blank','').enter();
}
</script>
<a href="#" onClick="javascript:sr2();">查看报表</a>
注意:代码中,username是表明用户身份的用户名,一般存在session中,用户不可随意更改,本例中因为要通过ModuleEntry方式调用,有一个发到前台再回传的过程,为了防止用户篡改,在安全校验信息secInfo中对其进行保护。
在报表内根据接收到的参数控制显示的数据,请参见:复杂报表设计教程-普通参数
传递参数控制展现效果
通用报表展现页面能够进行丰富而灵活的展现控制,可以通过传入参数控制报表的展现效果,例如:
代码示例:
< %
/** 安全机制验证信息返回值 */
Map paramMap = new HashMap();
String secInfo = Security.generate(request, paramMap);
%>
<script type="text/javascript" src="/reportmis/mis2/security/js/ModuleEntry.js"></script>
<script type="text/javascript">
function sr2(){
//这里引用后台计算出来的安全校验信息值
var secInfo="<%=secInfo%>";
//设置报表展现参数
//reportAlign:'center'表示报表居中显示
//scale:'0.8'表示报表缩放80%,resize:'yes'表示报表列宽可拖动
var params="{resID:10056,reportAlign:'center',scale:'0.8',resize:'yes'}";
new ModuleEntry('1001', params, secInfo, '_blank','').enter();
}
</script>
<a href="#" onClick="javascript:sr2();">查看报表</a>
报表展现参数介绍
产品自带的SR展现页面封装了丰富的属性用于控制报表展现效果。这些属性均可以通过调用时传递相应参数来进行设定。
通用报表展现页面参数具有以下类别:
- 资源调用参数
- 展现控制参数
- 客户化控制参数
- 通用查询参数
- V4兼容参数
- 标签参数
通过上述类别中的相关参数,可以在报表展现时进行各种灵活的控制,例如:
- 参数autoRefresh:控制展现页面是否自动刷新,值为yes表示自动刷新(默认30秒),no不刷新,也可以设置一个整数值用于指定自动刷新间隔秒数
- 参数autoDisplay:控制初始状态下是否显示报表,0-自动显示报表,1-不自动显示报表,2-有通用查询时不自动显示报表
- 参数resize:控制是否可以拖拽报表调整列宽,yes是, no否
更多通用报表展现页面的参数说明,请参考:报表展现与输出 -> 参数说明。