如何通过sql来触发决策系统用户权限决定其能查看的报表内容?

报表使用的表中有一个字段为‘执行部门’,执行部门内分为A部与B部。

如果A部门与B部门同属于执行部门角色,A部门只可以看A负责的合同数据,B部门可以看执行部门的全部合同。

【执行部门】是决策系统后台用户权限的角色,【A部】与【B部】是后台用户权限的角色下的所属部门。

即账号张三,角色为执行部门,部门为A部,那么当张三登录数据决策系统之后,在报表中只会呈现【‘执行部门’=A部】的数据。

这个如何在报表数据集中写sql???挠头,求大神解答!!

注!!!!!!!!!!!!!!!!!!!需要和后台用户权限联动!!而不是在前台设置参数查询!!!!!!

就是不在前台设置参数,而是直接与后台登录用户的身份联动啊QAQ,张三在后台身份是B部门,那他一登录进决策系统打开这张报表就能看全部的,李四属于A部门那他登陆进来只能看见A的合同数据。

FineReport 森森森森森 发布于 2021-5-8 14:31 (编辑于 2021-5-10 14:25)
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共3回答
最佳回答
0
Kevin-sLv7中级互助
发布于2021-5-8 14:39

权限细粒度参数控制-https://help.fanruan.com/finereport/doc-view-865.html可参考这篇文章

  • 森森森森森 森森森森森(提问者) 没跟决策系统后台用户权限联动
    2021-05-08 18:43 
  • Kevin-s Kevin-s 回复 森森森森森(提问者) 你用$fine_username去判断当前的用户或部门是谁,可以看到哪些数据这样子 SELECT * FROM 销量 where 英文简称=\'${fine_username}\'
    2021-05-09 13:41 
  • 森森森森森 森森森森森(提问者) 回复 Kevin-s 报错
    2021-05-10 14:07 
最佳回答
0
kaqiyuLv6初级互助
发布于2021-5-8 14:44

外部权限表实现数据权限过滤-https://help.fanruan.com/finereport/doc-view-3040.html

参考下这个,这是我前同事写的文档

  • 森森森森森 森森森森森(提问者) 这个只能过滤表中有的执行部门,没跟决策系统后台联动起来
    2021-05-08 18:42 
最佳回答
0
李先生你好Lv2见习互助
发布于2021-5-8 15:28

你加一个标签(选择公式写:GETUSERDEPARTMENTS(1))看一下打印的是不是A部或B部,如果是直接用这个sql呀。

select * from table_a 

    where 1=1 

    ${if(GETUSERDEPARTMENTS(1)='B部门',"and 1=1",

    "and 执行部门='"+GETUSERDEPARTMENTS(1)+"'")}

  • 森森森森森 森森森森森(提问者) 这样就明白了 ,可以使B部门看全部的,但是没有跟后台联动起来哇。 这样只是在报表内部,设置一个参数角色,然后通过选角色来查询合同内容。 我想要的是,某个账号在数据决策系统登录,他的身份是B部门,然后他可以看到的是全部。 另一个账号在决策系统后台是A部,他进来只能看A部门的。
    2021-05-10 14:10 
  • 森森森森森 森森森森森(提问者) 这个角色归属不在前台展示,而是与后台用户权限联动。
    2021-05-10 14:11 
  • 李先生你好 李先生你好 回复 森森森森森(提问者) 用户的权限是有个数据库字段还是说,只要是B部门就都有权限,不是B部门都没有权限?
    2021-05-10 14:52 
  • 森森森森森 森森森森森(提问者) 回复 natrue 用户的权限是 登录数据决策系统查看报表内容的账号用户权限 不是报表里的字段
    2021-05-11 11:18 
  • 4关注人数
  • 640浏览人数
  • 最后回答于:2021-5-10 14:25
    请选择关闭问题的原因
    确定 取消
    返回顶部