...
通过系统函数中的CurrentUserAllDepartmentIDRecursively获取到用户所属于的所有机构的ID,然后和数据进行过滤
1.参考“一、查看所属机构的数据”,设置数据源、业务主题、sql的权限,并且将权限语句修改为 c_area in (CurrentUserAllDepartmentIDRecursively()).
数据源表:
sql:
2.在系统中,还有一些报表是基于sql查询等创建的。此步骤设置sql查询以及原生sql查询中的数据权限。
在报表对应的sql查询或者原生sql查询中,添加如下where语句
说明:通过CurrentUserAllDepartmentIDRecursively,会返回用户所属组及所有下属组的编号(注意这里返回的是用户组的编号,所以前面创建用户组的时候需要注意)。比如华南业务员登录,会返回 '华南','深圳','广州'这样的数据。在权限定义的sql中,需要手动在 系统函数 CurrentUserAllDerpartmentIDRecursively外加上括号。
...
参考“一、查看所属机构的数据”,设置数据源、业务主题、sql查询的权限。并且将全选语句修改为c_area in 用户可看区域这个用户属性。
数据源表:
sql:在系统中,还有一些报表是基于sql查询等创建的。此步骤设置sql查询以及原生sql查询中的数据权限。
在报表对应的sql查询或者原生sql查询中,添加如下where语句
三、查看权限内的数据
用例说明
查看权限内的数据,这种权限一般是指这样的场景:华南业务员进入系统,除了查看到华南及其下属机构深圳、广州的数据之外,还可以查看到华东的数据;华东业务员登录进入系统,可以看到华东及其下属机构上海、江苏的数据。存在这种跨机构的数据查询。
...
参考“一、查看所属机构的数据”,设置数据源、业务主题、sql查询的权限。并且将全选语句修改为c_area in 用户可看机构2 这个用户属性。
数据源表:
在系统中,还有一些报表是基于sql查询等创建的。此步骤设置sql查询以及原生sql查询中的数据权限。
sql:在报表对应的sql查询或者原生sql查询中,添加如下where语句
四、不同报表查看到不同数据
此种场景是指同一张报表,不同用户看到的数据不同,并且每一张报表每一个用户的权限都不一样。此种数据权限要求和报表信息、用户信息相关联,暂时无法实现。
...
四、自助分析的权限
在设置数据权限时,针对自助分析模块,也即组合分析和透视分析,因为用户可以自由勾选组合分析和透视分析中的字段,所以如果用户不勾选区域所在的表的字段时,我们在数据源、业务主题上设置的数据权限就不会生效,因为报表执行的sql中不会有机构所在的那张表。针对这种情况,我们可以通过以下方式实现。
...
通过这种方式,可以实现无论用户如何操作组合分析和透视分析报表,由于过滤器始终生效,因此用户只能够查看权限内的数据。
...
五、参数的权限控制
对于参数,有时候也需要控制其显示的选项。比如“区域参数”,默认是显示所有区域选项。希望用户登录进来,只能选择权限内的区域。如何实现?
...
注意:在参数的定义中,一般也是需要对admin管理员进行例外设置。
此文档创建于2017-04-06。创建者:郭佳铃。
...