利用角色如何限制下拉树的选项

我的报表里面设置了下拉树,里面存放了组织和部门架构,目前准备利用角色来控制什么角色才能看见某个组织(及下的部门),请问应该如何实现呢?或者不利用角色用其他方式来做权限管控,大家有没有更好的建议呢?

比如:河北公司的人在下拉树中只能看见河北公司的组织及部门。

image.png

FineReport 用户e2379142 发布于 2022-3-22 08:53
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共1回答
最佳回答
0
CD20160914Lv8专家互助
发布于2022-3-22 08:55(编辑于 2022-3-22 14:59)

你可以按你这个来建立角色。然后把对应的人放进这些角色进去。再结合帆软自带的参数$fine_role就可以把每人登陆的角色获取到。然后传入就可以了。。。

假如你建立了一个角色名称叫:河北公司   然后你放里面加了 人员   张三丰,李明明    。。这两人登陆时$fine_role参数会自动获取角色名称河北公司,,,你直接在数据库中把这个获取的角色名称传入就行了

select * from 你的表

where 1=1

and 部门名称='${$fine_role}'

假如有多个角色:

image.png

用函数结合一样可以只取到这人的角色对应的公司,然后把它设置成模板参数。。。你在sql里面直接让它等于这个模板参数就行了

image.png

image.png

权限的qx参数写如下公式

SUBSTITUTE(SUBSTITUTE(GREPARRAY(SPLIT($fine_role,","), FIND("财务",item)>0),"财务_",""),",","','")

sql中改成这样:

${if(len(qx) = 0,"and 1=2","and g.name  in('" + qx + "')")}

  • 用户e2379142 用户e2379142(提问者) 是的,我准备按照各个公司来建立角色,但是我不太明白如何和这个下拉树的值绑在一起,请再详细说明一下,或者举一个栗子,谢谢
    2022-03-22 08:57 
  • CD20160914 CD20160914 回复 用户e2379142(提问者) 上面举例说明了一下。。
    2022-03-22 09:00 
  • CD20160914 CD20160914 回复 用户e2379142(提问者) 我说的情况是每人只有一个角色的情况下。如果是多个角色的话。你最好在建立角色的时候,前缀加一个标识,比如: 权限_河北公司 然后最后可以通过查找“权限”两个字,单独把它取出来。。再取河北公司的也可以。。
    2022-03-22 09:02 
  • 用户e2379142 用户e2379142(提问者) 回复 CD20160914 好的,目前刚好是单个用户多权限得场景,我先按照你的例子先做一下,谢谢
    2022-03-22 09:05 
  • 用户e2379142 用户e2379142(提问者) 我根据上面的案例测试了多角色的场景,某个角色登录后在下拉树中还是能够看到所有的组织和部门,我打印了qx模板函数,里面只筛选出第一个标签(投资中心,财务_再生资源公司,财务_湖北公司,财务_长沙公司,财务_河南公司,财务_武汉总部),另外我的sql里面有正对下拉树多选的参数,不知道和qx模板参数有冲突没有:${if(len(bm)==0,\"\",\"AND g.path in (\"+\"\'\"+treelayer(bm, true, \"\\\',\\\'\")+\"\'\"+\")\")} ${if(len(qx) == 0,\"and 1=2\",\"and g.name = \'\" + qx + \"\'\")}
    2022-03-22 14:28 
  • 3关注人数
  • 392浏览人数
  • 最后回答于:2022-3-22 14:59
    请选择关闭问题的原因
    确定 取消
    返回顶部