Lektion 4: Hinzufügen von kaskadierenden Parametern (SSRS)

Kaskadierende Parameter ermöglichen das Verwalten großer Berichtsdatenmengen. Bei kaskadierenden Parametern hängt die Liste der Werte für einen Parameter von dem Wert abhängt, der in vorangehenden Parametern ausgewählt wurde. Die Reihenfolge ist für kaskadierende Parameter wichtig, da die Datasetabfrage für einen Parameter weiter unten in der Liste Verweise auf Parameter weiter oben in der Liste enthält.

In dieser Lektion erstellen Sie einen Bericht mit einer Hauptdatasetabfrage, die drei Abfrageparameter für Kategorie, Unterkategorie und Produkt definiert. Außerdem definieren Sie drei weitere Datasets, um verfügbare Werte für jeden kaskadierenden Parameter bereitzustellen.

So fügen Sie einem geöffneten Berichtsserverprojekt einen neuen Bericht hinzu

  1. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf Berichte, zeigen Sie auf Hinzufügen, und klicken Sie auf Neues Element.

  2. Klicken Sie im Dialogfeld Neues Element hinzufügen unter Vorlagen auf Bericht.

  3. Geben Sie in das Feld Name den Namen CascadingParameters.rdl ein, und klicken Sie auf Hinzufügen.

    Der Berichts-Designer wird geöffnet, und in der Entwurfsansicht wird die neue RDL-Datei angezeigt.

So erstellen Sie einen Verweis auf eine freigegebene Datenquelle

  1. Klicken Sie im Berichtsdatenbereich auf Neu, und klicken Sie dann auf Datenquelle.

  2. Geben Sie in das Feld Name den Wert AdventureWorks_Ref ein.

  3. Wählen Sie Freigegebenen Datenquellenverweis verwenden aus.

  4. Wählen Sie in der Dropdownliste den Eintrag AdventureWorks aus.

  5. Klicken Sie auf OK. 

So erstellen Sie das Hauptdataset mit einer Abfrage und Abfrageparametern

  1. Klicken Sie im Bereich für die Berichtsdaten mit der rechten Maustaste auf die Datenquelle AdventureWorks_Ref und anschließend auf Dataset hinzufügen.

  2. Geben Sie in das Feld Name den Namen SalesbyCategory ein.

  3. Vergewissern Sie sich, dass unter Datenquelle die Option AdventureWorks_Ref ausgewählt ist.

  4. Überprüfen Sie unter Abfragetyp, ob Text ausgewählt ist.

  5. Klicken Sie unter dem Abfragebereich auf Abfrage-Designer.

  6. Klicken Sie auf Als Text bearbeiten, um zum textbasierten Abfrage-Designer zu wechseln.

  7. Fügen Sie die folgende Abfrage ein:

    SELECT 
       PC.Name AS Category,
       PSC.Name AS Subcategory,
       P.Name AS Product,
       SOH.[OrderDate],
       SOH.SalesOrderNumber,
       SD.OrderQty, 
       SD.LineTotal
       FROM [Sales].[SalesPerson] SP 
          INNER JOIN [Sales].[SalesOrderHeader] SOH 
          ON SP.[BusinessEntityID] = SOH.[SalesPersonID]
          INNER JOIN Sales.SalesOrderDetail SD
          ON SD.SalesOrderID = SOH.SalesOrderID
          INNER JOIN Production.Product P
          ON SD.ProductID = P.ProductID
          INNER JOIN Production.ProductSubcategory PSC
          ON P.ProductSubcategoryID = PSC.ProductSubcategoryID
          INNER JOIN Production.ProductCategory PC
          ON PC.ProductCategoryID = PSC.ProductCategoryID
          WHERE (PC.Name = (@Category)
             AND PSC.Name = (@Subcategory)
             AND P.Name = (@Product))
    

    Die Abfrage enthält nun die Abfrageparameter @Category, @Subcategory und @Product.

  8. Klicken Sie auf Ausführen (!), um das Resultset anzuzeigen. Das Dialogfeld Abfrageparameter definieren wird geöffnet.

  9. Geben Sie mithilfe der folgenden Tabelle in der Parameterwert-Spalte einen Wert für jeden Abfrageparameter ein.

    Parametername

    Parameterwert

    @Category

    Komponenten

    @Subcategory

    Brakes

    @Product

    Front Brakes

  10. Klicken Sie auf OK. 

    Das Resultset enthält eine Liste von Bestellnummern für Vorderradbremsen, die nach Datum gruppiert sind.

    Beim Ausführen der Abfrage wurde durch jeden Abfrageparameter ein entsprechender Berichtsparameter erzeugt. Klicken Sie zweimal auf OK, um den Abfrage-Designer und das Dialogfeld zu schließen.

  11. (Optional) Erweitern Sie im Bereich für die Berichtsdaten den Knoten Parameter, und vergewissern Sie sich, dass folgende Berichtsparameter angezeigt werden: Category, Subcategory und Product.

  12. (Optional) Der Wert der einzelnen Datasetabfrageparameter ist jeweils an einen Berichtsparameter mit dem gleichen Namen gebunden. Klicken Sie im Bereich für die Berichtsdaten mit der rechten Maustaste auf SalesbyCategory und anschließend auf Dataseteigenschaften, um dies zu überprüfen.

    1. Klicken Sie auf Parameter.

    2. Die Spalte Parametername sollte die Namen @Category, @Subcategory und @Product enthalten.

    3. Die Spalte Parameterwert sollte die Werte [@Category], [@Subcategory] und [@Product] enthalten.

      Diese einfachen Ausdrücke beziehen sich auf die Berichtsparameter, die im Bereich für die Berichtsdaten angezeigt werden.

Anschließend erstellen Sie ein Dataset, um Werte für die einzelnen Berichtsparameter zur Laufzeit bereitzustellen. Die Werte füllen die verfügbaren Werte auf und stellen Standardwerte bereit, damit der Bericht automatisch ausgeführt werden kann.

So definieren Sie ein Dataset mit gültigen Werten für einen Berichtsparameter

  1. Klicken Sie im Bereich für die Berichtsdaten mit der rechten Maustaste auf AdventureWorks_Ref und anschließend auf Dataset hinzufügen.

  2. Geben Sie im Feld Name den Wert CategoryValues ein.

  3. Vergewissern Sie sich, dass unter Datenquelle die Option AdventureWorks_Ref ausgewählt ist.

  4. Überprüfen Sie unter Abfragetyp, ob Text festgelegt ist.

  5. Klicken Sie unter dem Bereich Abfrage auf Abfrage-Designer.

  6. Klicken Sie auf Als Text bearbeiten, um zum textbasierten Abfrage-Designer zu wechseln.

  7. Geben Sie den folgenden Abfragetext im Bereich Abfrage ein:

    SELECT DISTINCT Name AS Category FROM Production.ProductCategory
    

    Der Befehl SELECT DISTINCT ruft nur eindeutige Werte aus einer Spalte ab.

  8. Klicken Sie auf Ausführen (!), um das Resultset anzuzeigen. Die Spalte Category wird mit vier Werten angezeigt: "Accessories", "Bikes", "Clothing" und "Components"

  9. Klicken Sie auf OK.

Als Nächstes legen Sie die Eigenschaften für den Berichtsparameter Category fest, um Werte aus dieser Abfrage für die verfügbaren Werte ebenso wie für die Standardwerte zu verwenden.

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

  1. Klicken Sie im Bereich für die Berichtsdaten im Ordner Parameter mit der rechten Maustaste auf Category, und klicken Sie dann auf Parametereigenschaften.

  2. Der Name unter Name sollte Category lauten.

  3. Klicken Sie auf Verfügbare Werte.

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

  5. Wählen Sie unter Dataset den Eintrag CategoryValues aus der Dropdownliste aus.

  6. Klicken Sie im Feld Wert auf Category.

  7. Klicken Sie im Feld Bezeichnung auf Category.

  8. Klicken Sie auf Standardwerte.

  9. Klicken Sie auf Werte aus Abfrage abrufen.

  10. Wählen Sie unter Dataset den Eintrag CategoryValues aus der Dropdownliste aus.

  11. Wählen Sie im Feld Wert den Wert Category aus.

  12. Klicken Sie auf OK.

Anschließend ändern Sie den Parameter @Subcategory so, dass er von dem Wert abhängig ist, der für @Category ausgewählt wurde.

So fügen Sie das Dataset mit Werten für den Berichtsparameter "Subcategory" hinzu

  1. Klicken Sie im Bereich für die Berichtsdaten mit der rechten Maustaste auf AdventureWorks_Ref und anschließend auf Dataset hinzufügen.

  2. Geben Sie in das Feld Name den Wert SubcategoryValues ein.

  3. Geben Sie den folgenden Abfragetext im Bereich Abfrage ein:

    SELECT DISTINCT PSC.Name AS Subcategory 
       FROM Production.ProductSubcategory AS PSC
          INNER JOIN Production.ProductCategory AS PC
          ON PC.ProductCategoryID = PSC.ProductCategoryID
          WHERE PC.Name = (@Category)
    
  4. Klicken Sie auf OK. 

  5. Das Dataset SubcategoryValues wird im Bereich Berichtsdaten angezeigt. Wenn Sie den Abfrage-Designer öffnen, die Abfrage ausführen und Components als Kategorie eingeben, zeigt das Resultset 14 Zeilen an.

Im Anschluss legen Sie die Eigenschaften für den Berichtsparameter @Subcategory fest, um Werte aus dieser Abfrage für die verfügbaren Werte ebenso wie für die Standardwerte zu verwenden.

So legen Sie verfügbare Werte und Standardwerte für den Berichtsparameter "Subcategory" fest

  1. Klicken Sie im Bereich für die Berichtsdaten im Ordner Parameter mit der rechten Maustaste auf Subcategory, und klicken Sie dann auf Parametereigenschaften.

  2. Klicken Sie auf Verfügbare Werte.

  3. Klicken Sie auf Werte aus Abfrage abrufen.

  4. Klicken Sie unter Dataset in der Dropdownliste auf den Eintrag SubcategoryValues.

  5. Klicken Sie im Feld Wert auf Subcategory.

  6. Klicken Sie im Feld Bezeichnung auf Subcategory.

  7. Klicken Sie auf Standardwerte.

  8. Klicken Sie auf Werte aus Abfrage abrufen.

  9. Klicken Sie unter Dataset in der Dropdownliste auf den Eintrag SubcategoryValues.

  10. Klicken Sie im Feld Wert auf Subcategory.

  11. Klicken Sie auf OK.

Als Nächstes erstellen Sie den Parameter @Product, der vom Wert für @Category sowie vom Wert für @Subcategory abhängig ist.

So fügen Sie das Dataset mit Werten für den Berichtsparameter "Product" hinzu

  1. Klicken Sie im Bereich für die Berichtsdaten mit der rechten Maustaste AdventureWorks_Ref und anschließend auf Dataset hinzufügen.

  2. Geben Sie im Feld Name den Namen ProductValues ein.

  3. Geben Sie den folgenden Abfragetext im Bereich für die Abfrage ein:

    SELECT DISTINCT P.Name AS Product
    FROM Production.Product P
       INNER JOIN Production.ProductSubcategory AS PSC
       ON P.ProductSubcategoryID = PSC.ProductSubcategoryID
       INNER JOIN Production.ProductCategory AS PC
       ON PC.ProductCategoryID = PSC.ProductCategoryID
    WHERE (PC.Name = (@Category)
       AND PSC.Name = (@Subcategory))
    
  4. Klicken Sie auf OK.

    Im Bereich für die Berichtsdaten wird das ProductValues-Dataset mit dem Feld Product hinzugefügt.

Im Anschluss legen Sie die Eigenschaften für den Parameter @Product fest, um Werte aus dieser Abfrage für die verfügbaren Werte ebenso wie für die Standardwerte zu verwenden.

So legen Sie verfügbare Werte und Standardwerte für den Berichtsparameter "Product" fest

  1. Klicken Sie im Bereich für die Berichtsdaten im Ordner Parameter mit der rechten Maustaste auf Product, und klicken Sie dann auf Parametereigenschaften.

  2. Klicken Sie auf Verfügbare Werte.

  3. Klicken Sie auf Werte aus Abfrage abrufen.

  4. Klicken Sie unter Dataset in der Dropdownliste auf den Eintrag ProductValues.

  5. Klicken Sie im Feld Wert auf Product.

  6. Klicken Sie im Feld Bezeichnung auf Product.

  7. Klicken Sie auf Standardwerte.

  8. Klicken Sie auf Werte aus Abfrage abrufen.

  9. Klicken Sie unter Dataset in der Dropdownliste auf den Eintrag ProductValues.

  10. Klicken Sie im Feld Wert auf Product.

  11. Klicken Sie auf OK.

Fügen Sie nun eine Tabelle hinzu, um die Auswirkungen der Auswahl eines Werts für die einzelnen kaskadierenden Parameter anzuzeigen.

So fügen Sie eine Tabelle zum Anzeigen der Ergebnisse hinzu

  1. Fügen Sie eine Tabelle in der Entwurfsansicht hinzu.

  2. Ziehen Sie im Bereich für die Berichtsdaten die folgenden Felder aus dem SalesbyCategory-Dataset in die drei Zellen in der Detailzeile für die Tabelle: SalesOrderNumber, OrderQty, LineTotal

  3. Ziehen Sie den Parameter Category vom SalesbyCategory-Dataset in den Bereich Zeilengruppen und legen Sie diesen über der Gruppe Details ab.

  4. Ziehen Sie Subcategory vom SalesbyCategory-Dataset in den Bereich Zeilengruppen und legen Sie diesen unter Category ab.

  5. Ziehen Sie Product vom SalesbyCategory-Dataset in den Bereich Zeilengruppen und legen Sie diesen unter Subcategory ab.

  6. Ziehen Sie OrderDate vom SalesbyCategory-Dataset in den Bereich Zeilengruppen und legen Sie diesen unter Product ab.

  7. Optional: Formatieren Sie die Zelle [LineTotal] als Währung und die Zelle [OrderDate] als Datum.

So testen Sie die kaskadierenden Parameter

  1. Klicken Sie auf Vorschau.

    Der Bericht wird automatisch ausgeführt, da Sie die Standardwerte für die einzelnen Berichtsparameter festgelegt haben.

  2. Wählen Sie in der Dropdownliste Category den Eintrag Components aus.

  3. Wählen Sie in der Dropdownliste Subcategory den Eintrag Brakes aus.

  4. Wählen Sie in der Dropdownliste Product den Wert Front Brakes aus.

    Beachten Sie, dass in der Dropdownliste des nächsten Parameters nur die gültigen Werte anhand Ihrer Auswahl angezeigt werden, wenn Sie die einzelnen nachfolgenden Parameter auswählen.

  5. Klicken Sie auf der Berichts-Viewer-Symbolleiste auf Bericht anzeigen.

Im Bericht werden die Bestellnummern zusammen mit der Bestellmenge und Zeilengesamtwerten für Bestellungen für das Produkt "Front Brakes" angezeigt. Dabei sind die Bestellungen in der Tabelle nach Kategorie, Unterkategorie, Produkt und Bestelldatum angeordnet.

Nächste Schritte

Sie haben erfolgreich einen Bericht mit kaskadierenden Parametern erstellt, in dem Bestellungen für ein bestimmtes Produkt angezeigt werden und eine Filterung nach Produktkategorie, Unterkategorie und Produktname ausgeführt werden kann. In der nächsten Lektion erfahren Sie, wie ein Parameter an einen Drillthroughbericht übergeben wird. Siehe Lektion 5: Hinzufügen von Parametern zur Übergabe an einen Drillthroughbericht (SSRS).