权限问题,请指教?

销售日报表sale_daily,  有门店(md),部门(dept),销售金额(xsje)三个字段,要做到张三用户登陆只能看到A门店,营业一部和营业二部的销售,李四登陆只能看到B门店(营业三部的销售)怎么能实现?

FineReport ysbin 发布于 2022-10-24 09:45
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共2回答
最佳回答
0
runerLv7资深互助
发布于2022-10-24 09:48(编辑于 2022-10-25 09:56)

有没有门店,部门和张三的关系表,没有的话可以用

方法一:权限细粒度控制- FineReport帮助文档 - 全面的报表使用教程和学习资料 (fanruan.com)

方法二:拿参数判断

${if($fine_username = "张三","and 门店部门过滤")}

参考

 and 1=1 ${if( len(fine_username)== 0  , "",  "and md in (select md from 权限表 where name = '"+fine_username+"'  ) " )}

  • ysbin ysbin(提问者) 方法二的话,如果有很多表,每张表都要写,等于写死了对吗?
    2022-10-24 09:52 
  • runer runer 回复 ysbin(提问者) 是的,如果很多门店很多用户,这样没法写; 一个是建一个权限表,在参数里判断权限;二是利用角色授权去判断权限也可以,方法好几种你得综合考量一下
    2022-10-24 09:55 
  • ysbin ysbin(提问者) select md,mdmc,louceng,sum(xszje)xszje from sale_daily where rq=\'${日期}\' group by md,mdmc,louceng 如果我语句是这样的,这个条件${if($fine_username = \"张三\",\"and 门店部门过滤\")}应该怎么写?
    2022-10-25 09:51 
  • runer runer 回复 ysbin(提问者) and 1=1 ${if( len(fine_username)== 0 , \"\", \"and md in (select md from 权限表 where name = \'\"+fine_username+\"\' ) \" )} 参考
    2022-10-25 09:55 
最佳回答
0
巴拉巴拉1234Lv6初级互助
发布于2022-10-24 09:50

首先你要维护一张用户名对应门店权限的表;然后运用内部参数$fine_username识别登录人账号,关联你的权限表查询数据就行了

  • ysbin ysbin(提问者) 比如张三,门店:A门店,部门:营业一部,营业二部,这样具体怎么建表,内部参数,怎么用?能帮忙打个样吗?感谢感谢
    2022-10-24 10:15 
  • 3关注人数
  • 261浏览人数
  • 最后回答于:2022-10-25 09:56
    请选择关闭问题的原因
    确定 取消
    返回顶部