Maximalwerte in Diagrammen hervorheben

Ob es nun Maximalwerte oder Zielwerte sein sollen, ist an dieser Stelle unerheblich, es gibt aber eine einfache Möglichkeit diese in Diagrammen hervorheben zu lassen.

Gegeben ist also eine Abfrage, die z. B. für jeden Mitarbeiter einen Wert ermittelt. Diese Daten sollen als Linien- oder Balkendiagramm dargestellt werden, wobei der Maximalwert oder auch ein Zielwert hervorgehoben werden. Zuerst die Beispieldaten, welche ich in einer Abfrage mit dem Namen "Liniendiagramm" hinterlegt habe:

Select 1 as Wert, 10 as Max, 'Mitarbeiter_A' as x
Union All
Select 2 as Wert, 10 as Max, 'Mitarbeiter_B' as x
Union All
Select 7.5 as Wert, 10 as Max, 'Mitarbeiter_C' as x

Diese Abfrage verwenden wir in einem Bericht und fügen ein Liniendiagramm und ein Balkendiagramm hinzu. Als Datenfelder hinterlegen wir jeweils "[Sum(Wert)]" und als Kategoriefelder natürlich die Mitarbeiternamen "[x]". Das Ergebnis sieht dann ungefähr so aus:

Als nächstes wollen wir den Maximalwert markieren. Im Liniendiagramm geschieht dies über die Y-Achse, im Balkendiagramm über die X-Achse. Nachdem man die richtige Achse ausgewählt hat, gibt es bei den Eigenschaften den Bereich "Darstellung". Dort gibt es StripLines, welche eine Auflistung sind. Nach Auswahl des Buttons mit den drei Punkten erscheint ein neues Fenster. Dort fügt man ein neues Member hinzu und setzt folgende Werte:

  • ToolTip "Zielwert"
  • BackgroundColor "Red"
  • IntervallOffset "= Max(Fields!Wert.Value, "Liniendiagramm")"
  • StripWidth "10"

Als Ergebnis erhält man eine rote Linie mit dem ToolTip "Zielwert" auf Höhe des maximalen Wertes der Mitarbeiter. Das ganze sieht dann so aus:

Alternativ können wir auch das Feld "Max" aus der Abfrage für diese Markierung verwenden. Dazu markieren wir wieder die Achse und ändern die StripLine wie folgt:

  • IntervallOffset "= Max(Fields!Max.Value, "Liniendiagramm")"

Im Bereich Skalierung (der Achse) setzen wir den Wert für das Maximum statt auf "Auto" diesmal manuell über eine Zuweisung. Damit die StripLine überhaupt sichtbar ist, muss der Maximalwert der Achse etwas größer als die StripLine sein, was hier durch Addition von 1 erreicht wird:

  • Maximum "= Max(Fields!Max.Value, "Liniendiagramm") + 1"

Das Ergebnis ist ein Diagramm mit einem Zielwert unabhängig von den dargestellten Werten der einzelnen Mitarbeiter.

Falls wir sichergehen wollen, dass auch in dem ersten Beispiel die StripLine stets sichtbar ist, müssen wir auch dort den Maximalwert manuell setzen. In diesem Beispiel mit dem Maximalwert 7.5 skaliert die Achse idealerweise bei 8 und erspart uns damit die Mühe.