函数用于返回指定成员的满足条件的后代成员的集合。
MemberSet ( Member_Expression , [{ Distance }[, Desc_flags ]])
Member_Expression -> 数据类型:Member 表示指定的维度成员,可以直接使用成员表达式,或相应的返回单个维度成员的函数 Distance -> 数据类型:Number 可选,表示从指定的维度成员开始往下(往叶子节点的方向)的距离。如果用0则表示指定成员本身。 Desc_flags -> 数据类型:关键字 可选,类型标志,包含如下选项:
标志 |
描述 |
---|---|
SELF |
仅返回指定级别或指定距离处的后代成员。 如果指定级别为指定成员所在的级别,该函数将包括指定成员。 |
AFTER |
返回指定级别或指定距离处的所有从属级别的后代成员。 |
BEFORE |
返回指定成员和指定级别之间或指定距离内所有级别的后代成员。 它包含指定成员,但不包括指定级别或距离的成员。 |
BEFORE_AND_AFTER |
返回指定成员所在级别的所有从属级别的后代成员。 它包括指定成员,但不包括指定级别或指定距离处的成员。 |
SELF_AND_AFTER |
返回指定级别或指定距离内的后代成员,以及指定级别或指定距离内的所有从属级别的后代成员。 |
SELF_AND_BEFORE |
返回指定级别或指定距离内的后代成员,以及指定成员和指定级别之间或指定距离内所有级别的后代成员(包括指定成员)。 |
SELF_BEFORE_AFTER |
返回指定成员所在级别的所有从属级别的后代成员(包括指定成员)。 |
LEAVES |
返回指定成员和指定级别之间或指定距离内的叶后代成员。 |
返回值数据类型: {Member}
我们以下图为例来解释MemberSet函数的用法。在期间维度中,我们一共设定了4级,全年,半年,季度和月份。
Self,返回层级本身
MemberSet([Period].[YearTotal],2,Self)
返回: {[Period].[Q1],[Period].[Q2],[Period].[Q3],[Period].[Q4]}
使用After,返回指定层级以下的成员
MemberSet([Period].[YearTotal],1,After)
返回: {[Period].[Q1],[Period].[1], [Period].[2], [Period].[3], [Period].[Q2],[Period].[4], [Period].[5], [Period].[6], [Period].[Q3],[Period].[7], [Period].[8], [Period].[9], [Period].[Q4],[Period].[10], [Period].[11], [Period].[12]}
使用Before,返回指定层级以上的成员
示例1:
MemberSet([Period].[YearTotal],2,Before)
返回: {[Period].[YearTotal], [Period].[1half], [Period].[2half]}
示例2:
MemberSet([Period].[2half],2,Before)
返回: {[Period].[2half], [Period].[Q3], [Period].[Q4]}
随后四种标志BEFORE_AND_AFTER, SELF_AND_AFTER, SELF_AND_BEFORE, SELF_BEFORE_AFTER则通过组合上面的Self,After和Before标志来实现。
如果未指定级别、距离和标志,此函数将在假定使用了以下语法的情况下执行操作:
MemberSet
(
Member_Expression ,
Member_Expression.Level ,
SELF_BEFORE_AFTER
)
如下列写法
MemberSet([Period].[YearTotal])
会被默认转换成:
MemberSet([Period].[YearTotal],0,SELF_BEFORE_AFTER)
返回:
{[Period].[YearTotal], [Period].[1half], [Period].[Q1],[Period].[1], [Period].[2], [Period].[3], [Period].[Q2],[Period].[4], [Period].[5], [Period].[6], [[Period].[2half], Period].[Q3],[Period].[7], [Period].[8], [Period].[9], [Period].[Q4],[Period].[10], [Period].[11], [Period].[12]}
即返回YearTotal成员自己以及其所有后代。
如果指定了级别但未指定说明标志,此函数将在假定使用了以下语法的情况下执行操作:
MemberSet
(
Member_Expression ,
Level_Expression,
SELF
)
如下列写法
MemberSet([Period].[YearTotal],1)
会被默认转换成:
MemberSet([Period].[YearTotal],1,SELF)
返回: {[Period].[1half], [Period].[2half]}
当需要返回所有的叶子节点,又不确定一共多少层级时,可以在距离参数上传入-1,表示一直到最底层。
MemberSet([Period].[YearTotal],-1,Leaves)
返回:
{[Period].[1], [Period].[2], [Period].[3], [Period].[4], [Period].[5], [Period].[6], [Period].[7], [Period].[8], [Period].[9], [Period].[10], [Period].[11], [Period].[12]}
回到顶部
咨询热线