帆软报表-数据权限控制与实现

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)

 

 

 

 

 

posted @ 2024-10-19 08:08  体重270  阅读(76)  评论(2编辑  收藏  举报