Für ein Quartalsreporting soll eine 150-seitige Berichtsmappe erstellt werden. Es gibt strenge Design- und Inhaltsvorgaben. Außerdem gibt es 15 SSRS Reports, die sich in der Berichtsmappe mit verschiedenen Reportparametern wiederholen sollen. Diese Parameter sind Berichtszeitraum, der zugehörigen Märkte, Produkte sowie Region. Die Berichtsmappe hat zudem ein Deckblatt, Inhaltsverzeichnis und mehrere Seiten im Anhang. Die Berichtsmappe soll sowohl im Browser als auch im Export nach PDF in ansprechender Darstellung funktionieren.
Lässt sich eine solche Berichtsmappe mit SSRS darstellen? Wie wird das gesteuert? Führt die Generierung zu einem Time Out der Report Engine? Um diese und weitere Fragen wird es im Folgenden gehen.
Nachdem es im ersten Teil um die Datenbank zur Generierung der Berichtsmappe ging, wird sich dieser Beitrag nun dem Steuerungsbericht widmen. Dabei wird nur auf die wesentlichen Punkte eingegangen, die bei der Erstellung des Steuerungsberichts beachtet werden müssen.
2. Der Steuerungsbericht
Der Bericht zur Steuerung der Zusammensetzung der Berichtsmappen ist eine gewöhnliche RDL-Datei. Die Datei hat als Datenquelle die Steuerungsdatenbank, aus der sie mittels einer View die Berichtsmappendaten abruft. Gegebenenfalls kann auch die Datenquelle der Reports vom Steuerungsbericht aufgerufen werden, etwa wenn im Steuerungsbericht neben den Aufrufen der Unterberichte noch weitere Informationen angezeigt werden sollen. Oder wenn bei den Aufrufen der Unterberichte noch zusätzliche Informationen mitgegeben werden sollen.
Der Steuerungsbericht erhält aus der Steuerungsdatenbank Informationen für mindestens die folgenden Parameter:
- Zeit – zur Auswahl des Berichtszeitraums
- Berichtsmappe – Auswahl der Berichtsmappe
- Markt – einer oder mehrere, über die berichtet wird
- Region – Auswahl der Regionen, über die berichtet wird
- Report – Auswahl der Reports, die in der Berichtsmappe enthalten sind
Aus den Parametern wird deutlich – der Inhalt der Berichtsmappe lässt sich über den Steuerungsbericht noch erheblich beeinflussen. So wird zum Beispiel bei Auswahl aller Elemente aus den Parameterlisten für Markt, Region und Report die Berichtsmappe in vollem Umfang generiert. Werden hingegen nur bestimmte Elemente angewählt, zum Beispiel nur eine Region oder nur drei von 15 Reports, so wird die Berichtsmappe in entsprechend eingeschränktem Umfang erstellt.
Nachdem die Datensets und die Parameter für den Steuerungsbericht stehen, soll es nun um das Layout des Berichts gehen. Dafür genügt in einer einfachen Variante eine Tablix. Die Tablix erhält das Datenset mit den Informationen aus der Steuerungsdatenbank. In dieser Tablix werden dann die 15 SSRS Reports als Unterberichte aufgerufen. Zuvor müssen der Tablix aber noch mehrere Zeilengruppen hinzugefügt werden.
Je nach Aufbau der Berichtsmappe, kann die Reihenfolge der Gruppierungen anders aussehen. Einmal festgelegt, gilt sie für alle Berichtsmappen, die mit diesem Steuerungsbericht erstellt werden. Auch hierfür ließe sich eine flexiblere Lösung finden.
In diesem Beispiel wird zuerst über die Region gruppiert, dann über den Markt und die Seitennummer. Außerdem gibt es für jeden der 15 SSRS Reports, die als Unterberichte aufgerufen werden, eine eigene Gruppe.
Warum ist die Seitennummer eine Zeilengruppe? Mit dieser Gruppe lässt sich die Reihenfolge der nachfolgenden Reports beeinflussen. Ohne diese Gruppe wäre es nicht möglich, zum Beispiel für eine bestimmte Region den Report 3 vor dem Report 1 in der Berichtsmappe erscheinen zu lassen.
In den Zeilengruppen für die Reports werden nun noch Filtereinstellungen vorgenommen.
Hinter dem Ausdruck im Value Feld verbirgt sich der Name des Reports. Dadurch wird erreicht, dass die Zeilengruppe nur dann aktiv wird, wenn die Datenzeile aus dem Steuerungsdatenset diesen Report referenziert. Mit anderen Worten – für jede Datenzeile aus dem Steuerungsdatenset wird nur eine der 15 Zeilengruppen für die Reports angezeigt.
Nun müssen in den Zeilengruppen für die Reports noch die Aufrufe der Unterberichte eingebaut werden. Dafür wird in jeder Zeilengruppe ein Subreport Element eingefügt. Das Subreport Element wird mit einem der 15 SSRS Reports verknüpft. Die Parameter werden wie gewohnt weitergereicht – entweder aus dem Steuerungsdatenset (dafür wurden in der Datenbank die eindeutigen Elementnamen hinterlegt – siehe “Automatische Generierung von Berichtsmappen für ein Quartalsreporting – Teil 1”), oder es wird ein Standardwert übergeben.
Damit ist das grobe Gerüst für die Generierung der Berichtsmappe fertig. Die Ausführung des Steuerungsberichts generiert eine Berichtsmappe, die die 15 SSRS Reports für den gewählten Zeitraum über die angegebenen Regionen und Märkte iteriert. Bei 10 Regionen und einem Markt ist das Ergebnis 150 Seiten stark. Es kann im Browser durchgeblättert oder nach PDF exportiert werden. Deckblatt, Inhaltsverzeichnis und Anhang runden den Steuerungsbericht zu einer kompletten Quartalsberichtsmappe ab.