企业级报表通常都涉及到复杂的权限问题, 比如文本级权限和行级权限,某区域经理只能看到该区域的销售数据。QlikView自然也提供了该种功能。
具体方法:
在Edit script中新建一个tab, 输入如下语句:
Section Access;
LOAD * INLINE [
ACCESS, USERID, PASSWORD, COUNTRY
ADMIN, ADMIN, ADMIN, ALL
USER, zplume, zplume, CHINA
USER, zplume, zplume, France
USER, sissi, sissi, america
]; Section Application; Sales:
LOAD * INLINE [
COUNTRY, SALES
FRANCE,
IRELAND,
UNITED KINGDOM,
CHINA,
america,
];
退出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(必须要大写)。从上面的脚本可以看出,列表中的字段值需要大写才行。
若表中没有NTNAME这个字段,在打开带有权限的qvw时,会弹出一个对话框,输入用户名密码,若有NTNAME就不会弹出那个对话框。
ACCESS只有两个值admin和user,只有用admin进去,才能看到权限脚本(权限脚本隐藏为前提),若要修改权限,修改完后,要重新加载数据及保存整个qvw,
然后将项目及软件关闭,再重新打开项目,修改的信息才会生效。
5.个人版的qv软件与服务器版的不能共存
6.其它电脑访问服务器上的qvw时即http://等路径,要在本电脑的c:\windows\system32\drives\etsc\hosts文件的最后加:服务器的ip dbbackup