Verwenden von Parametern zum Steuern von Berichtsdaten

Berichtsparameter filtern normalerweise Berichtsdaten, die aus einer Datenquelle abgerufen werden. Durch das Filtern der Daten in der Datenquelle kann die Leistung beim Verarbeiten und Anzeigen eines Berichts verbessert werden. Wenn Daten einmal nicht an der Quelle gefiltert werden können, können Sie Parameter verwenden, um die Berichtsdaten nach dem Abrufen zu filtern. Außerdem können Sie die Daten in einem Bericht auf Grundlage von Berichtsparametern sortieren und gruppieren.

Filtern von Daten in der Datenquelle

Verwenden Sie in Ihrer Datasetabfrage Abfrageparameter, um Daten in der Datenquelle zu filtern. Für jeden Abfrageparameter erstellt Reporting Services einen entsprechenden Berichtsparameter. Wenn der Benutzer Werte für die Berichtsparameter auswählt, werden die Werte an die Abfrage übergeben. Wenn die Abfrage in der Datenquelle ausgeführt wird, werden nur die vom Benutzer angegebenen Werte für den Bericht abgerufen. Eigenschaften wie eine Benutzereingabeaufforderung und Standardwerte werden auf den Berichtsparameter angewendet.

Abfrageparameter

Beim Definieren von Abfrageparametern werden automatisch Berichtsparameter erstellt. Im Berichts-Generator werden Berichtsparameter automatisch erstellt, wenn Sie eine Eingabeaufforderung für eine Filterklausel festlegen.

Bei der Definition eines Datasets geben Sie einen bestimmten Typ von Datenquelle an, beispielsweise MicrosoftSQL Server. Der Berichts-Designer öffnet einen Abfrage-Designer, der für die Zusammenarbeit mit diesem Datenquellentyp vorgesehen ist. Wenn Sie die Abfrage für die einzelnen Datasets definieren, identifiziert der Abfrage-Designer die Variablen im Befehlstext der Abfrage und erstellt zu jeder Variablen einen Abfrageparameter. Nicht jede Datenquellen- und Datenanbieterkombination unterstützt Abfragen mit Variablen. Weitere Informationen zu der von der Datenquelle erwarteten Abfragesyntax finden Sie unter Verwenden von Abfrageparametern mit bestimmten Datenquellen (Reporting Services).

Bei einer SQL Server-Datenquelle enthält die Abfrage in der Regel Variablen in der WHERE-Klausel einer Transact-SQL-Anweisung, um den von der Abfrage zurückzugebenden Datenbereich einzuschränken. Entsprechend enthält die Abfrage für eine Analysis Services-Datenquelle in der Regel MDX-Variablen in einer FILTER-Klausel. Abfragen können auch Variablen enthalten, die als Eingabe an gespeicherte Prozeduren oder benutzerdefinierte Funktionen übergeben werden.

Nach jeder Änderung der Abfrage für ein Dataset wird die Abfrage erneut verarbeitet. Wenn Sie eine Abfrage ändern, indem Sie eine Variable entfernen oder umbenennen, spiegeln sich diese Änderungen in den Abfrageparametern wider.

Auf der Seite Parameter des Dialogfelds Dataseteigenschaften können Sie weitere Datasetparameter erstellen. Parameter, die Sie erstellen, werden nicht geändert, wenn sich die Abfrage ändert.

Der Standardwert jedes Abfrageparameters wird auf einen Ausdruck festgelegt, der zum entsprechenden Berichtsparameter ausgewertet wird. Auf der Seite Parameter des Dialogfelds Dataseteigenschaften können Sie den Standardwert ändern. Wenn z. B. für eine SQL Server-Datenquelle der Abfrageparameter @MyParameter lautet, ist der Berichtsparameter MyParameter, und der Wert von @MyParameter wird auf den Ausdruck [@MyParameter] festgelegt. Weitere Informationen finden Sie unter Dataseteigenschaften (Dialogfeld), Parameter. Sie können die Abfrageparameter manuell bearbeiten und ihre Standardwerte festlegen. Weitere Informationen finden Sie unter Vorgehensweise: Zuordnen eines Abfrageparameters zu einem Berichtsparameter.

Berichtsparameter, die automatisch erstellt werden, verwenden die folgenden Standardwerte:

  • Einzelwert

  • Datentyp Text

  • Auf den Namen des Parameters eingestellte Eingabeaufforderung

  • Keine Standardwerte

  • Keine verfügbaren Werte

Möglicherweise müssen Sie diese Eigenschaften auf Grundlage des Datentyps des Abfrageparameters ändern. Weitere Informationen finden Sie unter Erstellen von Berichtsparametern und Festlegen von Berichtsparametereigenschaften.

HinweisHinweis

Wenn Sie den Namen eines Abfrageparameters entfernen oder ändern, wird der entsprechende Berichtsparameter nicht automatisch mit entfernt bzw. umbenannt. Wenn Sie einen Abfrageparameter entfernen und den entsprechenden Berichtsparameter nicht benötigen, müssen Sie ihn manuell löschen. Wenn Sie den Namen eines Abfrageparameters ändern, wird beim Speichern der Abfrage ein entsprechend neuer Berichtsparameter erstellt. Sie können den Berichtsparameter umbenennen, sodass er dem neuen Abfrageparameternamen entspricht, und die Dataset-Parametereigenschaften aktualisieren, um den Abfrageparameter mit dem Berichtsparameter zu verknüpfen.

Abhängige oder kaskadierende Parameter

Wenn Sie eine Abfrage erstellen, die mehrere Abfrageparameter verwendet, können Sie einen Satz kaskadierender Parameter erstellen. Kaskadierende Parameter bieten eine Möglichkeit, eine sehr große Anzahl von Parameterwerten so zu filtern, dass eine verwaltbare Anzahl von Werten übrig bleibt. Angenommen, eine Abfrage enthält die Parameters @Kategorie, @Unterkategorie und @Produkt, wobei die Liste der Unterkategorien von der @Kategorie und die Liste der Produkte von der @Unterkategorie abhängig ist. Wenn ein Benutzer einen Wert für den Berichtsparameter "Kategorie" auswählt, werden die Werte für die Unterkategorie auf die gültigen Werte für die ausgewählte Kategorie beschränkt. Nachdem der Benutzer einen Wert für die Unterkategorie ausgewählt hat, wurde die Auswahl für "Produkt" bereits durch die Auswahl der Kategorie und der Unterkategorie gefiltert. Auf diese Weise können Sie die gültige Auswahl für einen Parameter auf eine angemessene Anzahl von Werten herabreduzieren.

Um kaskadierende Parameter zu entwerfen, müssen Sie die folgenden Elemente in den Bericht einschließen:

  • Die Hauptdatasetabfrage, die über mehrere verwandte Abfrageparameter verfügt.

  • Eine geordnete Liste von Berichtsparametern, die jeweils an einen Abfrageparameter gebunden sind. In der Regel werden diese automatisch aus der Hauptabfrage erstellt. Jeder abhängige Parameter muss dem Parameter folgen, von dem er abhängig ist. Die Reihenfolge der Parameter kann im Bereich Berichtsdaten geändert werden, in dem Sie die Parameter in der Auflistung nach oben und unten verschieben können. Weitere Informationen finden Sie unter Vorgehensweise: Ändern der Reihenfolge von Berichtsparametern (Reporting Services).

  • Ein separates Dataset für jeden Berichtsparameter, das seine verfügbaren Werte bereitstellt. Es ist wichtig, dass für jeden Abfrageparameter dieselbe Schreibweise (Groß-/Kleinschreibung) verwendet wird, damit die Abfrage- und Berichtsparameter auch richtig verknüpft werden. Die Abfrage für jeden Satz verfügbarer Werte für die einzelnen Berichtsparameter darf nur Werte zurückgeben, die im Kontext der Hauptabfrage einen Sinn ergeben.

Im Beispiel ist der Berichtsparameter "Produkt" abhängig von der Unterkategorie, die wiederum von der Kategorie abhängig ist. Die Kategorie muss an erster Stelle stehen, gefolgt von der Unterkategorie und dann vom Produkt. Die Abfrage für das Dataset, das verfügbare Werte für die Kategorie bereitstellt, muss alle Kategorien anzeigen, die für die Hauptabfrage gültig sind. Die Abfrage, die nach der Auswahl einer Kategorie verfügbare Werte für die Unterkategorie bereitstellt, sollte Werte liefern, die für die ausgewählte Kategorie gültig sind sowie allen Beschränkungen durch die Hauptabfrage entsprechen.

Weitere Informationen finden Sie unter Vorgehensweise: Hinzufügen von kaskadierenden Parametern zu einem Bericht (Reporting Services).

Filtern von Berichtsdaten nach Ausführung einer Abfrage

Sie können auch Berichtsparameter erstellen und diese in Filterausdrücken zum Filtern von Daten in einem Berichtsdataset, einem Datenbereich oder einer Tablix-Gruppe verwenden. Weitere Informationen finden Sie unter Filtern von Daten in einem Bericht und Vorgehensweise: Hinzufügen von Filtern (Reporting Services).

Berichtsparameter werden beim Verfassen des Berichts in die Berichtsdefinition integriert, können aber auch nach der Veröffentlichung des Berichts unabhängig verwaltet werden. Nachdem der Bericht veröffentlich wurde, können Sie Parametereigenschaften über den Berichts-Manager ändern. Weitere Informationen finden Sie unter Festlegen von Eigenschaften für einen veröffentlichten Bericht.

Verwenden von schnell veränderlichen gültigen Werten für einen Parameter

Wenn Sie verfügbare Werte angeben, die sich schnell ändern, können die Werte veraltet sein, bevor der Bericht ausgeführt wird. So kann ein Benutzer einen Wert aus der Liste auswählen, der zu dem Zeitpunkt, zu dem der Benutzer den Wert absendet und den Bericht ausführt, nicht mehr gültig ist. Um dies zu vermeiden, sollten Sie Abfragen so schreiben, dass sich die zurückgegebenen Datasets für Listen gültiger Werte in dem Zeitraum nicht ändern, den ein Benutzer normalerweise benötigt, um einen Wert auszuwählen und den Bericht auszuführen.

Vermeiden Sie auch schnell veränderliche nicht abgefragte Werte. Wenn Sie z. B. das aktuelle Datum als verfügbaren Wert bereitstellen, sollten Sie einen Ausdruck schreiben, der die DateTime.Today-Eigenschaft statt der DateTime.Now-Eigenschaft verwendet. Dadurch wird der schnell veränderliche Teil des Wertes eliminiert. Sie können auch eine Berichtsvariable oder eine Gruppenvariable verwenden, um einen Wert einmal zu berechnen und während der Verarbeitung des Berichts konstant zu halten. Weitere Informationen finden Sie unter Verwenden von Verweisen auf Berichts- und Gruppenvariablenauflistungen in Ausdrücken (Reporting Services).