MDX pour chaîne_format% ne se multiplie pas par 100 lorsque signe% est à l'avant
-
19-09-2019 - |
Question
Pour la requête suivante:
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]
Le suivant est renvoyé:
testNormal testPrepend testMidpend testAppend
0.1234 %.12 12%.34 12.34%
est à l'origine des problèmes, nous utilisons la même chaîne de format dans .NET comme une opération post-traitement (un certain contrôle nous oblige à le faire), et il se comporte comme prévu (multipliant par 100 en raison du signe%) .
Est-ce comportement documenté? Ou un bug obscur? Ou suis-je en train de faire quelque chose de mal / bizarre? Je sens le membre de testPrepend
devrait aussi être multiplié par 100, mais ce n'est pas.
La solution
Documenté le comportement semble impliquer votre méthode devrait fonctionner: http: // msdn .microsoft.com / fr-fr / bibliothèque / ms146084.aspx
Représente un espace réservé en pourcentage. L'expression est multipliée par 100. Le caractère pour cent (%) est inséré dans la position où le pourcentage apparaît dans la chaîne de format.
Je l'ai essayé avec un plus grand nombre, afin d'assurer le masque est rempli, il semble juste d'ignorer le symbole de pourcentage si elle est le premier caractère? Peut-être augmenter avec 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]