【发布时间】:2014-10-20 01:48:28
【问题描述】:
我正在使用 SSAS 2008 R2 多维数据集并通过 Excel 2010 查询数据。在多维数据集中,我有一个计算来有条件地格式化数据。逻辑是,如果一个度量包含正在查看的事实的特定值,那么该事实应该被涂成红色,如下所示:
CALCULATE;
SCOPE
(
[Measures].[Data value]
);
If([Fact Base].[Confidentiality Status].[Confidential]) Then
Fore_Color(This) = 255
End If;
END SCOPE;
当我的 [数据值] 为 0(零)时,Excel 中的 fore_color 不会呈现为红色。如果我将数据值更改为零以外的任何值,并重新处理它呈现为红色的多维数据集。是我遗漏了什么,还是有更好的MDX 脚本也适用于零值?
【问题讨论】:
-
你确定发生错误渲染的值真的是 0 吗?还是它们可能为空(即缺失记录)?
-
@FrankPl 是的,我什至尝试将数据从 0 更改为其他值,然后重新处理多维数据集。当我这样做时,颜色按预期呈现(即红色)。当我改回 0 时,它不再存在了。
-
我不确定这是 Excel 还是 Analysis Services 问题。您能否从 Management Studio 运行 MDX 查询,在该语句的最后附加
CELL PROPERTIES VALUE, FORMATTED_VALUE, FORE_COLOR(在所有 FROM 和 WHERE 子句之后),然后在结果中双击包含零的单元格以查看 FORE_COLOR 属性值? -
@FrankPl 这绝对是一个在 Analysis Services 或 Excel 中可见的问题。当我单击 SSMS 中的 0 值时,返回的单元格属性显示 FORE_COLOR = (null)。这些值也显示为黑色而不是红色。我还检查了机密状态的值是“机密”,这应该导致 FORE_COLOR 为 255。
-
Data value是计算的还是物理的?它是否可能在计算脚本的其他地方被覆盖?