Share via


Lektion 2: Hinzufügen von Parametern zum Filtern nach Datum

Neu: 17. Juli 2006

Indem Sie in eine Abfrage für Ihren Bericht Parameter für ein Start- und Enddatum einfügen, können Sie einen Datumsbereich angeben, mit dem die aus der Datenquelle abgerufenen Daten eingeschränkt werden. Sie können weitere Parameter erstellen, die Sie zum Filtern der Daten verwenden können, nachdem diese aus der Datenquelle abgerufen wurden.

In dieser Lektion fügen Sie die Abfrageparameter @StartDate und @EndDate hinzu. Sie werden feststellen, dass die Berichtsparameter StartDate und EndDate (ohne den Abfrageparameterindikator @), bei denen nach Groß-/Kleinschreibung unterschieden wird, automatisch für Sie erstellt werden. Beachten Sie, dass die verschiedenen Datenprovider unterschiedliche Abfrageparameterindikatoren verwenden. Der Oracle-Datenprovider verwendet beispielsweise statt des at-Zeichens (@) einen Doppelpunkt (:).

Sie legen den Datentyp der Parameter auf DateTime fest und werden dann bemerken, dass auf der Symbolleiste ein Kalendersteuerelement mit dem Parametertextfeld angezeigt wird. Sie legen Standardwerte für die Parameter fest, damit der Bericht automatisch ausgeführt werden kann. Abschließend erstellen Sie den Berichtsparameter DayofWeek, der nicht an einen Abfrageparameter gebunden ist, und verwenden diesen zum Filtern von Daten, nachdem die Daten aus der Datenquelle abgerufen wurden.

So fügen Sie der Abfrage Datumsparameter hinzu

  1. Wählen Sie in der Datenansicht das AdventureWorks-Dataset aus.

  2. Ersetzen Sie die vorhandene Abfrage durch die folgende Abfrage:

    SELECT S.OrderDate, 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))
    -- Accurate Enddate would be '20020228 23:59:59.997'
    
    Aa337401.note(de-de,SQL.90).gifHinweis:
    In SQL Server werden DATETIME-Daten mit einer Genauigkeit von 300stel-Sekunden gespeichert. Weitere Informationen finden Sie unter Datum und Uhrzeit (Transact-SQL). Wenn beim Filtern mithilfe der DateTime-Variablen nicht die erwarteten Ergebnisse ausgegeben werden, müssen Sie in Ihrem Abfrageparameter möglicherweise eine genauere Zeitangabe verwenden.

    In diesem Lernprogramm verwenden Sie ungefähre datetime-Werte.

  3. Klicken Sie auf der Symbolleiste auf Ausführen (!). Das Dialogfeld Abfrageparameter definieren wird geöffnet.

  4. Geben Sie in der Spalte Parameterwert einen Wert für @StartDate ein. Beispiel: 20010101

  5. Geben Sie in der Spalte Parameterwert einen Wert für @EndDate ein. Beispiel: 20030101

  6. Klicken Sie auf OK. Die Berichtsparameter StartDate und EndDate werden automatisch erstellt und haben standardmäßig den String-Datentyp. In den nächsten drei Schritten legen Sie diese Parameter auf den DateTime-Datentyp fest.

  7. Klicken Sie im Menü Bericht auf Berichtsparameter. Das Dialogfeld Berichtsparameter wird geöffnet.

  8. Überprüfen Sie im Listenfeld Parameter, ob StartDate hervorgehoben ist. Wählen Sie in der Dropdownliste Datentyp den Datentyp DateTime aus.

  9. Wählen Sie im Listenfeld Parameter den Parameter EndDate aus. Wählen Sie in der Dropdownliste Datentyp den Datentyp DateTime aus.

  10. Klicken Sie auf OK.

  11. Klicken Sie auf Vorschau. Für die Parameter StartDate und EndDate wird auf der Symbolleiste jeweils ein Kalendersteuerelement angezeigt. Kalendersteuerelemente werden automatisch angezeigt, wenn der Parameter den DateTime-Datentyp hat und Sie keine Liste mit verfügbaren Werten definiert haben. Wenn Sie eine Liste mit verfügbaren Werten definieren, wird statt eines Kalendersteuerelements eine Dropdownliste mit Werten erstellt.

    In diesem Lernprogramm geben Sie einen Wert für die Daten ein, anstatt ein Kalendersteuerelement zu verwenden.

  12. Geben Sie im Parametertextfeld StartDate das Datum 2001-01-01 ein.

  13. Geben Sie im Parametertextfeld EndDate das Datum 2003-01-01 ein.

  14. Klicken Sie auf Bericht anzeigen. Im Bericht werden nur die Datensätze angezeigt, die den Berichtsparameterwerten entsprechen.

Nachdem Sie Abfrageparameter für den Bericht erstellt haben, können Sie für diese Parameter Standardwerte hinzufügen. Mithilfe der Standardparameter kann der Bericht automatisch ausgeführt werden. Andernfalls muss der Benutzer Parameterwerte eingeben, damit der Bericht ausgeführt wird.

So legen Sie Standardwerte für Datumsparameter fest

  1. Klicken Sie in der Layoutansicht im Menü Bericht auf den Befehl Berichtsparameter. Das Dialogfeld Berichtsparameter wird geöffnet.

  2. Überprüfen Sie im Listenfeld Parameter, ob StartDate markiert ist.

  3. Wählen Sie im Abschnitt mit den Standardwerten die Option Nicht abgefragt aus, und geben Sie 2001-01-01 ein. Drücken Sie zum Verlassen des Textfeldes die TAB-TASTE.

  4. Wählen Sie im Listenfeld Parameter den Parameter EndDate aus.

  5. Wählen Sie im Abschnitt mit den Standardwerten die Option Nicht abgefragt aus, und geben Sie 2003-01-01 ein. Drücken Sie zum Verlassen des Textfeldes die TAB-TASTE.

  6. Klicken Sie auf OK.

  7. Klicken Sie auf Vorschau. Der Bericht wird sofort ausgeführt, da für alle Parameter Standardwerte definiert sind.

    Wenn der Bericht von Benutzern ausgeführt wird, können diese für die Standardwerte Parameterwerte festlegen, die im Bereich der Abfrageparameter liegen. Sie können beispielsweise Berichtsparameterwerte bereitstellen, mit denen die gerenderten Daten auf einen Zeitraum von einem Monat eingeschränkt werden.

So fügen Sie einer Abfrage ein neues Feld zur Verwendung beim Filtern hinzu

  1. Wählen Sie in der Datenansicht das AdventureWorks-Dataset aus.

  2. Definieren Sie in der Abfrage eine zusätzliche berechnete Spalte für den Wochentag, an dem ein Verkauf stattfand, indem Sie der SELECT-Anweisung den folgenden Befehl hinzufügen: DATENAME(weekday, S.OrderDate) as Weekday.

    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
    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))
    
  3. Klicken Sie auf Ausführen (!). Es sollten eine Spalte mit dem Namen Weekday und die Namen der Wochentage angezeigt werden.

  4. Überprüfen Sie im Fenster Datasets, ob es sich bei Weekday um ein Feld handelt.

    Aa337401.note(de-de,SQL.90).gifHinweis:
    Wenn das Fenster Datasets nicht angezeigt wird, wählen Sie im Menü Sichten den Befehl Datasets aus.

    Sie haben nun ein zusätzliches Datasetfeld mit dem Namen Weekday erstellt. Wenn Sie einen Berichtsparameter manuell erstellen und an dieses Feld binden, können Benutzer die Berichtsdaten nach dem Wochentag filtern.

So fügen Sie einen neuen Berichtsparameter hinzu

  1. Klicken Sie auf die Registerkarte Layout.

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

  3. Klicken Sie auf Hinzufügen. Es wird ein neuer Parameter, Report_Parameter_2, mit Standardwerten angezeigt.

  4. Ersetzen Sie im Abschnitt Eigenschaften im Textfeld Name den Wert Report_Parameter_2 durch DayoftheWeek. Überprüfen Sie, ob der Datentyp gleich String ist.

  5. Geben Sie an der Eingabeaufforderung die Zeichenfolge Filter on which day of the week: ein.

  6. Deaktivieren Sie die Option Leeren Wert zulassen.

  7. Klicken Sie im Abschnitt Verfügbare Werte auf die Option Nicht abgefragt. Belassen Sie die Einträge leer.

  8. Klicken Sie im Abschnitt Standardwerte auf die Option Nicht abgefragt. Geben Sie im Textfeld Sunday ein.

  9. Klicken Sie auf OK.

So legen Sie einen Tabellenfilter mit Parameterausdrücken fest

  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. Wählen Sie in der Dropdownliste der Spalte Ausdruck die Option =Fields!Weekday.Value aus.

  5. Überprüfen Sie, ob für Operator das Gleichheitszeichen (=) angegeben ist.

  6. Klicken Sie auf das Textfeld Wert, und wählen Sie aus der Dropdownliste den Wert <Ausdruck> aus. Das Dialogfeld Ausdruck bearbeiten wird geöffnet.

  7. Klicken Sie im Bereich der globalen Variablen auf Parameter. Die aktuelle Liste der Parameter wird im gegenüberliegenden Bereich angezeigt.

  8. Doppelklicken Sie auf DayoftheWeek. Der Parameterausdruck wird dem Ausdruckstextfeld hinzugefügt. Der folgende Ausdruck wird nun im Ausdruckstextfeld angezeigt: =Parameters!DayoftheWeek.Value.

  9. Klicken Sie auf OK.

  10. Klicken Sie auf OK.

    Der Filter für die Tabelle ist nun so festgelegt, dass der Wert im Feld Weekday mit dem Parameterwert für DayoftheWeek verglichen wird. Wenn Sie beispielsweise auf der Berichtssymbolleiste für DayoftheWeek den Wert Sunday eingeben, werden vom Berichtsprozessor nur die Zeilen in der Tabelle verarbeitet, bei denen der Wert für das Feld Weekday dem Wert Sunday entspricht.

  11. Klicken Sie auf Vorschau. Da für alle Parameter Standardwerte festgelegt sind, wird der Bericht automatisch ausgeführt. In der Tabelle werden nur Werte angezeigt, die in dem durch StartDate und EndDate definierten Datumsbereich liegen und auf einen Sonntag (Sunday) fallen.

  12. Im nächsten optionalen Arbeitsschritt fügen Sie dem Tabellenkopf Formatierungen hinzu.

(Optional) So legen Sie eine Hintergrund- und eine Vordergrundfarbe für die Tabellenkopfzeile fest

  1. Klicken Sie auf die Registerkarte Layout.

  2. Klicken Sie auf die Tabelle. Die Tabellenhandles werden angezeigt.

  3. Klicken Sie auf die Tabellenkopfzeile. Klicken Sie auf der Symbolleiste für das Layout auf die Schaltfläche Hintergrundfarbe. Das Dialogfeld Farbe auswählen wird geöffnet.

  4. Wählen Sie auf der Registerkarte Web die Option Dunkelrot aus.

  5. Klicken Sie auf OK.

    Wählen Sie anschließend eine Schriftfarbe aus.

  6. Klicken Sie auf der Symbolleiste für das Layout auf die Schaltfläche Vordergrundfarbe. Das Dialogfeld Farbe auswählen wird geöffnet.

  7. Wählen Sie auf der Registerkarte Web die Option Weiß aus.

  8. Klicken Sie auf OK.

  9. Klicken Sie auf Vorschau. Die Tabelle wird mit den für die Tabellenkopfzeile ausgewählten Farben gerendert.

Nächste Schritte

Sie haben erfolgreich Abfrageparameter und Berichtsparameter erstellt, Standardwerte für die Parameter festgelegt und einen Berichtsparameter an ein berechnetes Feld gebunden. In der nächsten Lektion erfahren Sie, wie Sie eine Liste mit verfügbaren oder gültigen Werten für einen Parameter erstellen. Siehe Lektion 3: Hinzufügen eines einwertigen Parameters mit einer Liste verfügbarer Werte.

Siehe auch

Aufgaben

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

Andere Ressourcen

ISO 8601-Format

Hilfe und Informationen

Informationsquellen für SQL Server 2005