Hinzufügen von Parametern zum Bericht

In Reporting Services können Sie mithilfe von Parametern die in einem Bericht zu verwendenden Daten angeben, eine Verbindung zwischen verwandten Berichten herstellen und die Berichtspräsentation anpassen. Um einen Bericht zu erstellen, der Parameter effizient verwendet, müssen Sie sich zunächst damit vertraut machen, wie Parameter und Datasetabfragen zusammen funktionieren, wie Parameter und Ausdrücke zusammen funktionieren, wie Parameter auf dem Berichtsserver für einen veröffentlichten Bericht verwaltet werden können und für die Beantwortung welcher Fragen ein Bericht konzipiert ist. Die Auswahl, die Sie für die Parametrisierung treffen, kann sich auf den Berichtsentwurf und das Layout auswirken.

Einer Datasetabfrage werden Abfrageparameter über den Abfrage-Designer oder das Dialogfeld Dataseteigenschaften hinzugefügt. Nachdem Sie eine Abfrage mit Parametern erstellt haben, verknüpft Reporting Services Abfrageparameter automatisch mit Berichtsparametern desselben Namens. Neue Berichtsparameter werden hinzugefügt und über den Bereich Berichtsdaten geändert.

Verwenden von Parametern in Reporting Services

Die häufigste Verwendung von Parametern besteht darin, von Datasetabfragen abgerufene Berichtsdaten zu variieren. In diesem Szenario werden Benutzer beim Erstellen des Berichts zur Eingabe eines oder mehrerer Werte aufgefordert, und die Datasetabfrage ruft nur die Daten ab, die angefordert werden. Die Datasetabfrage umfasst Abfrageparameter, und Reporting Services erstellt automatisch entsprechende Berichtsparameter, die indirekt mit den Abfrageparametern verknüpft sind. Sie können die Eigenschaften der Berichtsparameter in den Berichts-Designer-Tools ändern und eine gültige Werteliste und eine Benutzeraufforderung, die zur Laufzeit angezeigt wird, einschließen.

Außerdem können Sie kaskadierende Parameter erstellen, die hierarchische Daten von einer Datenquelle abrufen. Der erste Parameter filtert beispielsweise die Produktkategorie und der zweite Parameter das Produkt. Kaskadierende Parameter werden verwendet, um die Anzahl von verfügbaren Werten für den Benutzer zu organisieren und einzuschränken.

Nicht alle Datenquellen unterstützen Abfrageparameter. Wenn Daten nicht an der Quelle gefiltert werden können, können Sie Berichtsparameter verwenden, um Benutzern die Fähigkeit zu verleihen, Daten zu filtern, nachdem diese für den Bericht abgerufen wurden. Während alle Abfrageparameter über entsprechende Berichtsparameter verfügen, können Sie Berichtsparameter in den Berichts-Designer-Tools unabhängig definieren. Mit Berichtsparametern kann auch die Darstellung oder Organisation eines Berichts geändert werden, nachdem die Daten abgerufen wurden.

Parameter dienen außerdem dazu, Berichte mit Unterberichten und Drillthroughberichten zu verknüpfen. Diese Berichtsparameter können ausgeblendet sein, wobei die richtigen Daten für den verknüpften Bericht mithilfe von Werten im Hauptbericht ausgewählt werden, oder sie können für den Benutzer zur Laufzeit sichtbar sein.

Nachdem ein Berichtsparameter erstellt wurde, können Sie die Standardwerte und andere Parametereigenschaften, z. B. Sichtbarkeit, ändern. Berichtsparameter können beispielsweise integrierte Variablen wie "UserID" verwenden, sodass es sich anbietet, einen Bericht mit einem ausgeblendeten Parameter zu erstellen, der spezifische Daten für den Benutzer, der den Bericht ausführt, auswählt. Parameter enthalten einzelne Werte oder mehrere Werte, verwenden eine gültige statische oder abfragebasierte Werteliste und akzeptieren NULL- oder leere Werte. Mehrwertige Parameter ermöglichen es Benutzern, mehr als einen Wert zur Laufzeit auszuwählen.

Nach Veröffentlichen eines Berichts können Parameter unabhängig von der Berichtsdefinition verwaltet werden. Je nachdem, wie Sie den Parameter im Bericht zur Entwurfszeit konfigurieren, können Berichtsserveradministratoren viele Parametereigenschaften im veröffentlichten Bericht ändern. Die Administratoren können auch Sätze von Parametern erstellen, die mit der gleichen Berichtsdefinition verknüpft werden, die den Bericht für mehrere Zielgruppen anpasst. Weitere Informationen finden Sie unter Festlegen von Parametereigenschaften für einen publizierten Bericht.

Sie können auch Berichte ausführen und Parameterwerte mit URL-Zugriff angeben. Weitere Informationen finden Sie unter Verwenden von URL-Zugriffsparametern.

SicherheitshinweisSicherheitshinweis

Verwenden Sie in einem Bericht, der einen Parameter vom Typ String enthält, eine Liste der verfügbaren Werte (wird auch als Liste der gültigen Werte bezeichnet), und stellen Sie sicher, dass Benutzer, die den Bericht ausführen, nur über die Berechtigungen verfügen, die zum Anzeigen der Daten im Bericht erforderlich sind. Wenn Sie einen Parameter vom Typ String definieren, wird den Benutzern ein Textfeld angezeigt, das jeden beliebigen Wert annehmen kann. Mit einer Liste der verfügbaren Werte werden die Werte eingeschränkt, die eingegeben werden können. Wenn der Berichtsparameter an einen Abfrageparameter gebunden ist und Sie keine Liste mit verfügbaren Werten verwenden, kann ein Benutzer des Berichts SQL-Syntax in das Textfeld eingeben. Damit öffnet er den Bericht und Ihren Server potenziell für einen SQL-Injection-Angriff. Wenn der Benutzer über Berechtigungen zum Ausführen der neuen SQL-Anweisung verfügt, können daraus unerwünschte Ergebnisse auf dem Server resultieren.

Wenn ein Berichtsparameter nicht an einen Abfrageparameter gebunden ist und die Parameterwerte im Bericht enthalten sind, können die Benutzer des Berichts Ausdruckssyntax oder eine URL in den Parameterwert eingeben und den Bericht für Excel oder HTML rendern. Wenn anschließend ein anderer Benutzer den Bericht anzeigt und auf die gerenderten Parameterinhalte klickt, führt der Benutzer möglicherweise unbeabsichtigt das bösartige Skript bzw. den bösartige Link aus.

Wenn Sie das Risiko des unbeabsichtigten Ausführens von böswilligen Skripts minimieren möchten, öffnen Sie gerenderte Berichte nur über vertrauenswürdige Quellen. Weitere Informationen zum Sichern von Berichten finden Sie unter Sichern von Berichten und Ressourcen.

In diesem Abschnitt