MDX format_string для% не умножается на 100, когда знак% находится спереди - PullRequest
2 голосов
/ 11 февраля 2010

Для следующего запроса:

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 из-за знака%) .

Это документированное поведение? Или какая-то неясная ошибка? Или я делаю что-то не так / странно? Я чувствую, что член testPrepend также должен быть умножен на 100, но это не так.

1 Ответ

2 голосов
/ 24 февраля 2010

Документированное поведение подразумевает, что ваш метод должен работать: 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]
...