当%符号位于前面时,%的MDX format_string不会乘以100

时间:2010-02-11 00:47:13

标签: .net ssas mdx format-string

对于以下查询:

with 
member testVal as 0.1234
member testNormal as testVal
member testPrepend as testVal, format_string="%##.00"
member testMidpend as testVal, format_string="##%.00"
member testAppend as testVal, format_string="##.00%"
select { testNormal, testPrepend, testMidpend, testAppend} on axis (0)
from [SomeRandomPlace]

返回以下内容:

testNormal  testPrepend     testMidpend     testAppend
0.1234      %.12            12%.34          12.34%

这会导致问题,因为我们在.NET中使用与后处理操作相同的格式字符串(某些控件要求我们执行此操作),并且它的行为与预期一致(因为%符号将其乘以100)

这是记录在案的行为吗?还是一些不起眼的bug?或者我做错了什么/很奇怪?我觉得testPrepend成员也应该乘以100,但事实并非如此。

1 个答案:

答案 0 :(得分:2)

记录的行为似乎意味着您的方法应该有效:http://msdn.microsoft.com/en-us/library/ms146084.aspx

  

表示占位符百分比。   表达式乘以100。   插入百分比字符(%)   在百分比的位置   出现在格式字符串中。

我已经尝试过更大的数字,以确保掩码被填充,它似乎忽略百分比符号,如果它是第一个字符?也许用MS Connect提高它?

with 
member testVal as 13.1234
member testNormal as testVal
member testFront as testVal, format_string = "%##.00"
member testFrontBack as testVal, format_string = "%##.00%"
member testString as testVal, format_string="Percent"
member testSymbol as testVal, format_string="%"
member testStringSymbol as testVal, format_string="%Percent" //Lol
select { testNormal, testFront, testFrontBack, testString, testSymbol, testStringSymbol} on axis (0)
from [Cube]