日期:2014-05-16  浏览次数:20465 次

QlikView中行级权限设置
博客前言:
企业级报表通常都涉及到复杂的权限问题, 比如文本级权限和行级权限,某区域经理只能看到该区域的销售数据。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, 200
IRELAND,300
UNITED KINGDOM, 400
CHINA,500
america,600
];


退出Edit script,在设置(Settings)里面点击文档设置(Documents Properties), 选择Opening, 选中Initial Data Reduction Based on Section Access, 里面的Script Exclusion不要选中。 重新加载(Reload)数据。

1. 关闭所有QlikView工程, 再打开上述创建的QlikView文件。用账号ADMIN登陆依然会看到所有的country和sales。
2. 关闭QlikView工程再用zplume登陆,则只能看到France和China以及相应的sales。
3. 再关闭QlikView工程用sissi登陆,此时能看到所有的country和sales,表明权限设置失效。
我Google了很多网页,他们只是说:uppercase is a must always(必须要大写)。从上面的脚本可以看出,列表中的字段值需要大写才行。

未解决问题:

为何列表中的字段值需要大写才行,这是QlikView本身的bug还是说另有深意? 希望直到的朋友可以留言解释一下。多谢多谢。