Vorgehensweise: Hinzufügen von kaskadierenden Parametern zu einem Bericht (Berichts-Generator 2.0)
Kaskadierende Parameter ermöglichen das Verwalten großer Berichtsdatenmengen. 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.
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 Vorgehensweise: Hinzufügen, Ändern oder Löschen von verfügbaren Werten für einen Berichtsparameter (Berichts-Generator 2.0).
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 Bereich Berichtsdaten die Reihenfolge, in der Parameterabfragen im Bericht aufgeführt werden, und damit die Reihenfolge, in der Benutzer die einzelnen aufeinander folgenden Parameterwerte auswählen.
So erstellen Sie das Hauptdataset mit einer Abfrage, die mehrere abhängige Parameter enthält
Klicken Sie im Bereich Berichtsdaten mit der rechten Maustaste auf eine Datenquelle, und klicken Sie dann auf Dataset hinzufügen.
Geben Sie unter Name den Namen des Datasets ein.
Wählen Sie in Datenquelle den Namen der Datenquelle aus, oder klicken Sie auf Neu, um eine Datenquelle zu erstellen.
Wählen Sie in Abfragetyp den Abfragetyp für die ausgewählte Datenquelle aus. In diesem Thema wird angenommen, dass der Abfragetyp Text ausgewählt wurde.
Geben Sie in Abfrage die Abfrage ein, mit der die Daten für diesen Bericht abgerufen werden sollen. Die Abfrage muss die folgenden Teile enthalten:
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.
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 Transact-SQL-SELECT-Anweisung sind Abfrageparameter beispielsweise in der WHERE-Klausel enthalten. Weitere Informationen finden Sie unter "Filtern von Zeilen mithilfe von WHERE und HAVING" in der Reporting Services-Dokumentation in der SQL Server-Onlinedokumentation.
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. Weitere Informationen zum Ändern der Reihenfolge finden Sie unter Vorgehensweise: Ändern der Reihenfolge von Berichtsparametern (Berichts-Generator 2.0)
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
Klicken Sie im Bereich Berichtsdaten mit der rechten Maustaste auf eine Datenquelle, und klicken Sie dann auf Dataset hinzufügen.
Geben Sie unter Name den Namen des Datasets ein.
Vergewissern Sie sich, dass der Name in Datenquelle dem Namen der Datenquelle entspricht, die in Schritt 1 ausgewählt wurde.
Wählen Sie in Abfragetyp den Abfragetyp für die ausgewählte Datenquelle aus. In diesem Thema wird angenommen, dass der Abfragetyp Text ausgewählt wurde.
Geben Sie in Abfrage die 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.
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
Klicken Sie im Bereich Berichtsdaten im Ordner Parameter mit der rechten Maustaste auf den ersten Parameter, und klicken Sie dann auf Parametereigenschaften.
Vergewissern Sie sich, dass in Name der korrekte Name des Parameters angegeben ist.
Klicken Sie auf Verfügbare Werte.
Klicken Sie auf Werte aus Abfrage abrufen. Es werden drei Felder angezeigt.
Klicken Sie in Dataset in der Dropdownliste auf den Namen des Datasets, das Sie im vorherigen Vorgang erstellt haben.
Klicken Sie im Feld Wert auf den Namen des Felds, das den Parameterwert bereitstellt.
Klicken Sie im Feld Bezeichnung auf den Namen des Felds, das die Parameterbezeichnung bereitstellt.
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
Klicken Sie im Bereich Berichtsdaten mit der rechten Maustaste auf eine Datenquelle, und klicken Sie dann auf Dataset hinzufügen.
Geben Sie unter Name den Namen des Datasets ein.
Vergewissern Sie sich, dass der Name in Datenquelle dem Namen der Datenquelle entspricht, die in Schritt 1 ausgewählt wurde.
Wählen Sie in Abfragetyp den Abfragetyp für die ausgewählte Datenquelle aus. In diesem Thema wird angenommen, dass der Abfragetyp Text ausgewählt wurde.
Geben Sie in Abfrage die 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 <Tabelle>, 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.
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 einen Berichtsparameter fest
Klicken Sie im Bereich Berichtsdaten im Ordner Parameter mit der rechten Maustaste auf den ersten Parameter, und klicken Sie dann auf Parametereigenschaften.
Vergewissern Sie sich, dass in Name der korrekte Name des Parameters angegeben ist.
Klicken Sie auf Verfügbare Werte.
Klicken Sie auf Werte aus Abfrage abrufen.
Klicken Sie in Dataset in der Dropdownliste auf den Namen des Datasets, das Sie im vorherigen Vorgang erstellt haben.
Klicken Sie im Feld Wert auf den Namen des Felds, das den Parameterwert bereitstellt.
Klicken Sie im Feld Bezeichnung auf den Namen des Feldes, das die Parameterbezeichnung bereitstellt.
Klicken Sie auf OK.
So testen Sie die kaskadierenden Parameter
Klicken Sie auf Ausführen.
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.
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.
Klicken Sie auf Bericht anzeigen. Die Anzeige des Berichts wird mit den ausgewählten Parametern aktualisiert.
Siehe auch