通过用户名关联数据库进行同报表权限管理

楼主
我是社区第692841位番薯,欢迎点我头像关注我哦~

日常开发报表过程中我们会用到关联当前登录用户的姓名(非登录名+姓名的方式)进行单报表的权限管理,即不同权限的人看到的报表是不一样的。最日常的用法是,我们需要拥有个管理员,需要全部权限。那么该怎么实现呢?

1、在数据库中建立存放权限的表,举例字段为(id,姓名,权限)输入第一行值(1,某某,管理员),可按实际情况加字段

2、在报表模板参数里添加两个参数(决策报表同样适用):

     用户名          默认值为公式   值为 left($fine_display_name,find("(",$fine_display_name)-1)   注:这样我们就能获取到登录时的姓名

     管理员          默认值为公式    值为 SQL("xxxx","select 权限 from 报表权限管理 where  姓名 = '"+left($fine_display_name,find("(",$fine_display_name)-1)+"'",1)                                                               注:紫色位置为我数据库连接名字,红色字为我权限报表名字,可按实际情况修改。绿色部分是我对上面用户名参数的复用,用于查询姓名是否为管理员。

3、SQL语句中添加 where  '${管理员}' = '管理员' or  负责人 = '${用户名}' 注:数据库为sql server,红色部分是我查询的报表负责人字段,意思是如果我查找姓名是否为管理员(如果姓名是管理员,相当于where1=1,即查询全表),如果条件不成立,我查找负责人为姓名的的数据。

分享扩散:

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

0回帖数 1关注人数 2051浏览人数
最后回复于:2022-6-8 14:36

返回顶部 返回列表