SSAS多维数据集中的条件颜色格式

时间:2014-12-17 04:40:11

标签: sql-server excel ssas mdx olap-cube

我有一个星型模式,其中包含一个包含以下内容的事实表:

ID BIGINT IDENTITY, FK_Dimension1 BIGINT, FK_Dimension2 BIGINT, 
dataValue NUMERIC(20, 8), classification NVARCHAR(20)

分类定义了每个dataValue的安全性分类,并且可以包含" public"或"保密"。

我创建了一个包含分类字段的简并维度,dataValue位于关联的度量表中。

我的要求是在任何将数据呈现为RED的工具中格式化dataValue,如果该字段的聚合中的任何值包含相关的"机密"的分类。因此,例如,如果在excel数据透视表中我显示了3个值的聚合,其中一个是保密的,那么该值应显示为红色文本。

我在多维数据集计算中有以下MDX查询来处理格式化:

CALCULATE;

SCOPE
(
  [Measures].[dataValue]
);

If([MyDegenDimension].[Classification].[Confidential]) Then
  Fore_Color(This) = 255
End If;

END SCOPE;

只要dataValue字段中的值不是零,这就很有效。如果我在我的数据透视表中向下钻取以显示恰好为零的单个值,则颜色格式不适用。业务要求是任何机密值都应标记为红色,并且零值可以保密是有效的。请注意,即使数据透视表中未使用分类维度,它也会将dataValue显示为红色。

我有什么方法可以改变我的MDX查询,以便它也适用于零值?我已经在这里Calculation in SSAS Cube not working for zero data values发布了类似的问题,但从未得到完整的解决方案。

1 个答案:

答案 0 :(得分:0)

我认为您的SCOPE声明只需要进行调整。

试试这个:

CALCULATE;

SCOPE
(
  [MyDegenDimension].[Classification].[Confidential], [Measures].[dataValue]
);

  Fore_Color(This) = 255

END SCOPE;