Share via


Lektion 3: Ändern der Anfangssortierung und der interaktiven Sortierung mithilfe von Parametern

Neu: 17. Juli 2006

Sie können Berichte definieren, in denen die Leser des Berichts die Sortierreihenfolge für eine oder mehrere Spalten der Berichtsdaten in einem Datenbereich oder einer Datengruppe ändern können. Sie können es den Benutzern ermöglichen, die Sortierreihenfolge mithilfe einer interaktiven Sortierung oder einer parametrisierten Sortierung zu ändern.

Bei einer interaktiven Sortierung legen Sie die UserSort-Eigenschaften für das Textfeld eines Spalten- oder Gruppenkopfes fest. Nach dem Rendern des Berichts wird in der Spaltenüberschrift eine Schaltfläche für ein Sortierungssteuerelement angezeigt, und der Leser des Berichts kann zum Sortieren der Daten auf die Schaltfläche klicken. Die Daten sind zunächst nicht sortiert. Mit dem ersten Klick werden die Daten in aufsteigender Reihenfolge sortiert. Mit jedem weiteren Klick wird zwischen aufsteigender und absteigender Sortierreihenfolge gewechselt.

Mit der parametrisierten Sortierung erstellen Sie einen Parameter, mit dem die Sortierreihenfolge festgelegt wird, und Sie fügen im Sortierungsausdruck für ein Dataset, einen Datenbereich oder eine Gruppe einen Ausdruck mit diesem Parameter ein.

In dieser Lektion fügen Sie beide Sortierungstypen hinzu. Sie fügen einen Parameter mit dem Namen InitialSort hinzu und legen einen Sortierungsausdruck für die TotalDue-Tabellenspalte fest, um die Tabellengruppen zunächst nach der aggregierten Gesamtsumme zu sortieren. Sie erstellen einen SortBy-Parameter, mit dem die Leser des Berichts auswählen können, ob die Store-Spalte der Tabelle nach dem Geschäftsnamen oder der Anzahl der Verkaufsaufträge pro Geschäft sortiert werden soll. Sie fügen der Store-Spalte eine Schaltfläche für die interaktive Sortierung hinzu und legen deren Sortierungsausdruck so fest, dass er vom SortBy-Wert abhängig ist.

So öffnen Sie das Berichtsserverprojekt Advanced Parameters Tutorial

  1. Öffnen Sie in SQL Server Business Intelligence Development Studio das Berichtsserverprojekt Advanced Parameters Tutorial, wenn es noch nicht geöffnet ist.

  2. Doppelklicken Sie im Projektmappen-Explorer auf den Resellers Worldwide-Bericht. Der Bericht wird in der Layoutansicht geöffnet.

Im nächsten Arbeitsschritt ändern Sie den Gruppenkopf der Tabelle so, dass sowohl die Namen der Geschäfte als auch die Anzahl der Verkäufe pro Geschäft angezeigt werden. Sie erstellen einen Berichtsparameter, mit dem der Benutzer auswählen kann, wie die Tabellengruppe sortiert werden soll: nach den Namen der Geschäfte oder nach der Anzahl der Verkäufe pro Geschäft.

So fügen Sie dem Gruppenkopf den Gruppenanzahlwert hinzu

  1. Wählen Sie das Textfeld Store in der ersten Gruppenkopfzeile der Tabelle aus.

  2. Ersetzen Sie den Ausdruck =Fields!Store.Value durch folgenden Ausdruck:

    =Fields!Store.Value & vbCrLf & vbTab & "(" & 
    Count(Fields!SalesOrderNumber.Value, "table1_Store") & ")"
    
  3. (Optional) Klicken Sie auf Vorschau. Die Namen der Geschäfte und die Anzahl der Verkäufe pro Geschäft werden nun jeweils in einer separaten Zeile in der ersten Zeile des Gruppenkopfes angezeigt.

Im nächsten Arbeitsschritt erstellen Sie einen Berichtsparameter, mit dem die Benutzer auswählen können, wie die Tabellengruppe sortiert werden soll: nach den Namen der Geschäfte oder nach der Anzahl der Verkäufe.

So fügen Sie einen neuen Berichtsparameter hinzu

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

  2. Klicken Sie auf Hinzufügen. Es wird ein neuer Parameter mit Standardwerten erstellt.

  3. Geben Sie im Abschnitt Eigenschaften im Textfeld Name den Wert UserSortBy ein. Überprüfen Sie, ob der Datentyp gleich String ist.

  4. Geben Sie an der Eingabeaufforderung die Zeichenfolge Wie soll die Tabellengruppe sortiert werden? ein.

  5. Deaktivieren Sie die Option Leeren Wert zulassen.

  6. Wählen Sie im Abschnitt Verfügbare Werte die Option Nicht abgefragt aus. Verwenden Sie zum Eingeben von Werten die folgende Tabelle.

    Bezeichnung Wert

    Name of store

    Name

    Number of sales per store

    Number

  7. Wählen Sie im Abschnitt Standardwerte die Option Nicht abgefragt aus. Geben Sie im Textfeld den Wert Name ein.

  8. Klicken Sie auf OK.

Im nächsten Arbeitsschritt fügen Sie dem Gruppenkopf-Textfeld, in dem die Namen der Geschäfte und die Anzahl der Verkäufe angezeigt werden, ein UserSort-Steuerelement (auch als interaktive Sortierung bezeichnet) hinzu. Sie legen den Ausdruck für das Steuerelement so fest, dass der Wert des UserSortBy-Berichtsparameters verwendet wird. Wenn Sie den Bericht in der Vorschau anzeigen, wird für diese Spalte eine Sortierungsschaltfläche angezeigt. Sie können auf die Sortierungsschaltfläche klicken, um für das durch diesen Parameter definierte Feld bei der Sortierung zwischen aufsteigenden und absteigenden Werten zu wechseln.

So fügen Sie einer Gruppe eine Schaltfläche für die interaktive Sortierung hinzu

  1. Klicken Sie in der Tabellenkopfzeile mit der rechten Maustaste auf das erste Textfeld mit dem Namen textbox2, und wählen Sie Eigenschaften aus. Der Inhalt dieses Textfeldes ist die Zeichenfolge "Store". Das Dialogfeld Textfeldeigenschaften wird geöffnet.

  2. Klicken Sie auf die Registerkarte Interaktive Sortierung.

    Das Festlegen der Eigenschaften auf der Registerkarte Interaktive Sortierung entspricht dem Festlegen von Eigenschaften für UserSort für ein Textfeld.

  3. Wählen Sie die Option Diesem Textfeld einen interaktiven Sortierungsvorgang hinzufügen aus.

  4. Klicken Sie auf die Schaltfläche Ausdruck (Fx). Das Dialogfeld Ausdruck bearbeiten wird geöffnet.

  5. Fügen Sie den folgenden Ausdruck in den Ausdrucksbereich ein:

    =IIF(Parameters!UserSortBy.Value="Name",Fields!Store.Value,
    Count(Fields!SalesOrderNumber.Value, "table1_Store"))
    

    Wenn Sie diesen Ausdruck direkt in das Textfeld einfügen, wird nur die erste Zeile des Ausdrucks eingefügt.

  6. Klicken Sie auf OK.

  7. Wählen Sie im Abschnitt Datenbereich oder Gruppierung, der oder die sortiert werden soll, die Option Datenbereich oder Gruppierung auswählen aus. Wählen Sie in der Dropdownliste die Option table1 aus. Dabei handelt es sich um den Datenbereich der Tabelle.

  8. Wählen Sie im Abschnitt Sortierungsausdruck in diesem Bereich auswerten die Option Datenbereich oder Gruppierung auswählen aus. Wählen Sie in der Dropdownliste den Eintrag table1_Store aus. Dabei handelt es sich um die Gruppierung mit den Geschäften innerhalb der Tabelle.

    Wenn der UserSortBy-Parameter auf Name festgelegt ist, ergibt dieser Ausdruck Fields!Store.Value, und die Tabellengruppen werden wie in der vorherigen Lektion sortiert, d. h. alphabetisch nach den Namen der Geschäfte. Wenn der UserSortBy-Parameter nicht auf Name festgelegt ist, werden die Tabellengruppen nach der Anzahl der Verkäufe in der Gruppe in aufsteigender Reihenfolge sortiert.

  9. Klicken Sie auf Vorschau.

    Die Store-Spalte in der Tabelle verfügt nun über eine Schaltfläche für die interaktive Sortierung. Die Anfangssortierreihenfolge ist der Standardwert für die Tabellengruppensortierung. Wenn Sie das erste Mal auf die Schaltfläche für die interaktive Sortierung klicken, wird die Spalte entsprechend dem UserSortBy-Parameterwert sortiert. Mit jedem weiteren Klick auf die Schaltfläche für die interaktive Sortierung wird zwischen aufsteigender und absteigender Sortierreihenfolge gewechselt.

  10. Ändern Sie den Parameterwert für UserSortBy in der Dropdownliste in Number of sales per store. Klicken Sie auf Bericht anzeigen.

    Die Änderungen in der Sortierungsspalte werden erst vorgenommen, wenn Sie den Bericht erneut verarbeiten, damit der Parameterausdruck für diese neue Parametereinstellung neu ausgewertet wird. Die Spalte wird nun nach der Anzahl der Verkäufe und nicht nach den Namen der Geschäfte sortiert.

Im nächsten Arbeitsschritt stellen Sie einen Parameter bereit, mit dem die Benutzer auswählen können, wie die Detailzeilen der Tabelle sortiert werden sollen.

So fügen Sie einen neuen Berichtsparameter für die parametrisierte Sortierung hinzu

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

  2. Klicken Sie auf Hinzufügen. Es wird ein neuer Parameter mit Standardwerten erstellt.

  3. Geben Sie im Abschnitt Eigenschaften im Textfeld Name den Namen InitialSort ein. Überprüfen Sie, ob der Datentyp gleich String ist.

  4. Geben Sie an der Eingabeaufforderung die Zeichenfolge How do you want to sort the table detail rows? ein.

  5. Deaktivieren Sie die Option Leeren Wert zulassen.

  6. Wählen Sie im Abschnitt Verfügbare Werte die Option Nicht abgefragt aus. Verwenden Sie zum Eingeben von Werten die folgende Tabelle.

    Bezeichnung Wert

    Total due

    TotalDue

    Sales order date

    OrderDate

  7. Wählen Sie im Abschnitt Standardwerte die Option Nicht abgefragt aus. Geben Sie im Textfeld den Wert TotalDue ein.

  8. Klicken Sie auf OK.

Im nächsten Arbeitsschritt definieren Sie einen Sortierungsausdruck, der den InitialSort-Berichtsparameter verwendet, damit die Detailzeilen der Tabelle anhand des von Ihnen ausgewählten Wertes sortiert werden.

So fügen Sie der Detailzeile der Tabelle einen Sortierungsausdruck hinzu

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

  2. Klicken Sie auf die Registerkarte Sortierung.

  3. Wählen Sie in der Dropdownliste des Textfeldes Ausdruck die Option <Ausdruck> aus. Das Dialogfeld Ausdruck bearbeiten wird geöffnet.

  4. Ersetzen Sie das Gleichheitszeichen (=) durch folgenden Wert:

    =IIF(InStr(Parameters!InitialSort.Value,"TotalDue")>0,Fields!TotalDue.Value,Fields!OrderDate.Value)
    

    Dadurch wird der Parameter auf den Zeichenfolgenwert "TotalDue" überprüft. Wenn dieser gefunden wurde, wird das TotalDue-Feld für die Sortierreihenfolge verwendet. Andernfalls wird das OrderDate-Feld verwendet. Die Richtung der Sortierreihenfolge (Aufsteigend oder Absteigend) ist nicht ausdrucksbasiert. Daher wird der von Ihnen auf der Registerkarte Sortierung festgelegte Wert auf das im ausgewerteten Ausdruck angegebene Feld angewendet.

  5. Klicken Sie auf OK.

  6. (Optional) Ändern Sie den Parameterwert für InitialSort, und klicken Sie auf Bericht anzeigen. Erweitern Sie den Knoten für das Geschäft Efficient Cycling. Überprüfen Sie, ob die Detailzeilen entsprechend der InitialSort-Einstellung sortiert werden.

Nächste Schritte

Sie haben erfolgreich zwei Parameter hinzugefügt, mit denen gesteuert wird, ob mit der Schaltfläche für die interaktive Sortierung in der Store-Spalte nach den Namen der Geschäfte oder nach der Anzahl der Verkäufe sortiert wird und ob die Detailzeilen einer Tabelle nach dem Bestelldatum oder nach dem Gesamtbetrag sortiert werden. In der nächsten Lektion erfahren Sie, wie Sie den anfänglichen Drilldownzustand dieses Berichts mithilfe eines ausgeblendeten booleschen Parameters steuern. Siehe Lektion 4: Hinzufügen eines booleschen Parameters zum Steuern des anfänglichen Drilldownzustands.

Siehe auch

Andere Ressourcen

Verwenden von Parametern in Reporting Services
Sortieren von Daten

Hilfe und Informationen

Informationsquellen für SQL Server 2005