帆软报表-数据权限控制与实现
1、组织表设计(同数据库设计)
工号 |
用户名 |
监管机构code |
监管机构名 |
大区code |
大区名 |
区域code |
区域名 |
机构等级 |
机构.S(user_code) |
机构.G(user_name) |
机构.G(org1_code) |
机构.G(org1_name) |
机构.G(org2_code) |
机构.G(org2_name) |
机构.G(org3_code) |
机构.G(org3_name) |
机构.G(level) |
2、登陆人信息设计(测试用,参数查看)
3、模板参数设计(加载数据源数据之前,获取模板参数设定)
注:详细代码如下
p_level:
sql("mysql","SELECT * FROM t_org where user_code="+p_userno,11)
p_org4:
sql("mysql","SELECT * FROM t_org where user_code="+p_userno,9)
p_org3:
sql("mysql","SELECT * FROM t_org where user_code="+p_userno,7)
p_org2:
sql("mysql","SELECT * FROM t_org where user_code="+p_userno,5)
4、数据权限控制
注:详细代码如下
1 SELECT * FROM `数据权限控制表` c 2 left join t_org o 3 on c.user_code=o.user_code 4 where 1=1 5 6 ${if(p_level==1, 7 "", 8 if(p_level==2, 9 if(len(p_org3)==0, 10 " and o.org2_code = '"+p_org2+"' ", 11 " and o.org2_code = '"+p_org2+"' and o.org3_code ='"+p_org3+"'" 12 ), 13 if(p_level==3, 14 if(len(p_org4)==0 && len(p_org3)>0, 15 " and o.org3_code = '"+p_org3+"' ", 16 " and o.org3_code = '"+p_org3+"' and o.org4_code ='"+p_org4+"'" 17 ), 18 if(p_level==4, 19 " and o.org4_code = '"+p_org4+"' and c.user_code ='"+p_userno+"'", 20 " and 1=2" 21 ) 22 ) 23 24 ) 25 26 ) 27 }
5、支持
通过以下二维码进行捐赠,请作者喝杯咖啡表示鼓励 ☕️
(微信号:huolp1125)