...
2.参考数据权限设置中,在报表的数据集、业务主题过滤器等相关资源中,使用该参数即可。以数据集为例,使用该参数如下:
方式二:级联方式实现
使用一个“机构层级”参数,选择用户可查看的机构层级,比如市联社、区支行,选择后,在后面的“选择机构使用一个“选择层级”参数,选择用户可查看的机构层级,比如市联社、区支行,选择后,在后面的“选择机构_级联”参数中,可以选择用户权限内的对应层级机构进行数据的查看。
优点:可以先选择层级,再选择机构,不同层级的机构不会掺杂在一起
缺点:不可同时查看不同层级的机构数据
设置步骤如下:
1.新建用户属性
在资源定制->公共设置->用户属性节点下,新建用户属性“用户机构层级”,通过当前登录用户的默认所属组,从业务库的机构表中,获取该用户组(也即用户的所属机构)的层级。定义如下:
根据用户所属机构信息,从机构表中查询该字段,返回的结果包含0,1,2
2.创建“选择层级”参数
(1)创建一个下拉框参数,名称为“选择层级”,控件为下拉框,如下:
(2)备选值设置为:
select T.name as name, T.alias as alias from (select distinct 0 as name, "省联社" as alias from perm_inst union select distinct 1 as name, "市联社" as alias from perm_instunion select distinct 2 as name,"区支行" as alias from perm_inst)T where T.name >=用户机构层级
该sql语句通过select distinct 0 as name, "省联社" as alias from perm_inst union select distinct 1 as name, "市联社" as alias from perm_instunion select distinct 2 as name,"区支行" as alias from perm_inst,将用户的三个层级查询出来
然后再通过外套的一层sql语句,select T.name as name, T.alias as alias from (XXX XXX) T where T.name >=用户机构层级,查询出用户的机构和下级机构的层级。比如用户的机构是“广州联社”,则根据这段sql查询出来的机构层级有1和2
(3)默认值设置为:
select T.name as name, T.alias as alias from (select distinct 0 as name, "省联社" as alias from perm_inst union select distinct 1 as name, "市联社" as alias from perm_instunion select distinct 2 .创建“机构层级”参数as name,"区支行" as alias from perm_inst)T where T.name =用户机构层级
该sql与备选值的sql是一致的,只是将最后的T.name>=用户机构层级修改为T.name=用户机构层级,只查询出用户的机构的层级,而不查询其下级机构的层级
几种情况:
1.参数中直接包含所有的机构
2.先选择层级,再下拉选择对应层级的机构
...