Qlikview 权限配置和表关联

论坛上都是一些简单的hard code,不推荐在项目上使用。

Qlikview的官方文档也没有说的太清楚,这里总结一下。


1. 假设主表为data,当客户进入报表时需要限制data数据,例如维度限制(限制看到某个时间段,某个地区数据),则必须设置桥接字段和主表进行关联。

注意,桥接字段最好设置成复合键,不要利用已有的维度,否则qilkview可能会将多个维度同时作为关联键和Access表关联,导致关联失效。

复合键例如:ACCESS&'|'&NTNAME2 as SECKEY 

2. 假设主表为data,客户进入不需要限制data数据,只需要看到不同的tab页,则不需要设置桥接字段和主表关联。

首先设置Security File.xlsx如下结构:

ACCESSNTNAMETAB_A_ACCESSTAB_B_ACCESSTAB_C_ACCESSTAB_D_ACCESSTAB_E_ACCESSTAB_F_ACCESS
ADMINtest1      
ADMINtest2      
ADMINtest3      
ADMINtest4      
ADMINtest5      
ADMINtest6      
ADMINtest7      
USERtest8YesYesYesNoYesYes
USERtest9NoNoNoNoYesYes
USERtest10NoNoNoNoYesYes
USERtest11YesYesYesYesYesYes
USERtest12NoNoNoYesYesYes
USERtest13YesYesYesYesYesYes
USERtest14YesYesYesYesYesYes
//Accecc table load
Accesstemp:
NoConcatenate
LOAD ACCESS,
     'DIR\'&upper(NTNAME) as NTNAME2,
     1 as TAB_A_ACCESS,
     1 as TAB_B_ACCESS,
     1 as TAB_C_ACCESS,
     1 as TAB_D_ACCESS,
     1 as TAB_E_ACCESS,
     1 as TAB_F_ACCESS
             
FROM 
[..\1_Resources\Excel\Security File.xlsx]
(ooxml, embedded labels, table is Security)
WHERE(ACCESS = 'ADMIN');
Concatenate
LOAD ACCESS,
     'DIR\'&upper(NTNAME) as NTNAME2,
     if(Upper(TAB_A_ACCESS)='YES',1,0) as TAB_A_ACCESS,
     if(Upper(TAB_B_ACCESS)='YES',1,0) as TAB_B_ACCESS,
     if(Upper(TAB_C_ACCESS)='YES',1,0) as TAB_C_ACCESS,
     if(Upper(TAB_D_ACCESS)='YES',1,0) as TAB_D_ACCESS,
     if(Upper(TAB_E_ACCESS)='YES',1,0) as TAB_E_ACCESS,
     if(Upper(TAB_F_ACCESS)='YES',1,0) as TAB_F_ACCESS
FROM
[..\1_Resources\Excel\Security File.xlsx]
(ooxml, embedded labels, table is Security)
WHERE(ACCESS = 'USER');

AccessLevel:
LOAD
    NTNAME2,
	ACCESS&'|'&NTNAME2 as SECKEY,
    TAB_A_ACCESS,
    TAB_B_ACCESS,
    TAB_C_ACCESS,
    TAB_D_ACCESS,
    TAB_E_ACCESS,
    TAB_F_ACCESS
Resident Accesstemp WHERE 1=1;


//Set Access


Section Access;

AccessFinal:

LOAD
ACCESS,
NTNAME2 AS NTNAME,
ACCESS&'|'&NTNAME2 as SECKEY
Resident Accesstemp WHERE 1=1;
Section Application;
DROP Table Accesstemp;

之后把每个tab加上条件:max(TAB_A_ACCESS)=1 即可

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值