Report Studio之使用多维模型四、添加提示到分段器中

浏览: 2333

在前一篇博文,我们了解了如何应用分段器,基于成员或成员集,过滤整张报表。本文,我们将一起研究如何添加提示到分段器中,使其为动态。

 

准备工作…

 

使用Organization Code 2作为行,Current Year 和 Current Month作为列,Stmt Year作为度量,创建一张简单的交叉表。

 

如何实施…

 

1. 打开Query Explorer,展开交叉表所用的查询。

2. 从Insertable Objects窗体中,拖拽一个Set Expression控件到Slicer中。

3. 定义其表达式为:

[GO Finance Fact].[Submission Dim].[Submission Dim].[Submission Currency En]->?SubmissionCcy?.

Clipboard Image.png

4. 运行并测试报表。

 

工作原理…

 

当我们运行报表,可以发现Cognos自动提示我们选择一个Submission Currency。当我们选择一个Submission Currency之后并提交,报表将和我们的选择项对应的数据推送出来。

此例,我们使用了和前面的博文相同的Slicer对象,但是与前面不同的是,这一次我们可以动态选择用于分段器的成员或者成员集,而不是硬编码一个成员或者成员集。为了实现此功能,我们编辑了一个集表达式:[GO Finance Fact].[Submission Dim].[Submission Dim].[Submission Currency En]->?SubmissionCcy?。表达式的第一部分(指示符->之前的部分),定义了一个层级,表达式的第二部分是一个以??包围的参数名。在运行时,我们从Cognos自动弹出的提示中选择一个成员赋给此参数。

我们哈可以注意到,在运行时,我们只能为此参数选择一个成员。这是因为我们编辑的表达式只能接受一个成员。如果要实现多选,此处我们可以使用set()函数。具体表达式为:

set([GO Finance Fact].[Submission Dim].[Submission Dim].[Submission Currency En]->?SubmissionCcy?).

使用Slicer的一个潜在问题是:Slicer不能像filter一样,可以选择可选还是必须;Slicer永远是必须的。所以,在某些特定的场景下,使用Slicer可能不合适。

推荐 0
本文由 zhengyi1943 创作,采用 知识共享署名-相同方式共享 3.0 中国大陆许可协议 进行许可。
转载、引用前需联系作者,并署名作者且注明文章出处。
本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责。本站是一个个人学习交流的平台,并不用于任何商业目的,如果有任何问题,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。

0 个评论

要回复文章请先登录注册