2017-02-07 1 views
0

Ich möchte die Y-Achsenbeschriftungen eines mit Microsoft ReportViewer geplotteten Diagramms anpassen. Was ich will, ist eine Logik haben, wie folgt aus:Microsoft ReportViewer: Anpassen von Y-Achsen-Beschriftungen an ein bestimmtes Format

If (value>1000000) 
    return value/1000000 & "M" 
else 
    return value 

Zum Beispiel, wenn der Wert des Etiketts 12000000 dann wird der Etikettenwert 12M sein, andernfalls, wenn der Markierungswert 1200 wird der Wert 1200 bleiben .

ich habe versucht, so etwas wie das numerische Format anpassen diese Art von Verhalten zu erhalten tring:

= iif(value>1000000,value/1000000 'M',value) 

(kontextualisieren meine Frage zu helfen, über dieses Fenster zu sprechen, ich bin =>https://dotnetblurb.files.wordpress.com/2012/05/3.jpg)

aber wie erwartet, hat es nicht funktioniert.

Googling hat nicht viel geholfen, es scheint, als ob diese Art der Anpassung einfach nicht möglich ist. Oder ist es?

Vielen Dank!

Antwort

0

Ich habe dieses Problem gelöst, indem ich sowohl die Ausdrücke Fenster als auch den Inhalt der Datenquelle des Graphen änderte.

Bei dem Verfahren die Datenquelle Füllen habe ich die Logik große Zahlen in kleinere Zahlen konvertieren:

reportModel.MillionsSymbol = ""; 
if (reportModel.TotalValue > 1000000) 
{ 
     reportModel.TotalValue /= 1000000; 
     reportModel.MillionsSymbol = "M "; 
} 

Ich habe auch die neue MillionsSymbol Feld meiner Datenquelle und ich ändern Sie den Inhalt auf der Grundlage des totalvalue.

Dann kann ich dieses neue Feld im Dialog Vertikale Achseneigenschaften verwenden -> Number -> Kategorie [custom]

="0.00" & Fields!MillionsSymbol.Value 

Expressions window

Der hier Trick ist, dass ich einen Ausdruck geschrieben, das ist Rückgabe einer Zeichenfolge, die die Zeichenmaske enthält, die von der Funktion benötigt wird, die die Beschriftung der Achsennummern formatiert. In dieser Zeichenfolge kann ich alles einfügen, solange es die Maske enthält (0.00, #. ##, ...).

Mit dieser Methode kann eine Variable mit dem Wert verkettet werden, der als Beschriftung für jeden Tick der vertikalen Achse des Diagramms angezeigt wird. Es erlaubt mir nicht, an diesem Wert zu arbeiten, da ich keine Möglichkeit gefunden habe, darauf zuzugreifen. Aus diesem Grund habe ich die Werte in der Datenquelle geändert. Auf diese Weise ändere ich den Wert der Graph-Punkte und dann stimmt die vertikale Achse mit den Werten überein.

Endergebnis:

enter image description here

* Bild für Klarheit bearbeitet

Verwandte Themen