报表数据集权限设置问题

目前报表中和数据库表中有:项目名称、项目经理、部门、用户名(即登录的用户名)这几个字段。

决策系统中有项目经理、部门主管两个角色。

想要通过角色控制所见的内容:当角色为项目经理时,表中只能看到项目经理为自己的数据行;当角色为部门主管时,表中只能看到自己部门的数据行。

写在SQL数据集里该如何配置?

FineReport yzmbTpn61525629 发布于 2023-6-6 13:48
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共2回答
最佳回答
0
CD20160914Lv8专家互助
发布于2023-6-6 19:53

如果你每一个人只有一个角色,那么直接这样就行了

select * from 表名称

where 1=1

and role_name='${fine_role}'

/*fine_role是帆软的内置参数,它可以获取到用户的登记角色,所以你登陆决策系统后会自动动态产生不同的角色名称*/

image.png

如果你有多个角色,那么这样就行了

select * from 表名称

where 1=1

${if(find("项目经理",fine_role)>0,"and role_name='项目经理'",if(find("部门主管",fine_role)>0,"and role_name='部门主管'",""))}

image.png

最佳回答
0
坚定的小帆薯Lv7高级互助
发布于2023-6-6 13:55

数据权限控制,直接在sql中,依据角色查看数据,在前端呈现,用系统参数过滤

权限细粒度控制- FineReport帮助文档 - 全面的报表使用教程和学习资料  https://help.fanruan.com/finereport/doc-view-861.html

  • 3关注人数
  • 236浏览人数
  • 最后回答于:2023-6-6 19:53
    请选择关闭问题的原因
    确定 取消
    返回顶部