Verknüpfte Berichte, Verlinkungen auf einen anderen Bericht, Unterberichte – wie spielen diese zusammen bzw. was gibt es dabei zu beachten? Gibt es Unterschiede zwischen nativen und SharePoint Modus? – Darum soll es in diesem Beitrag gehen.

Zunächst einmal eine kurze Begriffsklärung:

Verknüpfte Berichte (Englisch: Linked Reports) gibt es nur im nativen Modus von SSRS. Ein Linked Report ist ein Link auf eine RDL-Datei auf einem Server mit eigenem Parametereinstellungen. Das bedeutet, dass bei einem Linked Report Parameterwerte, Parametersichtbarkeit und Parameterbezeichnung geändert werden können. Im SharePoint Modus wird die Funktion der Linked Reports durch Webparts ersetzt (z. B. dem Report Viewer Web Part).

Verlinkungen auf einen anderen Bericht (Link/Drillthrough) funktionieren ähnlich wie Hyperlinks in Webseiten. Die Verlinkung kann in den Eigenschaften zum Beispiel von Diagrammen und TextBoxen festgelegt werden: Action –> Go to Report

Links, Linked Reports, Subreports

Dann einen Bericht aus der vorgegebenen Liste auswählen (Specify a report) und die zu übergebenen Parameter angeben (Use these parameters to run the report –> Add). Fertig. Mit Linked Reports kann das etwas anders aussehen, aber dazu später.

Ein Unterbericht (Subreport) wird immer dann benutzt, wenn der Inhalt eines anderen Berichts innerhalb des Berichts angezeigt werden soll. Der Bericht erscheint dann “eingebettet” in dem anderen Bericht. Das ist etwa vergleichbar mit Frames in Webseiten. Kopf- und Fußzeile des Unterberichts werden dabei ausgespart. Für Unterberichte kann ebenfalls der Bericht aus der vorgegebenen Liste ausgewählt werden (Use this report as a subreport).

image

Allerdings fehlt hier das “fx” – also die Möglichkeit, anstelle der Listenauswahl einen selbstdefinierten Ausdruck zu hinterlegen.

Das ist weiter kein Problem. Es sei denn, es wird mit Linked Reports gearbeitet (nativer Modus) und die Linked Reports liegen in einem anderen Report Server Ordner als die Quelldatei. Dann wird das “fx” in den Action Optionen für die Verlinkungen interessant. Liegt nämlich der Linked Report in einem Ordner B, dann würde die Verlinkung wie sie oben beschrieben ist, den Bericht aus dem ursprünglichen Ordner A aufrufen. Es soll aber – quasi ein Selbstaufruf – der verlinkte Berichte aus Ordner B aufgerufen werden. Um nun zu erreichen, dass die Verlinkung im Linked Report ebenfalls im Ordner B aufgerufen wird, muss in den Action Optionen bei “Specify a report” das “fx” geklickt und folgendes eingetragen werden:

=Globals!ReportFolder + “/” + Globals!ReportName

Dieser Ausdruck gibt den vollständigen Pfad zum Bericht auf dem Report Server zurück. Globals!ReportFolder gibt den Pfad zum Bericht, Globals!Reportname den Namen des Berichts.

Soll der Bericht außerdem sowohl im nativen, als auch im SharePoint Modus funktionieren, so muss der Ausdruck in der Verlinkung noch ergänzt werden:

iif(InStr(Globals!ReportServerUrl, “SSRS”) = 0, “”, “.rdl”)

Hier wird ausgenutzt, dass die URL im SharePoint Modus ein “SSRS” enthält. Im SharePoint Modus funktionieren die Verlinkungen nur mit der Dateiendung “.rdl”. Im nativen Modus funktionieren sie nur ohne Dateiendung.

Der vollständige Ausdruck für eine Verlinkung auf sich selbst bei einem verlinkten Bericht, der in einem anderen Ordner liegt als die Quelldatei und außerdem sowohl im nativen, als auch im SharePoint Modus funktionieren soll, sieht dann so aus:

=Globals!ReportFolder + “/” + Globals!ReportName + iif(InStr(Globals!ReportServerUrl, “SSRS”) = 0, “”, “.rdl”)

Alles klar? Verlinkte Berichte werden in SharePoint durch Webparts ersetzt. Damit entfällt bei Verlinkungen des Berichts auf sich selbst die Angabe des vollständigen Pfads, da es ja nur noch einen Ordner mit den Quelldateien gibt.