目前报表中和数据库表中有:项目名称、项目经理、部门、用户名(即登录的用户名)这几个字段。
决策系统中有项目经理、部门主管两个角色。
想要通过角色控制所见的内容:当角色为项目经理时,表中只能看到项目经理为自己的数据行;当角色为部门主管时,表中只能看到自己部门的数据行。
写在SQL数据集里该如何配置?
如果你每一个人只有一个角色,那么直接这样就行了
select * from 表名称
where 1=1
and role_name='${fine_role}'
/*fine_role是帆软的内置参数,它可以获取到用户的登记角色,所以你登陆决策系统后会自动动态产生不同的角色名称*/
如果你有多个角色,那么这样就行了
${if(find("项目经理",fine_role)>0,"and role_name='项目经理'",if(find("部门主管",fine_role)>0,"and role_name='部门主管'",""))}
数据权限控制,直接在sql中,依据角色查看数据,在前端呈现,用系统参数过滤
权限细粒度控制- FineReport帮助文档 - 全面的报表使用教程和学习资料 https://help.fanruan.com/finereport/doc-view-861.html