页面树结构
转至元数据结尾
转至元数据起始

多维分析报表的是通过MDX语句来进行查询并生成多维报表。

对某维度层次结构设置了数据权限,在定制多维分析时若没有选择该维度成员,系统默认在MDX语句的添加上过滤内容。

比如报表对应的执行MDX语句为:

SELECT SubSet(Hierarchize(Distinct({[Measures].[Unit Sales]})),0,100) ON COLUMNS,

Hierarchize(Distinct({ [商店].[城市].ALLMEMBERS})) ON ROWS

FROM [Sales]

 

如果要实现不同的用户登录进来看到的数据不同,我们需要给这个报表对应MDX加过滤条件,如下

当广州用户登录其执行的MDX语句为:

SELECT SubSet( Hierarchize( Distinct( { [Measures].[Unit Sales] } ) ), 0, 100 ) ON COLUMNS,

Filter( Hierarchize( Distinct( { [商店].[城市].ALLMEMBERS } ) ), Count( StripCalculatedMembers( { [商店].CurrentMember } ) ) = 0 Or Count( Filter( Ascendants( [商店].CurrentMember ), [商店].CurrentMember.Name = "广州" ) ) > 0 ) ON ROWS

FROM [Sales]

 

一般多维分析实际应用的场景中,数据权限对应的维度成员要求是根据不同的用户动态变化的。

这样就需要在参数或是使用自定义命名集/成员结合函数GetUserAccessibleMembers()一起使用。

具体请参考多维分析参数自定义成员/命名集章节。

GetUserAccessibleMembers()

获取指定维度层次中当前用户具有数据访问权限的成员。参数有两个:

  • 第一个参数:“hierarchy”即维度层次。
  • 第二个参数:“Self”表示获取顶层成员;“SelfAndChildren”表示获取顶层成员及其子成员;“Children”表示获取顶层成员的子成员。
  • 无标签