我有一个SSAS表格多维数据集,其中一个名为Projects的表之一,其中的列如Project_Managers,Special_Projects等。
[Special_Projects是一个布尔列,其值为1或0,它指示项目是否标记为特殊。
我正在此SSAS表格多维数据集中实现基本的RLS,我创建了一个角色-'可以访问特殊项目的PM。现在,我尝试使用DAX从Projects表中仅选择Special_Projects = 1
的那些行。我尝试了一些DAX公式,例如CALCULATETABLE()
和EVALUATE()
,但它们不起作用。
项目表上的行级安全性过滤器应为:
=Projects[Special_Project]
这些过滤器应返回布尔值,并且用户可以看到表达式为true的行。
上面假设列是您所说的布尔类型。如果是1或0,请尝试:
=Projects[Special_Project]=1
[如果您需要检查另一个表并且还对当前表中的列进行过滤,请尝试:
=IF(CONTAINS('vwUser',vwUser[Login],USERNAME()) ,Projects[Special_Project]=TRUE() ,Projects[Special_Project]=FALSE())
这应该向vwUser表中的用户显示特殊项目,向不在该表中的用户显示其他项目。