Share via


Lektion 3: Hinzufügen eines einwertigen Parameters mit einer Liste verfügbarer Werte

Neu: 17. Juli 2006

Mit verfügbaren Werten bzw. gültigen Werten wird einem Leser von Berichten 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 AdventureWorks-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 öffnen Sie den Sales Orders-Bericht

  1. Öffnen Sie in SQL Server Business Intelligence Development Studio das Lernprogramm-Berichtsserverprojekt, das in der vorherigen Lektion erstellt wurde.

  2. Doppelklicken Sie im Projektmappen-Explorer auf den Sales Orders-Bericht. Der Bericht wird in der Layout-Ansicht geöffnet.

  3. Klicken Sie auf die Registerkarte Daten.

So fügen Sie der AdventureWorks-Datasetabfrage einen Abfrageparameter hinzu

  1. Wählen Sie auf der Registerkarte Daten aus der Dropdownliste Datasets die Option AdventureWorks aus.

  2. Fügen Sie der Abfrage einen neuen Abfrageparameter (@SalesPersonID) hinzu. Erweitern Sie in der Abfrage die WHERE-Klausel so, dass sie den folgenden Vergleich umfasst: AND S.SalesPersonID = (@SalesPersonID).

    Ersetzen Sie die vorhandene Abfrage durch folgenden Text:

    SELECT S.OrderDate, DATENAME(weekday, S.OrderDate) as Weekday,
        S.SalesOrderNumber, S.TotalDue, C.FirstName, C.LastName, 
        C.ContactID
    FROM    HumanResources.Employee E INNER JOIN
            Person.Contact C ON E.ContactID = C.ContactID INNER JOIN
            Sales.SalesOrderHeader S ON E.EmployeeID = S.SalesPersonID
    WHERE
        (
        S.OrderDate BETWEEN (@StartDate) AND (@EndDate) 
        AND
        S.SalesPersonID = (@SalesPersonID)
        )
    
    Aa337400.note(de-de,SQL.90).gifHinweis:
    Die Klammern um den Abfrageparameter stellen einen wichtigen Bestandteil der Abfragesyntax dar.
  3. 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

    @SalesPersonID

    286

  4. Klicken Sie auf OK. Das Resultset wird für den Vertriebsmitarbeiter Ranjit Varkey Chudakatil mit SalesPersonID = 286 angezeigt.

  5. (Optional) Stellen Sie sicher, dass der @SalesPersonID-Abfrageparameter den Wert =Parameters!SalesPersonID.Value hat. Klicken Sie auf die Schaltfläche Ausgewähltes Dataset bearbeiten (), und wählen Sie die Registerkarte Parameter aus.

  6. (Optional) Prüfen Sie, ob der SalesPersonID-Berichtsparameter automatisch erstellt wurde. Wählen Sie im Menü Bericht den Befehl Berichtsparameter aus. Das Dialogfeld Berichtsparameter wird geöffnet. Prüfen Sie, ob SalesPersonID im Bereich Parameter vorhanden ist. Sie bearbeiten diesen Parameter in einem der folgenden Arbeitsschritte in diesem Thema.

    Im nächsten Arbeitsschritt erstellen Sie ein separates Dataset, mit dem die Werte für die Dropdownliste der verfügbaren Werte für den Berichtsparameter SalesPersonID bereitgestellt werden.

So erstellen Sie das SalesPersons-Dataset für die verfügbaren Werte

  1. Wählen Sie in der Dropdownliste Dataset die Option <NeuesDataset> aus. Das Dialogfeld Dataset wird geöffnet.

  2. Geben Sie einen Namen für das neue Dataset an. Geben Sie in das Feld Name den Namen SalesPersons ein. Dieses Dataset wird als Eingabe für die Liste der gültigen Werte verwendet.

  3. Fügen Sie die folgende Transact-SQL-Abfrage in den Abfragebereich ein:

    SELECT SP.SalesPersonID, C.FirstName, C.LastName
    FROM   Sales.SalesPerson AS SP INNER JOIN
         HumanResources.Employee AS E ON E.EmployeeID = SP.SalesPersonID INNER JOIN
         Person.Contact AS C ON C.ContactID = E.ContactID
    
  4. Klicken Sie auf die Schaltfläche Ausführen (!). Die Spalten SalesPersonID, FirstName und LastName werden im Resultset sowie als Felder im SalesPersons-Dataset angezeigt.

    Obwohl Sie Ihrer Abfrage berechnete Felder hinzufügen können (beispielsweise können Sie Ihrer SELECT-Anweisung LastName + N' ' + FirstName as Name als zusätzliche Spalte hinzufügen), steht in Reporting Services eine Möglichkeit zur Verfügung, neue berechnete Felder aus vorhandenen Datasetfeldern zu erstellen. Sie können dieses Feature verwenden, wenn für Ihre Abfrage gespeicherte Prozeduren verwendet werden, mit denen eine vordefinierte Gruppe von Spalten abgerufen wird. Im nächsten Arbeitsschritt erstellen Sie ein neues Feld für das Dataset, mit dem zwei vorhandene Felder kombiniert werden.

So fügen Sie ein neues berechnetes Datasetfeld hinzu

  1. Klicken Sie im Fenster Datasets mit der rechten Maustaste auf das SalesPersons-Dataset, und wählen Sie Hinzufügen aus.

    Wenn das Fenster Datasets nicht geöffnet ist, klicken Sie auf ALT+STRG+D.

  2. Geben Sie im Textfeld Name den Wert Name ein.

  3. Wählen Sie die Option Berechnetes Feld aus.

  4. Fügen Sie folgenden Ausdruck in das Textfeld ein:

    =Fields!LastName.Value + ", " + Fields!FirstName.Value
    
  5. Klicken Sie auf OK.

    Klicken Sie auf der Symbolleiste Daten auf Felder aktualisieren. Das neue Feld Name wird in der Feldauflistung für das SalesPersons-Dataset angezeigt.

    Im nächsten Arbeitsschritt legen Sie die NoRows-Eigenschaft des Tabellendatenbereichs fest. Der Text in dieser Eigenschaft wird angezeigt, wenn die Daten, die für das Dataset abgerufen wurden, das der Tabelle zugeordnet ist, keine Ergebnisse enthalten.

So fügen Sie der Tabelle eine NoRows-Meldung hinzu

  1. Klicken Sie auf die Registerkarte Layout, um zur Layoutansicht zu wechseln.

  2. Wählen Sie im Menü Ansicht den Befehl Eigenschaftenfenster aus.

  3. Wählen Sie aus der Dropdownliste der Objekte im Eigenschaftenfenster die Tabelle aus. Standardmäßig lautet der Tabellenname table1.

  4. Scrollen Sie im Eigenschaftenfenster zu NoRows.

  5. Klicken Sie auf das Textfeld neben NoRows, und geben Sie folgenden Text ein:

    No results available for this combination of parameters.

    Diese Meldung wird angezeigt, wenn als Ergebnis des Resultsets für einen bestimmten Abfrageparameter keine Zeilen vorliegen.

  6. (Optional) Klicken Sie auf Vorschau. Geben Sie im SalesPersonID-Parameter den Wert 1 ein. Die Meldung NoRows wird anstelle des Tabellendatenbereichs angezeigt.

    Im nächsten Arbeitsschritt bearbeiten Sie den automatisch generierten Berichtsparameter SalesPersonID. Sie legen die Berichtseigenschaften so fest, dass der Name des Vertriebsmitarbeiters in der Dropdownliste der verfügbaren Werte anstelle des Datenbankbezeichners angezeigt wird.

So legen Sie die Eigenschaften des SalesPersonID-Berichtsparameters fest

  1. Wählen Sie im Menü Bericht den Befehl Berichtsparameter aus. Das Dialogfeld Berichtsparameter wird geöffnet. Der SalesPersonID-Parameter wird im Bereich Parameter angezeigt.

  2. Wählen Sie in der Dropdownliste Datentyp die Option Integer aus.

  3. Geben Sie im Textfeld Eingabeaufforderung den Text Select Sales Person: ein.

  4. Wählen Sie im Abschnitt Verfügbare Werte die Option Aus Abfrage aus.

  5. Wählen Sie in der Dropdownliste Dataset die Option SalesPersons aus.

  6. Wählen Sie für das Feld Wert die Option SalesPersonID aus.

  7. Wählen Sie für das Feld Bezeichnung die Option Name aus.

    In der Dropdownliste der gültigen Werte für den SalesPersonID-Parameter wird daraufhin der Name des jeweiligen Vertriebsmitarbeiters anstelle der SalesPersonID angezeigt.

  8. Wählen Sie im Abschnitt Standardwerte die Option Aus Abfrage aus.

  9. Wählen Sie in der Dropdownliste Dataset die Option SalesPersons aus.

  10. Wählen Sie für das Feld Wert die Option SalesPersonID aus.

  11. Klicken Sie auf OK.

  12. Klicken Sie auf die Registerkarte Vorschau. Im Bericht wird eine Dropdownliste mit den Namen der Vertriebsmitarbeiter angezeigt.

Nächste Schritte

Sie haben einem vorhandenen Bericht erfolgreich einen einwertigen Parameter hinzugefügt. Als Nächstes ändern Sie die Parameter DayoftheWeek und SalesOrderID so, dass sie mehrwertig sind. Siehe Lektion 4: Hinzufügen eines mehrwertigen Parameters mithilfe von Alles auswählen.

Siehe auch

Andere Ressourcen

Verwenden von Parametern in Reporting Services
Verwenden von einwertigen und mehrwertigen Parametern
Verwenden von Parametern in Ausdrücken

Hilfe und Informationen

Informationsquellen für SQL Server 2005