我有一个测量,我用它作为计算多个计算测量值的分母。用户通常会拖放分数,分母和计算度量来查看报告。
工作正常。但现在我想实现业务定义的抑制规则。例如:如果计算的%是< = 5,则分母值应显示为*。
我已经使用SCOPE语句来处理这个问题。但现在我最终为单分母度量定义了多个SCOPE语句。问题是,正如您必须已经猜到的那样,一个Scope语句的结果与为同一分母度量定义的其他范围语句发生冲突。
例如:尽管分母应该显示特定%计算的实际值,但它会用*来抑制它,因为使用相同分母度量的其他%计算返回< = 5值。
我的问题是:是否有可能通过MDX SCOPE或类似的方式找出哪些措施实际上正在使用,或者由用户在报告中拖放?
可能是一个愚蠢的问题,但请帮忙。或者给我一些不同的观点来解决这个问题。
谢谢,
帕里
答案 0 :(得分:1)
回答帖子中的部分内容“是否有可能找出实际使用的措施?”我建议这个技巧:SetToStr(StrToSet("Axis(1)"))
这将获得行(或列)上的项目列表,并将其作为字符串返回。在Micrsoft环境中,您可以使用InStr()
在此处搜索度量名称,并决定如何处理IIF()
。我希望这能给你一个起点!我有一种感觉,MDX会变得非常长而且非常混乱,会伤害你的大脑。
对于“如果计算的%是< = 5则分母值应显示为*”的问题的更简单的解决方案是向DLL添加一些代码,该代码在网页上呈现单元集。只需检测您是否在相关的Measure列中,然后检查单元格的值是< = 5并确定在该点输出给用户的内容。这可能会比MDX要求的伤害你的大脑。