关于cognos的访问权限之前我也做了不少总结,但是由于时间关系加上用户也只要实现功能就好,我们做的效果就是像很多人一样,就那样就好了。但是有很多事情,只要你肯动脑筋,你会发现,你还可以做的更好,下面我们就趁着这个愉快的周五,用还眷顾我的时间来再次总结一下cognos访问权限有关的问题,当然我们今天主要说的就是如何让cognos的访问权限看起来更友善,那么接下来,您听我说一下下面这三种情况!
1:通过Cognos Connection登录直接进入门户进行访问
这种方式的访问权限是最简单的大家可以通过在cognos connection内容管理里面,通过对对象属性-权限添加相应的角色以及赋予该角色相应的权限即可
这样对对象设置了权限之后,只有已添加进来的具有读取权限的用户才可以看到该对象,需要特殊说明的是对于上面的选项
【改写从父条目获取的访问权限】
如果不勾该选项,默认的就是子条目
获取父条目的权限
例如:报表A在文件夹A下面,那么报表A的权限就是文件夹A的权限
如果该对象不需要从父文件夹获取访问权限,需要单独的赋权,那么可以勾上该选项。勾上之后,才可以单独的为该对象定制
自己的权限方案。
这种访问权限的设置也是友善的,有权限就看得到,没权限就看不到。
2:通过第三方门户登录访问菜单集成过来的Cognos报表
该访问方式的好处就是看起来不刷新整个页面,通过框架的形式,让报表在固定的区域刷新,例如mainFrame.这里的访问权限其实和Cognos的关系不大,我们只要在第三方程序中判断好用户角色和菜单直接的关系即可。用户登录后,判断角色,通过角色判断需要加载那些菜单,而每一个菜单对应的就是一个Cognos report的URL。在这里就不多说了,这种访问权限的控制也是友善的。
3:通过超链接方式访问Cognos报表
该访问方式就是在Cognos Connection里面或者另外的web页面直接通过超链接访问目标报表,这种访问方式对于权限的认证就会出现下面的情况,如下图所示有一个报表列表
用户a登录,用户a可以访问报表1所在的文件夹,但是不能访问报表2所在的文件夹,如果用户a登录点击了报表2,则会出现下面的很不友善的错误提示,如下图所示
有时候比如我们用table在rs里面做了一个报表的列表,为了不影响页面布局,我们需要保证每一个用户看到的样式是一样的,即都可以看到报表1和报表2的链接,但是访问
的时候给出友善的自定义提示,而不是出现上面的错误提示,我们该如何做?下面我们就来说一下具体方法
3.1:首先保证所有用户对该报表都有访问权限
3.2:在该报表采用table布局,最外面是一个两行一列的表格
3.3:在上面的表格定义拒绝访问页面,在下面的页面定义报表内容,如图5所示
3.4:通过条件样式判断上图两个单元格的是否显示,如图6
3.5 is_read参数的由来,我们需要在报表页面定义一个值提示,参数名称为is_read,为了提前获得用户信息判断报表页面UI显示与否,我们还需要一个提示页面
报表页面如下图
值提示页面如下图
3.6:值提示值的来源,我们需要定义一个查询,如下图
3.7:实现效果就是,当用户访问一个自己可以看得到的超链接,但是对该链接的报表数据是不具有访问权限的那么给出友善的拒绝提示
这样就避免了由于Cognos访问权限而引起的不能访问对象的大红叉错误的不友善拒绝的问题,是不是很简单呢?接下来还不知道这样做的你可以去试试了.