Hinzufügen von kaskadierenden Parametern zu einem paginierten Bericht (Berichts-Generator)

Gilt für: Microsoft Report Builder (SSRS) Power BI Report Builder Berichts-Designer in SQL Server Data Tools

Kaskadierende Parameter ermöglichen das Verwalten großer Datenmengen in einem paginierten Bericht. Sie können einen Satz von abhängigen Parametern definieren, sodass die Liste der Werte für einen Parameter von dem Wert abhängt, der in einem anderen Parameter ausgewählt wurde. Der erste Parameter ist beispielsweise unabhängig und stellt eine Liste von Produktkategorien dar. Wenn der Benutzer eine Kategorie auswählt, hängt der zweite Parameter vom Wert des ersten Parameters ab. Seine Werte werden mit einer Liste von Unterkategorien innerhalb der ausgewählten Kategorie aktualisiert. Wenn der Benutzer den Bericht anzeigt, werden die Berichtsdaten mit den Parameterwerten für die Kategorie und die Unterkategorien gefiltert.

Hinweis

Sie können paginierte Berichtsdefinitionsdateien (.rdl) im Berichts-Generator von Microsoft, im Power BI Report Builder und im Berichts-Designer in SQL Server-Datentools erstellen und ändern.

Zum Erstellen von kaskadierenden Parametern definieren Sie zunächst die Datasetabfrage und binden einen Abfrageparameter für jeden benötigten kaskadierenden Parameter ein. Außerdem müssen Sie ein separates Dataset für jeden kaskadierenden Parameter erstellen, um verfügbare Werte bereitzustellen. Weitere Informationen finden Sie unter Hinzufügen, Ändern oder Löschen von verfügbaren Werten für einen Berichtsparameter (Berichts-Generator und SSRS).

Die Reihenfolge ist für kaskadierende Parameter relevant, da die Datasetabfrage für einen Parameter weiter unten in der Liste einen Verweis auf jeden Parameter weiter oben in der Liste enthält. Zur Laufzeit bestimmt die Reihenfolge der Parameter im Berichtsdatenbereich die Reihenfolge, in der Parameterabfragen im Bericht aufgeführt werden, und damit die Reihenfolge, in der Benutzer die einzelnen aufeinander folgenden Parameterwerte auswählen.

Informationen zum Erstellen von kaskadierenden Parametern mit mehreren Werten und einschließlich der Funktion "Alle auswählen" finden Sie unter Informationen zu einem mehrwertigen, kaskadierenden Parameter vom Typ <legacyBold>Alle auswählen</legacyBold>.

  1. Klicken Sie im Berichtsdatenbereich mit der rechten Maustaste auf eine Datenquelle, und klicken Sie anschließend auf Dataset hinzufügen.

  2. Geben Sie unter Nameden Namen des Datasets ein.

  3. Wählen Sie in Datenquelleden Namen der Datenquelle aus, oder klicken Sie auf Neu , um eine Datenquelle zu erstellen.

  4. Wählen Sie in Abfragetypden Abfragetyp für die ausgewählte Datenquelle aus. In diesem Thema wird angenommen, dass der Abfragetyp Text ausgewählt wurde.

  5. Geben Sie in Abfragedie Abfrage ein, mit der die Daten für diesen Bericht abgerufen werden sollen. Die Abfrage muss die folgenden Teile enthalten:

    1. Eine Liste mit Datenquellenfeldern. In einer Transact-SQL-Anweisung gibt beispielsweise die SELECT-Anweisung eine Liste mit den Namen aller Datenbankspalten aus einer bestimmten Tabelle oder Sicht an.

    2. Einen Abfrageparameter für jeden kaskadierenden Parameter. Ein Abfrageparameter beschränkt die von der Datenquelle abgerufenen Daten, indem bestimmte Werte angegeben werden, die in die Abfrage eingebunden bzw. von dieser ausgeschlossen werden sollen. Typischerweise sind Abfrageparameter in einer Einschränkungsklausel in der Abfrage enthalten. In einer SELECT-Anweisung von Transact-SQL sind Abfrageparameter beispielsweise in der WHERE-Klausel enthalten.

  6. Klicken Sie auf Ausführen ( ! ). Nachdem Sie die Abfrageparameter eingebunden und anschließend die Abfrage ausgeführt haben, werden automatisch Berichtsparameter erstellt, die den Abfrageparametern entsprechen.

    Hinweis

    Die Reihenfolge von Abfrageparametern beim erstmaligen Ausführen einer Abfrage bestimmt die Reihenfolge, in der sie im Bericht erstellt werden. Informationen zum Ändern der Reihenfolge finden Sie unter Ändern der Reihenfolge von Berichtsparametern (Berichts-Generator und SSRS).

  7. Klicken Sie auf OK.

Anschließend erstellen Sie ein Dataset, das die Werte für den unabhängigen Parameter bereitstellt.

So erstellen Sie ein Dataset zum Bereitstellen von Werten für einen unabhängigen Parameter

  1. Klicken Sie im Berichtsdatenbereich mit der rechten Maustaste auf eine Datenquelle, und klicken Sie anschließend auf Dataset hinzufügen.

  2. Geben Sie unter Nameden Namen des Datasets ein.

  3. Vergewissern Sie sich, dass der Name in Datenquelledem Namen der Datenquelle entspricht, die in Schritt 1 ausgewählt wurde.

  4. Wählen Sie in Abfragetypden Abfragetyp für die ausgewählte Datenquelle aus. In diesem Thema wird angenommen, dass der Abfragetyp Text ausgewählt wurde.

  5. Geben Sie in Abfragedie Abfrage ein, mit der Werte für diesen Parameter abgerufen werden sollen. Abfragen für unabhängige Parameter enthalten normalerweise keine Abfrageparameter. Wenn Sie z. B. eine Abfrage für einen Parameter erstellen möchten, der alle Kategoriewerte bereitstellt, können Sie eine Transact-SQL-Anweisung wie die Folgende verwenden:

    SELECT DISTINCT <column name> FROM <table>  
    

    Der SELECT DISTINCT-Befehl entfernt doppelte Werte aus dem Resultset, sodass Sie die einzelnen eindeutigen Werte aus der angegebenen Spalte in der angegebenen Tabelle abrufen.

    Klicken Sie auf Ausführen ( ! ). Im Resultset werden die Werte angezeigt, die für diesen ersten Parameter verfügbar sind.

  6. Klicken Sie auf OK.

Anschließend legen Sie die Eigenschaften des ersten Parameters fest, um mit diesem Dataset zur Laufzeit die verfügbaren Werte aufzufüllen.

So legen Sie verfügbare Werte für einen Berichtsparameter fest

  1. Klicken Sie im Berichtsdatenbereich im Ordner „Parameter“ mit der rechten Maustaste auf den ersten Parameter, und klicken Sie anschließend auf Parametereigenschaften.

  2. Vergewissern Sie sich, dass in Nameder korrekte Name des Parameters angegeben ist.

  3. Klicken Sie auf Verfügbare Werte.

  4. Klicken Sie auf Werte aus Abfrage abrufen. Es werden drei Felder angezeigt.

  5. Klicken Sie in Datasetin der Dropdownliste auf den Namen des Datasets, das Sie in der vorherigen Prozedur erstellt haben.

  6. Klicken Sie im Feld Wert auf den Namen des Felds, das den Parameterwert bereitstellt.

  7. Klicken Sie im Feld Bezeichnung auf den Namen des Felds, das die Parameterbezeichnung bereitstellt.

  8. Klicken Sie auf OK.

Nun erstellen Sie ein Dataset, das die Werte für einen abhängigen Parameter bereitstellt.

So erstellen Sie ein Dataset zum Bereitstellen von Werten für einen abhängigen Parameter

  1. Klicken Sie im Berichtsdatenbereich mit der rechten Maustaste auf eine Datenquelle, und klicken Sie anschließend auf Dataset hinzufügen.

  2. Geben Sie unter Nameden Namen des Datasets ein.

  3. Vergewissern Sie sich, dass der Name in Datenquelledem Namen der Datenquelle entspricht, die in Schritt 1 ausgewählt wurde.

  4. Wählen Sie in Abfragetypden Abfragetyp für die ausgewählte Datenquelle aus. In diesem Thema wird angenommen, dass der Abfragetyp Text ausgewählt wurde.

  5. Geben Sie in Abfragedie Abfrage ein, mit der Werte für diesen Parameter abgerufen werden sollen. Abfragen für abhängige Parameter enthalten normalerweise Abfrageparameter für jeden Parameter, von dem der betreffende Parameter abhängig ist. Wenn Sie beispielsweise eine Abfrage für einen Parameter erstellen möchten, der alle Unterkategoriewerte (abhängiger Parameter) für eine Kategorie (unabhängiger Parameter) bereitstellt, können Sie eine Transact-SQL-Anweisung wie die Folgende verwenden:

    SELECT DISTINCT Subcategory FROM <table>   
    WHERE (Category = @Category)  
    

    In der WHERE-Klausel ist „Category“ der Name eines Felds aus <table>, und @Category ist ein Abfrageparameter. Diese Anweisung erstellt eine Liste von Unterkategorien für die in @Category angegebene Kategorie. Zur Laufzeit wird dieser Wert mit dem Wert ausgefüllt, der vom Benutzer für den Berichtsparameter mit demselben Namen ausgewählt wurde.

  6. Klicken Sie auf OK.

Anschließend legen Sie die Eigenschaften des zweiten Parameters fest, um mit diesem Dataset zur Laufzeit die verfügbaren Werte aufzufüllen.

So legen Sie verfügbare Werte für den zweiten Parameter fest

  1. Klicken Sie im Berichtsdatenbereich im Ordner „Parameter“ mit der rechten Maustaste auf den ersten Parameter, und klicken Sie anschließend auf Parametereigenschaften.

  2. Vergewissern Sie sich, dass in Nameder korrekte Name des Parameters angegeben ist.

  3. Klicken Sie auf Verfügbare Werte.

  4. Klicken Sie auf Werte aus Abfrage abrufen.

  5. Klicken Sie in Datasetin der Dropdownliste auf den Namen des Datasets, das Sie in der vorherigen Prozedur erstellt haben.

  6. Klicken Sie im Feld Wert auf den Namen des Felds, das den Parameterwert bereitstellt.

  7. Klicken Sie im Feld Bezeichnung auf den Namen des Felds, das die Parameterbezeichnung bereitstellt.

  8. Klicken Sie auf OK.

So testen Sie die kaskadierenden Parameter

  1. Klicken Sie auf Ausführen.

  2. Wählen Sie in der Dropdownliste für den ersten unabhängigen Parameter einen Wert aus.

    Der Berichtsprozessor führt die Datasetabfrage für den nächsten Parameter aus und übergibt den Wert, den Sie für den ersten Parameter ausgewählt haben. Die Dropdownliste für den zweiten Parameter wird mit den verfügbaren Werten gefüllt, die auf dem Wert des ersten Parameters beruhen.

  3. Wählen Sie in der Dropdownliste für den zweiten, abhängigen Parameter einen Wert aus.

    Der Bericht wird nach dem Auswählen des letzten Parameters nicht automatisch ausgeführt, sodass Sie eine andere Auswahl vornehmen können.

  4. Klicken Sie auf Bericht anzeigen. Die Anzeige des Berichts wird mit den ausgewählten Parametern aktualisiert.

Weitere Informationen

Hinzufügen, Ändern oder Löschen von Berichtsparametern (Berichts-Generator und SSRS)
Berichtsparameter (Berichts-Generator und Berichts-Designer)
Tutorial: Hinzufügen eines Parameters zum Bericht (Berichts-Generator)
Lernprogramme für den Berichts-Generator
Hinzufügen von Datasetfiltern, Datenbereichsfiltern und Gruppenfiltern (Berichts-Generator und SSRS)
Erstellen von Berichten zu eingebetteten und freigegebenen Datasets (Berichts-Generator und SSRS)