反馈已提交
网络繁忙
用户认证 后会将报表三个固定的默认参数$fine_username、$fine_role、$fine_position保存在 Session 中。
同时提供两个函数GETUSERDEPARTMENTS()、GETUSERJOBTITLES()来分别获取部门角色的部门和职位。
同一报表环境下,模板中就可以直接以参数的形式获取到对应的值,然后在模板里面进行筛选判断就可以显示不同数据及样式。
权限细粒度相关的参数和函数如下表所示:
注1:$fine_username、$fine_role、$fine_position 是 FineReport 默认的参数,所以调用时大小写必须保持一致。
注2:不支持模拟计算。
例如登录用户名为 Anna
$fine_username=Anna
例如登录用户名为 安娜(Anna)
$fine_display_name=安娜(Anna)
1)若登录用户为超级管理员
$fine_role=superusers
2)若登录用户角色为角色数据架构师
$fine_role=数据架构师
3)若登录用户无角色
该参数值为空
4)若登录用户存在多个角色「角色1」「角色2」
$fine_role=角色1,角色2
1)若登录用户为「人力资源-部长」
$fine_position={"departments":"人力资源","jobTitle":"部长"}
2)若登录用户为「人力资源-部长」兼「领导部-部长」
$fine_position={"departments":"人力资源","jobTitle":"部长"},{"departments":"领导部","jobTitle":"部长"}
3)若登录用户无部门职位
获取部门职位里面的部门
若部门存在多个层级,返回全部层级
若存在多个部门,返回全部部门
GETUSERDEPARTMENTS()=人力资源
2)若登录用户为「销售部-华东销售部-组长」
GETUSERDEPARTMENTS()=销售部,华东销售部
3)若登录用户为「人力资源-部长」兼「领导部-部长」
GETUSERDEPARTMENTS()=人力资源,领导部
4)若登录用户无部门
获取部门职位里面的第X层部门
若不存在X层部门,则返回空值
1)若登录用户为「销售部-华东销售部-华东销售1组-组长」
GETUSERDEPARTMENTS(3)=华东销售1组
GETUSERDEPARTMENTS(3,2)=华东销售1组,华东销售部
GETUSERDEPARTMENTS(3)为空值
GETUSERDEPARTMENTS(3,2)=华东销售部
获取部门职位里面的职位
若存在多个职位,返回全部职位
GETUSERJOBTITLES()=部长
2)若登录用户为「人力资源-部长」兼「领导部-president」
GETUSERJOBTITLES()=部长,president
3)若登录用户无职位
本文示例:
数据决策系统中存在用户sunlin和hanwen。
数据库「销量」表中,存在数据列「英文简称」,该列数据和数据决策系统中的用户名对应。
根据「销量」表创建了模板「根据登录名限制数据内容」并挂载到数据决策系统目录中。
sunlin和hanwen登录系统,查看该模板,只能看到自己的销售数据,看不到其他内容。
注:本章使用的是数据集参数作为示例,用户也可使用模板数据集。
打开设计器,新建一张普通报表。
新建数据库查询ds1:SELECT * FROM 销量 where 英文简称='${fine_username}'
获取登录系统的用户名,例如登录用户名为sunlin,那么$fine_username=sunlin。
如下图所示:
模板样式设计如下图所示:
管理员登录数据决策系统,点击「管理系统>目录管理」,选择「管理目录」,点击「添加模板」。
选择上一节制作的模板「根据登录名限制数据内容」,点击「下一步」。挂载类型选择「预览」,展示终端勾选「PC」,点击「确定」。如下图所示:
管理员登录数据决策系统,点击「管理系统>权限管理>普通权限配置」。
选择权限载体为「所有部门」,为其分配目录「根据登录名限制数据内容」的「查看」权限,如下图所示:
用户sunlin(sunlin,123456)登录数据决策系统,查看该模板,只能看到自己的销售内容。如下图所示:
用户hanwen(hanwen,123456)登录数据决策系统,查看该模板,只能看到自己的销售内容。如下图所示:
已完成模板请参见:根据登录名限制数据内容.cpt
注:请确保平台存在模板中对应的用户sunlin和hanwen,否则无法正确展示最终效果。
希望不同角色访问模板时,查看到的模板列数不同、行列颜色不同。可以给行列添加条件属性设置行高、列宽、背景等
本章示例:
数据决策系统中有角色「编外人员」,用户Anna属于该角色,用户Alice不属于该角色。
目录中挂载了一张模板,模板中存在列「销量」。
不属于角色「编外人员」的用户Alice登录数据决策系统查看该模板时,可以看到列「销量」。
属于角色「编外人员」的用户Anna登录数据决策系统查看该模板时,看不到列「销量」。
新建数据库查询ds1:SELECT * FROM 销量
选中E2单元格,点击右侧配置栏「条件属性」,新增一个条件属性。
设置属性为列宽=0毫米。设置条件类型为公式,公式内容为$fine_role='编外人员',点击「增加」,如下图所示:
注:若一个用户有多个角色,公式为find('编外人员',$fine_role)>0
选择上一节制作的模板「根据登录角色限制显示行列」,点击「下一步」。挂载类型选择「预览」,展示终端勾选「PC」,点击「确定」。如下图所示:
选择权限载体为「所有部门」,为其分配目录「根据登录角色限制显示行列」的「查看」权限,如下图所示:
不属于角色「编外人员」的用户Alice(Alice,123456)登录数据决策系统查看该模板时,可以看到列「销量」。如下图所示:
属于角色「编外人员」的用户Anna(Anna,123456)登录数据决策系统查看该模板时,看不到列「销量」。如下图所示:
已完成模板请参见:根据登录角色限制显示行列.cpt
售前咨询电话
400-811-8890转1
在线技术支持
请前往「服务平台」,选择「在线支持」
热线电话:400-811-8890转2
总裁办24H投诉
热线电话:173-1278-1526
文 档反 馈
鼠标选中内容,快速反馈问题
鼠标选中存在疑惑的内容,即可快速反馈问题,我们将会跟进处理。
不再提示
10s后关闭