页面树结构

版本比较

标识

  • 该行被添加。
  • 该行被删除。
  • 格式已经改变。

...

4.参考数据权限设置中,在报表的数据集、业务主题过滤器等相关资源中,使用该参数即可。以数据集为例,使用该参数如下:

 

...

方式三:使用下拉树参数实现

通过将机构信息构成树的形式,并控制根节点为用户所属即可,可以实现数据权限的控制。

优点:机构层级选择清晰,接受度高

缺点:实现较复杂缺点:数据需要能够构造父子结构,实现较复杂

设置步骤如下:

 

1.新建用户属性

在资源定制->公共设置->用户属性节点下,新建用户属性“用户机构层级”,通过当前登录用户的默认所属组,从业务库的机构表中,获取该用户组(也即用户的所属机构)的层级。定义如下:

...

根据用户所属机构信息,从机构表中查询该字段,返回的结果包含0,1,2

 

2.创建下拉树参数

(1)在创建下拉树参数之前,请先参考演示下拉树参数示例,了解下拉树参数控件设置

(1)创建下拉树参数,名称为“选择机构(2)创建下拉树参数,名称为“选择机构_下拉树”,控件类型为“下拉树”

 

(2)勾选“允许多选”

Image Removed

 

(3)(3)勾选“允许多选”

Image Added

 

(4)结合perm_inst表,先设置根节点为:

select distinct INST_NAME from  perm_inst where INST_NAME= CurrentUserDefaultDepartmentName()

Image Added

使用该sql,查询出用户的机构

 

 

(5)再设置默认值为:

select inst_name ,'0' as inst_name_P from perm_inst where inst_name= CurrentUserDefaultDepartmentName()

Image Added

该sql语句,查询出用户的机构。由于下拉树参数需要构成父子结构,并且不可以存在子节点和父节点值相同(会造成死循环)的情况,所以需要增加'0' 作为父节点数据

 

(6)设置备选值为:

select inst_name ,'0' as inst_name_P from perm_inst where inst_name= CurrentUserDefaultDepartmentName()
union
select inst_name,inst_name1 as inst_name_P from perm_inst where 用户机构层级(用户属性)=0 and inst_level=1 and inst_name1= CurrentUserDefaultDepartmentName()
union
select inst_name,inst_name2 as inst_name_P from perm_inst where ( 用户机构层级(用户属性) =0 and inst_level=2 and inst_name1= CurrentUserDefaultDepartmentName()) or ( 用户机构层级 =1 and inst_level=2 and inst_name2=CurrentUserDefaultDepartmentName())

(此SQL仅供示例参考,实际sql需要根据自己的机构逻辑进行设置

Image Added

该sql通过3个select语句 union到一起,查询出用户的所有机构,并找到其父机构。以构造成父子