Share via


Lektion 2: Hinzufügen von Parametern zum Erstellen einer Liste verfügbarer Werte (Berichts-Generator 2.0)

Mit verfügbaren Werten bzw. gültigen Werten wird eine Liste mit möglichen Werten für einen Berichtsparameter bereitgestellt. Sie können Sie gültige Werte aus einer Abfrage bereitstellen, die speziell zum Abrufen von bestimmten Werten aus der Datenquelle vorgesehen ist. Sie können auch eine vordefinierte Gruppe von Werten bereitstellen. Wenn Sie bestimmte verfügbare Werte an eine Datasetabfrage binden, die während der Verarbeitung des Berichts ausgeführt wird, stellen Sie sicher, dass ein Benutzer nur Werte aus der Dropdownliste auswählen kann, die in der Datenbank vorhanden sind.

In dieser Lektion ändern Sie den Sales Orders-Bericht so, dass eine Dropdownliste der verfügbaren Namen von Vertriebsmitarbeitern aus der AdventureWorks2008-Datenbank angezeigt wird. Sie legen eine Tabelleneigenschaft so fest, dass eine Meldung angezeigt wird, wenn keine Zeilen im Resultset für den ausgewählten Parameterwert vorhanden sind. Wenn Sie einen Namen auswählen und den Bericht anzeigen, werden im Bericht ausschließlich die Verkäufe dieses Vertriebsmitarbeiters angezeigt.

So ersetzen Sie die vorhandene Datasetabfrage

  1. Klicken Sie im Berichtsdatenbereich mit der rechten Maustaste auf Dataset1, und klicken Sie dann auf Abfrage. Der Abfrage-Designer wird geöffnet.

    Ersetzen Sie den vorhandenen Abfragetext im Abfrabebereich durch folgende Abfrage:

    SELECT
      SH.OrderDate
      ,DATENAME(weekday, SH.OrderDate) as Weekday
      ,SH.SalesOrderNumber
      ,SD.OrderQty
      ,SD.LineTotal
      ,P.Name AS [Product]
      ,PS.Name AS [Subcategory]
    FROM Sales.SalesPerson SP 
      INNER JOIN Sales.SalesOrderHeader AS SH 
          ON SP.BusinessEntityID = SH.SalesPersonID
      INNER JOIN Sales.SalesOrderDetail AS SD 
         ON SH.SalesOrderID = SD.SalesOrderID
      INNER JOIN Production.Product AS P
       ON SD.ProductID = P.ProductID
      INNER JOIN Production.ProductSubcategory AS PS
       ON PS.ProductSubcategoryID = P.ProductSubcategoryID
      INNER JOIN Production.ProductCategory AS PC
       ON PC.ProductCategoryID = PS.ProductCategoryID
    WHERE PC.Name = 'Clothing' 
       AND (SH.OrderDate BETWEEN (@StartDate) AND (@EndDate))
       AND SH.SalesPersonID = (@BusinessPersonID)
    

    Diese Abfrage enthält einen Abfrageparameter für den Vertriebsmitarbeiter, der für den Auftrag verantwortlich ist:

    AND SH.SalesPersonID = (@BusinessPersonID)

  2. Klicken Sie auf die Schaltfläche Ausführen (!). Wenn Sie nach den Abfrageparametern gefragt werden, geben Sie die Werte mithilfe der folgenden Tabelle ein.

    @StartDate

    20010101

    @EndDate

    20030101

    @BusinessPersonID

    290

  3. Klicken Sie auf OK. Das Resultset wird für den Vertriebsmitarbeiter Ranjit Varkey Chudukatil mit SalesPersonID = 290 angezeigt. 

    Als Nächstes erstellen Sie ein neues Dataset, in dem die Namen der Verkäufer aufgeführt werden.

So füllen Sie eine Liste gültiger Werte für einen Berichtsparameter

  1. Klicken Sie auf der Symbolleiste des Berichtsdatenbereichs auf Neu und anschließend auf Dataset. Das Dialogfeld Dataseteigenschaften wird angezeigt.

  2. Geben Sie in das Feld Name den Namen SalesPersons ein. Mit diesem Dataset wird die Liste gültiger Werte für den SalesPersonID-Berichtsparameter gefüllt.

  3. Als Datenquelle sollte AdventureWorks2008 verwendet werden.

  4. Klicken Sie auf Abfrage-Designer und dann auf Als Text bearbeiten.

  5. Fügen Sie folgende Transact-SQL-Abfrage im Abfragebereich ein:

    SELECT SP.BusinessEntityID, C.FirstName, C.LastName
    FROM   Sales.SalesPerson AS SP INNER JOIN
         HumanResources.Employee AS E ON E.BusinessEntityID = 
         SP.BusinessEntityID INNER JOIN
         Person.Person AS C ON C.BusinessEntityID = E.BusinessEntityID
    ORDER BY SP.BusinessEntityID
    
  6. Klicken Sie zweimal auf OK. Im Berichtsdatenbereich zeigt das neue Dataset drei Felder an: BusinessEntityID, FirstName und LastName. Mit diesem Dataset werden gültige Werte für den Parameter BusinessPersonID bereitgestellt.

    Als Nächstes erstellen Sie ein zusätzliches Datasetfeld, das FirstName und LastName in einem Feld namens Name verkettet. Felder, die Sie definieren, werden als berechnete Felder bezeichnet.

So definieren Sie ein berechnetes Feld im Bereich für die Berichtsdaten

  1. Klicken Sie auf der Symbolleiste im Bereich für die Berichtsdaten mit der rechten Maustaste auf das SalesPersons-Dataset und anschließend auf Berechnetes Feld hinzufügen. Die Seite Felder des Dialogfelds Dataseteigenschaften wird mit einer neuen Zeile im Raster geöffnet.

  2. Geben Sie im letzten Textfeld Feldname Folgendes ein: Name.

  3. Fügen Sie im Textfeld Feldquelle den folgenden Ausdruck ein:

    =Fields!LastName.Value & ", " & Fields!FirstName.Value

  4. Klicken Sie auf OK.

  5. Das neue Feld Name wird im Bereich für die Berichtsdaten unter dem SalesPersons-Dataset in der Feldauflistung für das Dataset angezeigt.

    Als Nächstes legen Sie fest, dass der Berichtsparameter BusinessPersonID dieses Dataset für die gültigen Werte verwendet.

So füllen Sie den Berichtsparameter mit einer Liste verfügbarer Werte

  1. Erweitern Sie im Bereich für die Berichtsdaten den Knoten Parameter, klicken Sie mit der rechten Maustaste auf BusinessPersonID und anschließend auf Parametereigenschaften.

  2. Geben Sie an der Eingabeaufforderung den Text Select sales person: ein.

  3. Wählen Sie unter Datentyp die Option Ganze Zahl aus.

  4. Klicken Sie auf Verfügbare Werte.

  5. Wählen Sie die Option Werte aus Abfrage abrufen aus.

  6. Wählen Sie in der Dropdownliste Dataset den Wert BusinessPersons aus.

  7. Wählen Sie in der Dropdownliste Wertfeld den Eintrag BusinessEntityID aus.

  8. Wählen Sie in der Dropdownliste Bezeichnungsfeld den Eintrag Name aus.

    Nachdem Sie Name für die Bezeichnung gewählt haben, enthält die Dropdownliste mit den gültigen Werten für den BusinessEntityID -Parameter nun den Namen jedes Vertriebsmitarbeiters anstelle der ID.

  9. Klicken Sie auf Standardwerte.

  10. Wählen Sie die Option Werte aus Abfrage abrufen aus.

  11. Wählen Sie in der Dropdownliste Dataset den Wert BusinessPersons aus.

  12. Wählen Sie in der Dropdownliste Wertfeld den Eintrag BusinessEntityID aus.

  13. Klicken Sie auf OK. 

  14. Klicken Sie auf Ausführen. Im Bericht wird eine Dropdownliste mit den Namen der Vertriebsmitarbeiter angezeigt.

  15. Klicken Sie auf Bericht anzeigen.

    Im Bericht werden die Bestellungen für den ausgewählten Vertriebsmitarbeiter angezeigt, die den Grenzwerten entsprechen, die von den Berichtsparametern angegeben werden. Einige Kombinationen von Datumsangaben, Wochentagen und Vertriebsmitarbeitern haben möglicherweise keine Ergebnisse.

Nächste Schritte

Sie haben einem vorhandenen Bericht erfolgreich eine Liste verfügbarer Werte hinzugefügt. Anschließend ändern Sie den DayoftheWeek-Parameter und den BusinessPersonID -Parameter so, dass mehrere Werte akzeptiert werden. Siehe Lektion 3: Hinzufügen von Parametern zur Auswahl mehrerer Werte in einer Liste (Berichts-Generator 2.0).