全局控制报表的填报权限

实际需求中,有时需要控制A角色的用户只能查看不能填写报表,B角色的用户可以既能查看又能填写。该功能可以在报表设计器中对单元格书写填报权限来完成。但是当报填报表单元格很多时,逐个单元格控制的效率显然会比较低。这里介绍一种可以全局控制报表填报权限的方法,不需要逐个单元格来写表达式即可实现该需求。

实现逻辑:当用户不可填写报表时,输出参数vrType的值为report,sr接受到后将该报表按普通报表展现;当用户可填时,输出参数vrType的值为input,sr接受到后将该报表按照填报表展现。

下面以用户角色ID属于13(信息员)时对报表可填为例,介绍使用方法:

首先,配置全局变量

在变量管理中定义全局变量vrType,表达式为:

if(13 in var(sys,sys_Roles_ForDAUC),”input”,”report”)

表示当当前用户ID的角色ID属于13时,输出input,否则输出report。

其次,配置展现时调度的全全局变量

在webroot\WEB-INF\showReportStyleConfig.xml文件夹中,将全局变量加入报表展现时调用的配置文件,展现时即可读到该变量:

  <config>
    <name>vrType</name>
    <text>@{global.vrType}</text>
  </config>

如此,用户登陆时,系统会自动计算全局变量vrType的值,当展现报表时,会先读取vrType的值并根据该值判断当前用户是否可填。

最后,展现配置

在webroot\reportmis\mis2\proconsole\setGlobalshow\js下的onlyparam.js中加入vrType的配置:

并在报表的【展现设置】中加配置该属性和值:

如此,便可以达到用户属于信息员角色时,可以填写报表,否则不可填写。

 

本文标签: