我在角色的CellData表达式中使用CurrentMember函数来限制通过特定维度访问多维数据集。这是预期的,只有一个例外。即使使用切片器imension过滤掉角色无权看到的数据,也会在所有单元格中显示字符串“#N / A”。
只有包含角色在轴中限制访问的维度后,才会按预期显示单元格的值。
在我看来,好像CurrentMember函数忽略了切片器维度。是这样的吗?我该如何处理这个问题?
答案 0 :(得分:1)
这取决于您使用过滤器进行查询的方式。如果要生成子查询(使用SSMS或BIDS中的顶部过滤器区域),则currentMember将返回All成员 - 这是子查询设计的工作方式。如果您使用较低的查询在SSMS或BIDS中,它将使用WHERE子句,您应该看到您期望的结果。
如果您只是按维度成员进行过滤,那么最好使用维度数据选项卡而不是单元格数据。
答案 1 :(得分:0)
我的建议,一目了然,就是逃避要求您使用多维数据集值限制访问的多维数据集。去过那里,这样做,浪费了太多时间,但最终还是找到了一个不稳定的解决方案。
绝对不要在OLAP中使用“角色”。