cognos如何通过会话参数控制报表权限
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
如果想通过uass登录名控制用户权限,实现指定用户才能查询报表结果。
最简单的方式是在查询界面的详细信息过滤器中加入过滤条件,如下图:
但是这种方式的缺点是不管是否是有权用户进行查询,报表都将在后台数据库中运行,造成数据库资源的浪费。
因此设计另外一种方式,设计思路是先查询当前会话的用户名是否是有权用户,将查询结果赋给一个变量,再用变量控制报表页面的呈现。
设计两个页面,一个页面是显示正常报表,此页面在用户有权访问报表时呈现,否则不呈现(通过页面的呈现变量控制,不呈现时报表的查询就不会运行了,避免了数据库资源的浪费),设置步骤是:(1)建立一个新的查询,再在查询中建立一个数据项,这个数据项的值通过判断当前会话用户是否为指定用户生成,如果是指定用户,设为1,否则为0。
(2)建立一个变量,将上一步所得数据项的值赋给这个变量。
具体方法是选择条件资源管理器菜单,建立一个字符串变量(最终呈现样式需要通过变量控制,所以用步骤1中生成的查询数据项建立一个变量)
(3)在变量属性中选择报表表达式选项,定义变量的值为第一步中建立的数据项。
(4)添加两个变量值1和0。
(5)在报表页面中选择需要做权限控制的报表页面。
在左下角页面属性窗口对呈现变量,查询,及属性分别进行设置。
(6)呈现变量选择步骤三中所建立的访问控制变量,并选择变量为1的时候呈现。
(7)查询选择步骤一中建立的查询,属性选择步骤一中建立的数据项。
$account.parameters.NG_org p2 传过来的岗位机构
$account.parameters.NG_sorg 机构汇总核算机构(核算机构)
$account.parameters.NG_hiercode 机构层级(核算机构)$bempid 员工编号$account.parameters.loginName 员工登陆名称xxx.zh $account.parameters.p2_pid 岗位编号
$account.parameters.p2lang 多语言
$account.parameters.p2instSvrlLgPsnID 多法人
使用方法:#sq($account.parameters.NG_sorg)#。