在查看报表时,经常同一张报表,需要根据查看者的省份,对需要显示的元素进行控制,以保证数据的权限控制和安全管理。
在Wyn Enterprise报表软件当中,每个可视化元素都有丰富的配置属性。其中,隐藏属性可以用来控制报表元素的可见性。
其属性值可以通过表达式来进行控制。
实现基于用户上下文信息的报表元素可见性控制,核心步骤如下:
1.通过表达式获取当前用户上下文信息;
使用UserContext.GetValue函数来获取当前登录用户的上下文信息。具体使用方法参考:
https://help.grapecity.com.cn/pages/viewpage.action?pageId=50017924
2.将元素的隐藏属性设置为对应的表达式。
本文以控制图表的可见性和表格列的可见性为例进行讲解。
根据用户角色控制可见性,如果是销售总监则可以查看到类别利润占比饼图和表格中的利润列,如果不是,则看不见。
1.控制图表的可见性
1.1设计报表的核心元素
1.2 设置圆环图的隐藏属性
选中圆环图,在显示选项中设置【隐藏属性】表达式:
=IIF(InStr(Join(UserContext.GetValues("role"),","),"销售总监")>0,false,true)
表达式释义:如果当前用户的角色中有“销售总监”这个角色,则返回假,即不隐藏;否则为真,即隐藏。
2.通过表达式中表中的中列可见性
2.1 在表格中选中需要隐藏的列头,并设置其【隐藏】属性。
2.2 设置隐藏表达式,1.2中的步骤
示例效果:
销售总监报表:可以看到类别的利润占比圆环图和表格中的利润列。
销售经理:只能看到自己所负责地区的省份数据,看不到其他不属于他权限内可见的元素。