微软BI 之SSRS 系列 - 如何在 MDX 查询中获取有效的 MEMBER 成员属性作为参数传递

浏览: 3653

开篇介绍

这篇小文章的来源是 天善问答,比如在报表中要根据点击某一个成员名称然后作为参数传递给自身报表或者下一张报表,这个在普通的 SQL 查询中没有任何问题。但是在 MDX 中查询是有区别的,比如在 MDX 中显示在报表上的结果是 Category 下的一个分类 Bikes,但是当点击了 Bikes之后把 Bikes 作为参数传递下一个 MDX 查询的报表中,很显然我们要的是参数 [Product].[Product Categories].[Category].&[2] 去作为过滤条件。如果实现知道点击成员的层次结构路径,那么我们可以事先将整个成员的字符串准备好,然后只更改值的部分。但是如果成员实现不知道是哪一个层次上的话,就不好处理了。

MEMBER PROPERTIES

这样要使用到成员的一些相关属性 -

SELECT {} on 0, 
[Product].[Product Categories].[Category].MEMBERS
DIMENSION PROPERTIES
MEMBER_CAPTION,
UNIQUE_NAME,
LEVEL_UNIQUE_NAME,
MEMBER_KEY
ON 1
FROM [Step-by-Step]

双击查询出来的成员值之后可以看到相关的属性,这样的查询结果如果在 SSRS 编辑器中,这些属性会跟随成员本身出现的。

SSRS 中的编辑器 MDX 查询会出现全部的属性,这些属性也将作为 Dataset 的字段出现。

属性以字段的形式出现。

先设置好四个字符串参数变量,然后拖放到相关区域,当点击 Category 部分时候跳转到自身报表,然后显示相关参数的值。

点击 Category 编辑它的 Action 动作,跳转到自身,然后把其它的几个属性作为参数传递。

点击 Clothing 如果在普通 SQL 查询的时候就是传递 Clothing。但是在 MDX 中查询,可以传递很多种参数格式,但可能常用的是Unique Name,比如写到 WHERE 过滤中。

点击 Accessories 时 -

关于 MEMBER PROPERTIES 还有其它的很多属性,可以参看 MSDN

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

0 个评论

要回复文章请先登录注册