1

我有一个度量值,我将其用作计算多个计算度量值的分母。用户通常拖放分子、分母和计算度量来查看报告。

它工作正常。但是现在我想实现业务定义的抑制规则。例如:如果计算的 % <=5,则分母值应显示为 *。

我已经使用 SCOPE 语句来处理这个问题。但是现在我最终为单分母度量定义了多个 SCOPE 语句。问题是,正如您一定已经猜到的那样,一个范围声明的结果与为相同分母度量定义的其他范围声明发生冲突。

例如:即使分母应该显示特定 % 计算的实际值,它也会用 * 抑制它,因为使用相同分母度量的其他 % 计算返回 <=5 值。

我的问题是:是否有可能通过 MDX SCOPE 或类似的东西找出实际使用的度量值,或者用户在报告中拖放的度量值?

可能是一个愚蠢的问题,但请帮忙。或者给我一些不同的观点来解决这个问题。

谢谢,

招架

4

1 回答 1

1

回答您帖子中“是否有可能找出实际使用的措施?”的部分。我建议这个技巧:SetToStr(StrToSet("Axis(1)"))

这将获取行(或列)上的项目列表并将其作为字符串返回。在 Micrsoft 环境中,您可以使用它InStr()来搜索 Measure 名称,并决定如何处理IIF(). 我希望这能给你一个起点!我有一种感觉,MDX 可能会变得很长而且很乱,会伤害你的大脑。

“如果计算的 % 为 <=5,则分母值应显示为 *”问题的更简单解决方案是向 DLL 添加一些代码,以在网页上呈现单元集。只需检测您是否在相关 Measure 的列中,然后检查单元格的值是否 <=5 并决定在该点向用户输出什么。这可能对您的大脑造成的伤害小于所需的 MDX。

于 2012-09-12T08:51:46.093 回答