1

我有3个措施:

[Measures].[Some Count] with FORMAT_STRING="#,0"
[Measures].[Some Amount] with FORMAT_STRING="Currency"
[Measures].[Some Percent] with FORMAT_STRING="Percent"

SCOPE 用于更改所有度量的值,让我们这样说:

SCOPE ([Dimension 1].[Hierarchy 1].[Level 1]);
THIS = IIF(<some condition>,<change>,<not change>);
FORMAT_STRING(THIS) = ???
END SCOPE;

问题:[维度 1] 上层的度量格式错误。12345 而不是 12,345 等。

可能的解决方案:更改为 IIF(Measures.CurrentMember is [Measures].[Some Count],"#,0" etc.)

缺点:

  1. 措施列表创建,它的支持(如果smth改变了,不要忘记在这里改变等等)
  2. 没有机会使用一组度量(即使在 SSAS 浏览器中)。

有没有办法动态设置度量格式?

更新:实际上,实际项目中有数百个措施,所以我试图避免措施列表。

4

2 回答 2

0

我不确定你想要什么,但你可以尝试使用:

FORMAT_STRING([Measures].[Cost])='"£"#,0'; 

在你的范围之后。

于 2014-10-09T12:58:11.713 回答
0

您可以将格式保留在成员属性中并传递它...

format_string(this) = (existing [Dimension 1].[Format].[Format]).item(0).membervalue;
于 2021-03-11T05:20:04.083 回答