QlikView 权限设置问题和注意

企业级报表通常都涉及到复杂的权限问题, 比如文本级权限和行级权限,某区域经理只能看到该区域的销售数据。QlikView自然也提供了该种功能。

具体方法:

在Edit script中新建一个tab, 输入如下语句:

 1 Section Access;
 2 LOAD * INLINE [
 3 ACCESS,    USERID,    PASSWORD,     COUNTRY
 4 ADMIN,    ADMIN,    ADMIN,        ALL
 5 USER,    zplume,    zplume,        CHINA
 6 USER,    zplume,    zplume,        France
 7 USER,    sissi,    sissi,        america
 8 ];
 9 
10 Section Application;
11 
12 Sales:
13 LOAD * INLINE [
14 COUNTRY, SALES
15 FRANCE, 200
16 IRELAND,300
17 UNITED KINGDOM, 400
18 CHINA,500
19 america,600
20 ];

退出Edit script,在设置(Settings)里面点击文档设置(Documents Properties), 选择Opening, 选中Initial Data Reduction Based on Section Access, 里面的Script Exclusion不要选中。 重新加载(Reload)数据。若qvw中没有权限脚本,文档属性-〉起始画面-〉[基于权限减少初始化数据]要勾选,服务器-〉【基于权限筛选存取点文件】不要勾选

1. 关闭所有QlikView工程, 再打开上述创建的QlikView文件。用账号ADMIN登陆依然会看到所有的country和sales。

2. 关闭QlikView工程再用zplume登陆,则只能看到France和China以及相应的sales。

3. 再关闭QlikView工程用sissi登陆,此时能看到所有的country和sales,表明权限设置失效。 我Google了很多网页,他们只是说:uppercase is a must always(必须要大写)。从上面的脚本可以看出,列表中的字段值需要大写才行。

4.在权限脚本中有一个表[ACCESS], [USERID], [PASSWORD], NTNAME(注意这几个字段要大写)

  若表中没有NTNAME这个字段,在打开带有权限的qvw时,会弹出一个对话框,输入用户名密码,若有NTNAME就不会弹出那个对话框。

 ACCESS只有两个值admin和user,只有用admin进去,才能看到权限脚本(权限脚本隐藏为前提),若要修改权限,修改完后,要重新加载数据及保存整个qvw,

 然后将项目及软件关闭,再重新打开项目,修改的信息才会生效。 

5.个人版的qv软件与服务器版的不能共存

6.其它电脑访问服务器上的qvw时即http://等路径,要在本电脑的c:windowssystem32drivesetschosts文件的最后加:服务器的ip  dbbackup

原文地址:https://www.cnblogs.com/lishuangjiang/p/3758654.html