2017-04-21 3 views
0

Ich habe eine SSRS Expression, die ich, wenn der Score < .85 Schriftfarbe ist rot, sonst schwarz ist, muss ich Farbe, sonst schwarz. Die Ausgabe zeigt einen Dezimalstellenwert von 1 (z. B. 85,0%, 83,1% ') an, aber wenn der Wert .849 ist, ändert sich die Farbe in Rot, da der Wert auf 85,0% gerundet und in Schriftfarbe Rot geändert wird. Gibt es eine Syntax, dass die Schriftfarbe nicht in Rot geändert wird, wenn der Wert 85.0% beträgt?SSRS Farbcodierung Wert über Ausdruck

=IIF(Fields!CompositeScore.Value < .85,"Red","Black") 

enter image description here

Antwort

0

Ich denke, etwas nicht ganz richtig in Ihrem Szenario ist seit 0.849 84,9% (gerundet auf einen einzigen Prozent Dezimalpunkt) sein würde. Unter der Annahme, dass Sie den Dezimalwert tatsächlich auf drei Dezimalstellen runden, würde der Wert 0.8497 das Problem verursachen, das Sie beschreiben.

Für das Szenario CompositeScore = 0,8497, würde ich die gleiche Rundung Logik zum Farbausdruck gelten, dass die Anzeige wie so ausführt:

=IIF(Round(Fields!CompositeScore.Value * 100)/100 < 0.85, "Red", "Black") 

Da SSRS hat nur eine Funktion, um eine Dezimalstelle auf die nächste abzurunden Ganzzahl (keine Möglichkeit, die Genauigkeit anzugeben), Sie müssen zuerst die Zahl mit 100 multiplizieren, um die zwei Dezimalstellen zu erhalten, und dann erneut durch 100 dividieren, um zum ursprünglichen Wert zurückzukehren. Weitere Details finden Sie unter folgendem Link:

MSDN Article Describing Rounding Precision