Mdx format_string para % no se multiplica por 100 cuando el signo de % está en la parte delantera

StackOverflow https://stackoverflow.com/questions/2241492

  •  19-09-2019
  •  | 
  •  

Pregunta

Para la siguiente consulta:

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]

Se devuelve lo siguiente:

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

Esto está causando problemas, ya que usamos la misma cadena de formato en .NET que una operación posterior al proceso (algún control requiere que hagamos esto), y se comporta como se esperaba (multiplicándola por 100 debido al signo %).

¿Es este comportamiento documentado? ¿O algún error oscuro? ¿O estoy haciendo algo mal/extraño? Siento el testPrepend El miembro también debe multiplicarse por 100, pero no lo es.

¿Fue útil?

Solución

El comportamiento documentado parece implicar que su método debería funcionar: http://msdn.microsoft.com/en-us/library/ms146084.aspx

Representa un porcentaje de marcador de posición. La expresión se multiplica por 100. El porcentaje de carácter (%) se inserta en la posición donde el porcentaje aparece en la cadena de formato.

Lo probé con números más grandes, para asegurar que la máscara se llene, solo parece ignorar el símbolo porcentual si es el primer carácter. ¿Quizás plantearlo con 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]
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top