Share via


Lektion 4: Hinzufügen eines mehrwertigen Parameters mithilfe von Alles auswählen

Aktualisiert: 12. Dezember 2006

In dieser Lektion ändern Sie die Parameter SalesOrderID und DayoftheWeek aus einwertigen Parametern in mehrwertige Parameter. Mit mehrwertigen Parametern können Sie mehr als einen Wert für einen Berichtsparameter auswählen. Zum Ändern des Berichtsparameters SalesOrderID ändern Sie die Abfrage für das AdventureWorks-Dataset so, dass ein Test auf @SalesPersonID in der Gruppe der ausgewählten Werte statt in Übereinstimmung mit einem einzelnen Wert ausgeführt wird, und aktivieren Sie die Mehrwertig-Eigenschaft des Berichtsparameters. Zum Ändern des Berichtsparameters DayoftheWeek aktivieren Sie die Mehrwertig-Eigenschaft, legen die verfügbaren Werte aus einem neuen Dataset fest und geben einen Ausdruck für die Standardwerte an. Sie erstellen ein neues Dataset, um verfügbare Werte für den DayoftheWeek-Parameter bereitzustellen. Abschließend fügen Sie dem Bericht ein Textfeld hinzu, in dem Parameterwerte für die Auswahlmöglichkeiten von DayoftheWeek angezeigt werden.

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 Layoutansicht geöffnet.

  3. Klicken Sie auf die Registerkarte Daten.

So ändern Sie die Datasetabfrage so, dass geprüft wird, ob ein Wert in einer Gruppe von Werten enthalten ist

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

  2. Ändern Sie die WHERE-Klausel der vorhandenen Abfrage, indem Sie den @SalesPersonID-Test von Gleichheit (= (@SalesPersonID)) in Enthaltensein ((IN (@SalesPersonID)) ändern.

    Ersetzen Sie die Abfragezeichenfolge für dieses Dataset durch die folgende Abfrage.

    SELECT S.OrderDate, DATENAME(weekday, S.OrderDate) as Weekday,
        S.SalesOrderNumber, S.TotalDue, C.FirstName, C.LastName
    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 IN (@SalesPersonID)
       )
    
  3. Klicken Sie auf die Schaltfläche Ausführen (!). Wenn Sie nach den Abfrageparametern gefragt werden, verwenden Sie die folgende Tabelle zum Eingeben der Werte. Das Testen mehrwertiger Parameter wird im Abfrage-Designer nicht unterstützt.

    @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.

So legen Sie die Eigenschaften des Berichtsparameters SalesPersonID fest

  1. Wählen Sie im Menü Bericht den Befehl Berichtsparameter aus. Das Dialogfeld Berichtsparameter wird geöffnet.

  2. Wählen Sie im Bereich Parameter den Wert SalesPersonID aus.

  3. Aktivieren Sie im Abschnitt Eigenschaften die Option Mehrwertig.

  4. Geben Sie im Textfeld Eingabeaufforderung den Text Select Sales Persons: ein.

  5. Klicken Sie auf OK.

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

Aa337396.note(de-de,SQL.90).gifHinweis:
Der Wert (Alles auswählen) wird als erster Wert in einer Dropdownliste der verfügbaren Werte für einen mehrwertigen Parameter angegeben. Mit diesem Kontrollkästchen können Sie alle Werte auswählen bzw. die Auswahl aller Werte aufheben.
Aa337396.note(de-de,SQL.90).gifHinweis:
Die Option Alles auswählen wurde in SQL Server 2005 Service Pack 1 deaktiviert, sie wurde jedoch in SQL Server 2005 Service Pack 2 wiederhergestellt.

So fügen Sie ein neues Dataset für die verfügbaren Werte für DaysoftheWeek hinzu

  1. Wählen Sie auf der Registerkarte Daten aus der Dropdownliste Datasets die Option <Neues Dataset> aus.

  2. Legen Sie die Datenquelle auf die AdventureWorks-Datenquelle fest.

  3. Geben Sie in das Feld Name den Namen WeekDaysfromQuery ein.

  4. Fügen Sie folgende Abfragezeichenfolge im Abfragebereich ein.

    SET DATEFIRST 1;
    SELECT DISTINCT 
       DATEPART(weekday, S.OrderDate) as WeekDayNumber,
       DATENAME(weekday, S.OrderDate) as Weekday
       FROM Sales.SalesOrderHeader S
    Order by WeekDayNumber
    

    Mit DATEFIRST wird der Wochentag festgelegt, der als erster Tag verwendet werden soll. Beispielsweise wird mit SET DATEFIRST 7 die Reihenfolge der Wochentage geändert, sodass Sonntag der erste Tag ist. Weitere Informationen finden Sie unter SET DATEFIRST (Transact-SQL).

    In diesem Lernprogramm ist Montag der erste Tag der Woche.

  5. Klicken Sie auf OK.

  6. Klicken Sie auf der Abfrage-Designer-Symbolleiste auf die Schaltfläche Ausführen (!). Im Resultset werden Ordinalzahlen (Ordnungszahlen) und Wochentage angezeigt.

So legen Sie die Eigenschaften des Berichtsparameters DayoftheWeek fest

  1. Wählen Sie im Menü Bericht den Befehl Berichtsparameter aus. Das Dialogfeld Berichtsparameter wird geöffnet.

  2. Wählen Sie im Bereich Parameter den Parameter DayoftheWeek aus. Dieser Parameter wurde in Lektion 2 erstellt.

  3. Aktivieren Sie im Abschnitt Eigenschaften die Option Mehrwertig.

  4. Geben Sie im Textfeld Eingabeaufforderung die Zeichenfolge Filter on which days of the week: ein.

  5. Wählen Sie im Abschnitt Verfügbare Werte aus der Dropdownliste Datasets den Eintrag WeekDaysfromQuery aus.

  6. Wählen Sie in der Dropdownliste Wertfeld den Eintrag Weekday aus.

  7. Wählen Sie in der Dropdownliste Bezeichnungsfeld den Eintrag Weekday aus.

    Geben Sie für die Standardwerte im ersten Textfeld Wert den Wert Saturday und im zweiten Textfeld Wert den Wert Sunday ein.

  8. Klicken Sie auf OK.

    Bevor Sie eine Vorschau für den Bericht anzeigen können, müssen Sie den für den Tabellendatenbereich definierten Filterausdruck so ändern, dass der IN-Operator verwendet wird, da der DayoftheWeek-Parameter nun mehrwertig ist.

So ändern Sie den Filter so, dass ein mehrwertiger Parameter verwendet wird

  1. Wählen Sie die Tabelle in der Layoutansicht aus. Die Tabelle wird mit einem grauen Rahmen angezeigt.

  2. Klicken Sie mit der rechten Maustaste auf den Rahmen der Tabelle, und wählen Sie Eigenschaften aus. Das Dialogfeld Tabelleneigenschaften wird geöffnet.

  3. Klicken Sie auf die Registerkarte Filter.

  4. Vergewissern Sie sich, dass die Spalte Ausdruck (von der Dropdownliste) den Wert =Fields!Weekday.Value enthält.

  5. Ändern Sie den Operator vom Gleichheitszeichen (=) in den In-Operator.

  6. Vergewissern Sie sich, dass das Textfeld Wert (von der Dropdownliste) den Wert =Parameters!DayoftheWeek.Value enthält.

  7. Klicken Sie auf OK.

    Der Filter für die Tabelle ist nun so festgelegt, dass der Wert des Feldes Weekday mithilfe des In-Operators mit dem Wert des Parameters DayoftheWeek verglichen wird. Wenn Sie mehrere Werte für den Berichtsparameter auswählen, testet der Filter jede Zeile der Tabelle daraufhin, ob das Feld Weekday in der DayoftheWeek-Auflistung vorhanden ist.

  8. Klicken Sie auf die Registerkarte Vorschau. Im Bericht wird der Berichtsparameter DaysoftheWeek mit den Standardwerten Saturday und Sunday angezeigt.

Aa337396.note(de-de,SQL.90).gifHinweis:
Der Wert (Alles auswählen) wird (mit der in einem der vorherigen Arbeitsschritte genannten Ausnahme) als erster Wert in einer Dropdownliste der verfügbaren Werte für einen mehrwertigen Parameter angegeben. Mit diesem Kontrollkästchen können Sie alle Werte auswählen bzw. die Auswahl aller Werte aufheben.

So fügen Sie ein Textfeld hinzu, in dem Parameterwerte angezeigt werden

  1. Wählen Sie die Tabelle in der Layoutansicht aus. Drücken Sie die NACH-UNTEN-TASTE mehrmals, um die Tabelle nach unten zu verschieben und die Höhe des Berichts zu vergrößern.

  2. Ziehen Sie ein Textfeld aus der Toolbox in den Bereich oberhalb der Tabelle. Wählen Sie eine Ecke des Textfeldes aus, und vergrößern Sie dessen Breite so, dass sie mit der Breite der Tabelle übereinstimmt.

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

    ="From " & Parameters!StartDate.Value & " to " & 
    Parameters!EndDate.Value & vbCrLf & "For the following " & 
    Parameters!DayoftheWeek.Count & " days of the week: " & 
    Join(Parameters!DayoftheWeek.Value,", ") & vbCrLf &
    "First and last selected salespersons: " & 
    Parameters!SalesPersonID.Label(0) & " and " & 
    Parameters!SalesPersonID.Label(Parameters!SalesPersonID.Count-1)
    

    Für diesen Ausdruck müssen Sie verschiedene Dinge beachten:

    • Sie können auf die Parameterbezeichnung statt auf den Wert verweisen. Beispielsweise Parameters!SalesPersonID.Label statt Parameters!SalesPersonID.Value.
    • Verwenden Sie den nullbasierten Index, wenn Sie sich auf ein einzelnes Element einer Parameterauflistung beziehen möchten. Beispiel: Parameters!SalesPersonID.Label(0).
    • Verwenden Sie keinen Index, wenn Sie sich auf die gesamte Auflistung beziehen möchten. Beispiel: Parameters!SalesPersonID.Value.
    • Verwenden Sie Parameters!SalesPersonID.Count, um die Anzahl der Werte zu ermitteln.
    • Zudem können Sie ermitteln, ob ein Parameter mehrwertig ist. Beispiel: Parameters!SalesPersonID.IsMultivalue.
    • Sie können alle ausgewählten Werte in einem mehrwertigen Parameter verketten, indem Sie die Join-Funktion aus Visual Basic verwenden. Beispiel: Join(Parameters!DayoftheWeek.Value,", ").
  4. Klicken Sie auf Vorschau. Überprüfen Sie beim Klicken auf Bericht anzeigen, ob im Textfeld die Werte angezeigt werden, die Sie in den Parametern ausgewählt haben.

Nächste Schritte

Sie haben die Berichtsparametereigenschaften erfolgreich von einwertig in mehrwertig geändert. Sie haben die erforderlichen Änderungen in einer Abfrage, einem Filter und in einem Ausdruck vorgenommen. Diese Elemente werden mithilfe einer mehrwertigen Parameterauflistung berücksichtigt. Sie haben gelernt, mehrwertige Parameter in einem Ausdruck zu verwenden. In der nächsten Lektion erfahren Sie, wie ein boolescher Parameter erstellt wird, mit dem gesteuert werden kann, wie viele Details in einem Bericht angezeigt werden. Siehe Lektion 5: Hinzufügen eines Parameters zum Steuern der Zeilensichtbarkeit.

Änderungsverlauf

Version Verlauf

12. Dezember 2006

Geänderter Inhalt:
  • Die Option Alles auswählen wurde in SP 2 wieder aufgenommen.

Siehe auch

Aufgaben

Lektion 1: Erstellen eines Berichtsserverprojekts für das Lernprogramm zu Parametern

Andere Ressourcen

Verwenden von Parametern in Reporting Services

Hilfe und Informationen

Informationsquellen für SQL Server 2005