Ich habe mich im Umfeld von MS SQL Server Reporting Services 2005 (und höher) oft gefragt, wie verschiedene Diagrammebenen übereinandergelegt werden können, um ein optisch einzelnes Diagramm mit Informationen und Effekten anzureichern, die mit einem Standarddiagramm nicht abbildbar sind.
Eine Kombination von Diagrammobjekten erlaubt bspw. das leichtere Zeigen von Vorjahreswerten, in einer anderen Schattierung und im Hintergrund leicht versetzt zu den aktuellen Werten. In der Standardfunktionalität der Diagramme ist das nicht möglich. Säulen werden immer nebeneinander gesetzt und können nicht im Hintergrund gegeneinander versetzt werden, wie in der Abbildung 1 zu sehen ist.

01_Blog_ChartArea2Abbildung 1:Diagramm ohne Überlagerung

 

Die grauen Säulen sind hier beispielhaft Vorjahresumsätze und die dunkelgrauen Säulen sind aktuelle Umsätze. Die rote Linie ist der durchschnittliche Umsatz der letzten 10 Jahre, welche für das Beispiel keine weitere Bedeutung hat. Der Ansatz, einfach zwei Diagrammobjekte im Report Designer übereinanderzulegen oder diese vorher in Rechtecke einzubetten, führt leider nicht zum Erfolg, da in HTML eine Überlagerung auf diese Weise nicht möglich ist. Die Lösung ist nicht offensichtlich, aber sie ist verhältnismäßig einfach. Das Diagrammobjekt selbst muss verändert werden:
Es gibt in jedem Diagramm die Collection der ChartAreas. Jedes Diagramm hat eine ChartArea, auf der das Diagramm gezeichnet wird. Der Entwickler kann mehr als nur eine ChartArea mit Hilfe der Eigenschaften (siehe Abbildung 2) hinzufügen.

02_Blog_ChartAreaAbbildung 2: ChartAreas in den Diagrammeigenschaften

 

Der wesentliche Vorteil ist, dass eine echte Überlagerung von ChartAreas möglich ist, so als wenn verschiedene Diagramme überlagert würden.
Ein Nachteil ist allerdings die fehlende Erreichbarkeit mit der Maus der hinteren ChartArea im Report Designer, um Einstellungen zu ändern. Eine Änderung muss daher über die ChartAreaCollection in der Eigenschaftenliste  durchgeführt werden. Einfacher geht es, indem zunächst eine ChartArea in den Vordergrund gerückt wird. Die Reihenfolge der Ebenen bzw. ChartAreas kann eingestellt werden, so dass nach den Anpassungen der einen ChartArea die andere ChartArea in den Vordergrund gerückt werden kann. In der Abbildung 3 befinden sich die Vorjahreswerte in einer zusätzlichen ChartArea, welche hinter der anderen leicht nach links versetzt ist.

Eine Kombination von verschiedenen Diagrammtypen, die sonst nicht in einem Standarddiagramm kombiniert werden können, ist bei der Überlagerungsform für verschiedene Anlässe denkbar. Das hier angeführte Beispiel ist nur ein Minibeispiel für die mit Chart Areas eröffneten Diagrammvisualisierungsmöglichkeiten.
Und das Beste daran: Eine Verlinkung ist für beide Säulenreihen möglich. Die Maus kann auch die hintere Säule „erreichen“. Deswegen können auch alle anderen zusätzlichen Informationen mit Verlinkungen versehen werden.