根据报告中的用户隐藏/显示元素?

时间:2013-12-17 13:09:50

标签: cognos

如何为登录的不同用户显示或隐藏部分报告?

3 个答案:

答案 0 :(得分:0)

此链接:

http://www-01.ibm.com/support/docview.wss?uid=swg21343986

显示了如何在Cognos中获得当前用户。您可以使用此宏语法来检索它:

#sq($account.defaultName)#

将其放在报表的布局表达式中,并验证它是否返回登录名。

下一步是可能能够在变量表达式中使用它,然后您可以在条件格式中使用它来隐藏或显示报表元素。

如果您不知道我在说什么,请参阅Report Studio手册并查找宏,布局表达式,变量,条件格式。

答案 1 :(得分:0)

您需要为不同的用户保存不同版本的报告。每个自定义布局都是自己的报告。

然后,您可以分配权限,以便用户只能看到适用于他们的报告。

例如,如果您有销售报表,并且市场营销部门想要在报表中添加额外的计算列,但没有其他部门希望看到它。使用“月度销售 - 营销”等新名称保存销售报告。添加新列。

现在,如果您还没有,请在Administration-> Security中创建一个名为'Marketing'的新角色。将营销用户分配给此角色。

在“每月销售 - 营销”报告中,如果您只想要营销来查看报告,则编辑报告的属性,转到权限,并为营销组提供“读取”,“执行”和“遍历” ”。从读取/执行权限中删除其他用户,现在只有市场营销人员和管理员才能看到特殊的营销报告。

答案 2 :(得分:0)

只要您尝试隐藏的对象具有名为RenderVariable的属性,您就可以将其连接到指定用户不可见/可见。

  1. 创建一个名为Global
  2. 的新查询
  3. 将数据项添加到全局并将其命名为“当前用户"
  4. 在当前用户中输入以下表达式:#sq($account.defaultName)#这是一个检索当前用户名称的宏。
  5. 添加第二个数据项并将其命名为#34; IsAuthorized"
  6. 在IsAuthorized中输入以下表达式:if ([Current User] = 'Michael Jackson') then (1) else (0)
  7. 现在运行View Tabular Data命令测试新查询。 (将鼠标悬停在“查询资源管理器”上以展开“查询”列表。右键单击刚刚创建的查询,然后选择“#34;查看表格数据"”
  8. 您应该在“当前用户”列中看到您的名字,在IsAuthorized列中看到0(零)。那是因为你的名字不是迈克尔杰克逊。" (除非你的名字实际上是 迈克尔杰克逊!)
  9. 假设一切按计划进行,现在你可以继续前进并制作一个变量......
  10. 将布尔变量拖到现有的变量列表
  11. 调用变量DisplayWhenUserIsAuthorized_v
  12. 输入以下内容作为表达式:if ([Global].[IsAuthorized]) then (1) else (0)
  13. 现在你可以将这个变量插入你对象的RenderVariable属性中,你应该能够测试它是否有效......它不应该出现给你(它只会出现给Michael Jackson)