Lektion 2: Hinzufügen von Parametern zum Erstellen einer Liste verfügbarer Werte
Mit verfügbaren Werten bzw. gültigen Werten wird eine Liste mit möglichen Werten für einen Berichtsparameter bereitgestellt. Als Berichtsautor 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 nur Werte aus der Dropdownliste ausgewählt werden können, 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 das vorhandene Dataset
Klicken Sie im Bereich für die Berichtsdaten mit der rechten Maustaste auf das AdventureWorksDataset-Dataset und anschließend auf Dataseteigenschaften.
Hinweis Zum Anzeigen des Bereichs für die Berichtsdaten klicken Sie ggf. im Menü Ansicht auf Berichtsdaten.
Vergewissern Sie sich, dass unter Datenquelle die Option AdventureWorks_Ref ausgewählt ist.
Überprüfen Sie unter Abfragetyp, ob Text ausgewählt ist.
Klicken Sie auf die Schaltfläche Abfrage-Designer, um den Abfrage-Designer zu öffnen.
Ersetzen Sie den Text durch Eingabe der folgenden Abfrage im Textfeld:
SELECT soh.OrderDate AS [Date], DATENAME(weekday, soh.OrderDate) as Weekday, soh.SalesOrderNumber AS [Order], pps.Name AS Subcat, pp.Name as Product, SUM(sd.OrderQty) AS Qty, SUM(sd.LineTotal) AS LineTotal FROM Sales.SalesPerson sp INNER JOIN Sales.SalesOrderHeader AS soh ON sp.BusinessEntityID = soh.SalesPersonID INNER JOIN Sales.SalesOrderDetail AS sd ON sd.SalesOrderID = soh.SalesOrderID INNER JOIN Production.Product AS pp ON sd.ProductID = pp.ProductID INNER JOIN Production.ProductSubcategory AS pps ON pp.ProductSubcategoryID = pps.ProductSubcategoryID INNER JOIN Production.ProductCategory AS ppc ON ppc.ProductCategoryID = pps.ProductCategoryID GROUP BY ppc.Name, soh.OrderDate, soh.SalesOrderNumber, pps.Name, pp.Name, soh.SalesPersonID HAVING ppc.Name = 'Clothing' AND (soh.OrderDate BETWEEN (@StartDate) AND (@EndDate)) AND soh.SalesPersonID = (@BusinessPersonID)
Im Unterschied zur vorangehenden Abfrage wurde dieser Abfrage eine Bedingung hinzugefügt, durch die das Resultset auf eine Person einschränkt wird:
AND soh.SalesPersonID = (@BusinessPersonID)
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
Klicken Sie auf OK. Das Resultset wird für den Vertriebsmitarbeiter Ranjit Varkey Chudukatil mit SalesPersonID = 290 angezeigt.
So füllen Sie eine Liste gültiger Werte für einen Berichtsparameter
Klicken Sie im Berichtsdatenbereich auf Neu und anschließend auf Dataset. Das Dialogfeld Dataseteigenschaften wird angezeigt.
Geben Sie in das Feld Name den Namen BusinessPersons ein. Mit diesem Dataset wird die Liste gültiger Werte für den SalesPersonID-Berichtsparameter gefüllt.
Als Datenquelle sollte AdventureWorks_Ref verwendet werden.
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
Klicken Sie zweimal auf OK. Eine Liste der Felder für das BusinessPersons-Dataset wird gefüllt. Mit diesem Dataset werden gültige Werte für den Parameter BusinessPersonID bereitgestellt.
Sie werden feststellen, dass das BusinessPersons-Dataset über das Feld FirstName und das Feld LastName verfügt. Diese Felder werden im nächsten Schritt im Feld Name verknüpft.
So definieren Sie ein berechnetes Feld im Bereich für die Berichtsdaten
Klicken Sie auf der Symbolleiste im Bereich für die Berichtsdaten mit der rechten Maustaste auf das BusinessPersons-Dataset und anschließend auf Berechnetes Feld hinzufügen. Die Seite Felder des Dialogfelds Dataseteigenschaften wird mit einer neuen Zeile im Raster geöffnet.
Geben Sie im letzten Textfeld Feldname Folgendes ein: Name.
Fügen Sie im Textfeld Feldquelle den folgenden Ausdruck ein:
=Fields!LastName.Value & ", " & Fields!FirstName.Value
Klicken Sie auf OK.
Das neue Feld Name wird im Bereich für die Berichtsdaten unter dem BusinessPersons-Dataset in der Feldauflistung für das Dataset angezeigt.
So füllen Sie den Berichtsparameter mit einer Liste verfügbarer Werte
Erweitern Sie im Bereich für die Berichtsdaten den Knoten Parameter, klicken Sie mit der rechten Maustaste auf BusinessPersonID und anschließend auf Parametereigenschaften.
Geben Sie an der Eingabeaufforderung den Text Select business person: ein.
Wählen Sie unter Datentyp die Option Ganze Zahl aus.
Klicken Sie auf Verfügbare Werte.
Wählen Sie die Option Werte aus Abfrage abrufen aus.
Wählen Sie in der Dropdownliste Dataset den Wert BusinessPersons aus.
Wählen Sie in der Dropdownliste Wertfeld den Eintrag BusinessEntityID aus.
Wählen Sie in der Dropdownliste Bezeichnungsfeld den Eintrag Name aus.
Nachdem Sie Name für die Bezeichnung ausgewählt haben, enthält die Dropdownliste der gültigen Werte für den BusinessEntityID-Parameter nun den Namen des jeweiligen Vertriebsmitarbeiters anstelle der entsprechenden ID.
Klicken Sie auf Standardwerte.
Wählen Sie die Option Werte aus Abfrage abrufen aus.
Wählen Sie in der Dropdownliste Dataset den Wert BusinessPersons aus.
Wählen Sie in der Dropdownliste Wertfeld den Eintrag BusinessEntityID aus.
Klicken Sie auf OK.
Klicken Sie auf die Registerkarte Vorschau. Im Bericht wird eine Dropdownliste mit den Namen der Vertriebsmitarbeiter angezeigt.
Klicken Sie auf Bericht anzeigen. Wählen Sie andere Parameterwerte aus, um die Ergebnisse zu überprüfen.
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 SalesPersonID -Parameter so, dass diese mehrwertig sind. Siehe Lektion 3: Hinzufügen von Parametern zur Auswahl mehrerer Werte in einer Liste.