查询查看权限

image.png

客户名称和金额是填报页面由销售经理和销售填报进去的,上面图片的是查出来的。怎么做让销售经理看到全部的内容,销售看到自己的

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

1、你说是填报进去的,那么正常你应该将填人的账号和时间都记录写到数据库这张表一起存起来

2、有这个账号的数据以后,你就在写sql查询的时候判断一下登陆人的角色(前提是你对这些人设置了角色,比如张三他的角色是经理,那么你就可以根据角色来判断)

select * from 填报表名称

where 1=1

${if(fine_role="部门经理","","and real_code='"+fine_username+"'")}

-------------如果你是模糊查询角色语句可以改成如下----------------

${if(find("经理",fine_role)>0,"","and real_code='"+fine_username+"'")}

/*如果登陆人的账号等于部门经理,那么不限制条件,否则限制账号为登陆人的账号*/

/*修改你的公式*/

WHERE 1=1 

${if(fine_role="总经理","","and t3.add_name ='"+left(fine_display_name,find("(",fine_display_name)-1)+"'")}

  • yzmcGxHZ8466764 yzmcGxHZ8466764(提问者) 如果是管理员账号呢,管理员账号能添加角色吗?好像没看到
    2023-05-23 14:55 
  • CD20160914 CD20160914 回复 yzmcGxHZ8466764(提问者) 超级管理员没有角色可以添加,你可以直接判断一下账号就行了。如果是超级管理员,你只判断账号就行了
    2023-05-23 14:57 
  • yzmcGxHZ8466764 yzmcGxHZ8466764(提问者) 回复 CD20160914 where 1=1 and real_name=\'${left(fine_display_name,find(\"(\",fine_display_name)-1)}\',数据集可以这样获取账号姓名吗,我填报填入的是姓名
    2023-05-23 15:07 
  • CD20160914 CD20160914 回复 yzmcGxHZ8466764(提问者) 你可以这样取姓名的。只要你的姓名没有重复的话,这样是可以的。
    2023-05-23 15:08 
  • yzmcGxHZ8466764 yzmcGxHZ8466764(提问者) 回复 CD20160914 WHERE 1=1 ${if(fine_role=\\\"总经理\\\",\\\"\\\",\\\"and t3.add_name =\\\'\\\"+\\\'${left(fine_display_name,find(\\\"(\\\",fine_display_name)-1)}\\\'+\\\"\\\'\\\") 这样写报错,是不能取姓名吗
    2023-05-23 15:20 
最佳回答
0
1592Lv6高级互助
发布于2023-5-23 14:11

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

image.png

最佳回答
0
用户k6280494Lv6资深互助
发布于2023-5-23 14:11(编辑于 2023-5-23 14:16)
最佳回答
0
yzm339714Lv6中级互助
发布于2023-5-23 14:18

这个表在数据库里面再加一个字段,叫填报人,每次填报提交的时候自动把这个人填写为当前登陆用户,然后查询展示的时候,做下判断,如果角色是销售经理或者说是某个用户名 就 where 1=1 其他的就加上条件 where uesr_name = '${fine_username}'

  • 5关注人数
  • 273浏览人数
  • 最后回答于:2023-5-23 15:20
    请选择关闭问题的原因
    确定 取消
    返回顶部