SSRS: Sparklines in Tabellen

Über die Verwendung von Sparklines in tabellarischen Reports lässt sich sicherlich streiten. So gibt es die Befürworter, welche Sparklines in ihren Berichten nutzen, um kurz Trendverläufe darzustellen ohne dabei Hinweise auf konkrete Zahlen zu geben. Die Gegner hingegen finden, dass eben aus jenem Grund der Aussagegehalt von Sparklines zu gering ist und damit auch kein wirklicher Nutzen in tabellarischen Reports entsteht. Häufig sind die Sparklines in den Tabellenzeilen nicht einheitlich skaliert, dies führt schnell zu Fehlinterpretationen.

 

Sei’s drum, für alle die, die Sparklines nutzen möchten soll dieser Blogbeitrag als kleine Unterstützung bei der Entwicklung ihres Reports dienen.

 

Beispielhaft möchte ich dazu in den Microsoft SQL Server Reporting Services 2008R2 einen tabellarischen Report erstellen. Dieser zeigt Umsätze und Absatzmengen pro Monat und Produktkategorie an.

 

Hier das entsprechende SQL Statement:

 

SELECT  ’01-Januar‘ as Monat, ‚Fahrrad‘ as Produkt, CAST(1500.00 AS money) AS Umsatz, 20 as Menge

Union

SELECT  ’03-März‘ as Monat, ‚Fahrrad‘ as Produkt, CAST(1000.00 AS money) AS Umsatz, 15 as Menge

Union

SELECT  ’04-April‘ as Monat, ‚Fahrrad‘ as Produkt, CAST(2500.00 AS money) AS Umsatz, 24 as Menge

Union

SELECT  ’06-Juni‘ as Monat, ‚Fahrrad‘ as Produkt, CAST(3500.00 AS money) AS Umsatz, 35 as Menge

Union

SELECT  ’01-Januar‘ as Monat, ‚Helm‘ as Produkt, CAST(400.00 AS money) AS Umsatz, 10 as Menge

Union

SELECT  ’02-Februar‘ as Monat, ‚Helm‘ as Produkt, CAST(950.00 AS money) AS Umsatz, 22 as Menge

Union

SELECT  ’04-April‘ as Monat, ‚Helm‘ as Produkt, CAST(2500.00 AS money) AS Umsatz, 24 as Menge

Union

SELECT  ’05-Mai‘ as Monat, ‚Helm‘ as Produkt, CAST(900.00 AS money) AS Umsatz, 19 as Menge

Union

SELECT  ’06-Juni‘ as Monat, ‚Helm‘ as Produkt, CAST(550.00 AS money) AS Umsatz, 15 as Menge

Union

SELECT  ’01-Januar‘ as Monat, ‚Kleidung‘ as Produkt, CAST(3000.00 AS money) AS Umsatz, 35 as Menge

Union

SELECT  ’02-Februar‘ as Monat, ‚Kleidung‘ as Produkt, CAST(950.00 AS money) AS Umsatz, 22 as Menge

Union

SELECT  ’04-April‘ as Monat, ‚Kleidung‘ as Produkt, CAST(1500.00 AS money) AS Umsatz, 24 as Menge

Union

SELECT  ’05-Mai‘ as Monat, ‚Kleidung‘ as Produkt, CAST(3500.00 AS money) AS Umsatz, 35 as Menge

Union

SELECT  ’06-Juni‘ as Monat, ‚Kleidung‘ as Produkt, CAST(1200.00 AS money) AS Umsatz, 26 as Menge

 

Anhand des Statements können Sie bereits erkennen das wird nur einen Auszug von 6 Monaten betrachten und wir nicht für jeden Monat und jedes Produkt Umsatz- und Mengen-Werte ausweisen.

 

Für die Darstellung der Daten reicht eine einfache Tabelle aus. Diese kann in der Entwurfsansicht wie folgt aussehen:

 

 

Bevor wir die Sparkline in der Tabelle auf der Zeile der Produkte verwenden können, müssen wir in dieser Zeile eine Gruppierung einstellen. Diese Einstellung können Sie über das Kontextmenü der Detailzeile in den Zeilengruppen vornehmen. Öffnen Sie dazu die Gruppeneigenschaften und legen dort einen Gruppierungsausdruck fest.

 

 

In der Spalte Absatzentwicklung sollen anschließend die Mengen pro Monat dargestellt werden. Dazu wird aus der Toolbox das Element „Sparkline“ in die entsprechende Tabellenzelle gezogen. Es gibt verschiedenste Sparkline-Typen. Für das Beispiel wollen wir ein Säulendiagramm verwenden.

 

Die Sparklines haben ähnlichen den Standard-Diagrammen in den Reporting Services Diagrammdaten. Diesen weisen Sie folgende Daten zu:

 

 

Wenn Sie sich nun den Report in der Vorschau anzeigen lassen, sehen Ihre Sparklines wie folgt aus:

 

 

Sie sehen, dass in der ersten Zeile nur 4 Säulen und in den anderen 5 Säulen angezeigt werden. Die Daten, die im DataSet erzeugt werden sehen hingegen so aus:

 

 

Wie Eingangs hingewiesen gibt es nicht in jedem Monat entsprechende Werte. Mit den Standardeinstellungen der angelegten Sparkline können Sie jetzt aber  nicht mehr feststellen, welche Werte zu welchem Monat gehören.

 

Um die Sparklines zu skalieren, müssen Sie Anpassungen an der x- und y-Achse vornehmen. Klicken Sie dazu die Sparkline mit der rechten Maustaste an und öffnen Sie über das Kontextmenü das Eigenschaftsfenster für die vertikale Achse.

 

Nehmen Sie hier entsprechend der Abbildung die Einstellungen vor.

 

 

Mit dieser Einstellung erreichen Sie, dass die Säulen in der Höhe eine einheitliche Skalierung anhand der Mengenwerte in der Gruppe Tablix1 nutzen. Tablix1 ist die Gruppierung der gesamten Tabelleninhalte. Anschließend öffnen Sie noch die Eigenschaften der horizontalen Achse. Hier stellen Sie auch wieder die Achsenausrichtung ein.

 

 

Wenn Sie nun die Tabelle in der Vorschau öffnen sehen Sie, dass in den Monaten, in dem keine Verkäufe erzielt wurden, entsprechende Aussparungen vorhanden sind.

 

 

Mit diesen kleinen Einstellungen haben Sie ihre Trendverläufe richtig skaliert und ausgerichtet. Als Tipp an dieser Stelle möchte ich anmerken, dass es hilfreich ist, wenn Sie vor dem hinzufügen der Sparklines noch Rechtecke in den entsprechenden Zellen ablegen. Wenn Sie dann die Sparklines innerhalb des Rechtecks plazieren haben Sie den Vorteil, dass Sie ganz einfach die Größe der Sparklines anpassen können und auch eventuelle Renderfehler beim Ausführen des Berichts vermieden werden.

 

Schreibe einen Kommentar