Freigeben über


Filtern, Gruppieren und Sortieren von Daten in paginierten Berichten in Berichts-Generator

Gilt für: Microsoft Report Builder (SSRS) Power BI Report Builder Berichts-Designer in SQL Server Data Tools

In einem paginierten Bericht werden Ausdrücke zum Steuern, Organisieren und Sortieren von Berichtsdaten verwendet. Beim Erstellen von Datasets und Entwerfen des Berichtslayouts werden die Eigenschaften von Berichtselementen standardmäßig automatisch auf Ausdrücke festgelegt. Dieses Verhalten basiert auf den Datasetfeldern, Parametern und anderen Elementen, die im Berichtsdatenbereich angezeigt werden. Sie können einer Tabellen- oder Matrixzelle auch eine interaktive Sortierschaltfläche hinzufügen, um dem Benutzer das interaktive Ändern der Zeilensortierreihenfolge für Gruppen oder Zeilen innerhalb von Gruppen zu ermöglichen.

  • Filterausdrücke: Ein Filterausdruck testet Daten auf Grundlage eines von Ihnen angegebenen Vergleichs und bestimmt so, ob sie ein- oder ausgeschlossen werden. Filter werden auf Daten in einem Bericht angewendet, nachdem die Daten über eine Datenverbindung abgerufen wurden. Sie können einer beliebigen Kombination von Filtern die folgenden Elemente hinzufügen:

    • Freigegebenes Dataset wird auf dem Berichtsserver definiert.
    • Freigegebene Datasetinstanz oder eingebettetes Dataset in einem Bericht.
    • Datenbereich, z. B. eine Tabelle oder ein Diagramm.
    • Datenbereichsgruppe, z. B. eine Zeilengruppe in einer Tabelle oder eine Kategoriegruppe in einem Diagramm.
  • Gruppierungsausdrücke: Ein Gruppierungsausdruck organisiert Daten basierend auf einem Datasetfeld oder einem anderen Wert. Gruppierungsausdrücke werden automatisch erstellt, wenn Sie das Berichtslayout erstellen. Der Berichtsprozessor wertet Gruppierungsausdrücke nach dem Anwenden der Filter aus, wenn Berichtsdaten und Datenbereiche kombiniert werden. Sie können einen Gruppierungsausdruck nach seiner Erstellung weiter anpassen.

  • Sortierungsausdrücke: Ein Sortierungsausdruck steuert die Reihenfolge, in der Daten in einem Datenbereich angezeigt werden. Sortierungsausdrücke werden automatisch erstellt, wenn Sie das Berichtslayout erstellen. Ein Sortierungsausdruck für eine Gruppe wird standardmäßig auf die gleichen Werte festgelegt wie der Gruppierungsausdruck. Sie können einen Sortierungsausdruck nach seiner Erstellung weiter anpassen.

  • Interaktive Sortierung: Wenn Sie es dem Benutzer ermöglichen möchten, die Sortierreihenfolge einer Spalte zu festzulegen oder umzukehren, können Sie einem Spaltenheader oder einer Gruppenkopfzelle in einer Tabelle oder Matrix eine interaktive Sortierschaltfläche hinzufügen.

Sie können einen Ausdruck ändern, indem Sie einen Verweis auf einen Berichtsparameter hinzufügen, um den Benutzern das Anpassen von Filter-, Gruppierungs- oder Sortierungsausdrücke zu erleichtern. Weitere Informationen finden Sie unter Erstellen von Parametern für paginierte Berichte (Berichts-Generator).

Weitere Informationen und Beispiele finden Sie in den folgenden Artikeln:

Hinweis

Sie können paginierte Berichtsdefinitionsdateien (.rdl) im Berichts-Generator von Microsoft, im Power BI Report Builder und im Berichts-Designer in SQL Server-Datentools erstellen und ändern.

Filtern von Daten in einem Bericht

Filter sind Teile eines Berichts, mit denen Berichtsdaten gesteuert werden können, nachdem sie über die Datenverbindung abgerufen wurden. Verwenden Sie Filter, wenn Sie eine Datasetabfrage nicht ändern können, um Daten vor dem Abrufen aus einer externen Datenquelle zu filtern.

Erstellen Sie möglichst Datasetabfragen, die nur die Daten zurückgeben, die Sie im Bericht anzeigen möchten. Wenn Sie die Menge abzurufender und zu verarbeitender Daten reduzieren, verbessern Sie die Berichtsleistung. Weitere Informationen finden Sie unter Erstellen von Berichten zu eingebetteten und freigegebenen Datasets (Berichts-Generator und SSRS).

Nachdem die Daten aus der externen Datenquelle abgerufen wurden, können Sie Filter hinzufügen zu:

  • Datasets.
  • Datenbereiche.
  • Datenbereichsgruppen, einschließlich Detailgruppen.

Filter werden zum ersten Mal auf das Dataset angewendet und fahren dann mit dem Datenbereich fort. Dann wird der Filter auf die Gruppe angewandt, bei Gruppenhierarchien in der Reihenfolge von oben nach unten. In einer Tabelle, Matrix oder Liste werden Filter für Zeilen- und Spaltengruppen sowie für angrenzende Gruppen unabhängig voneinander angewendet. In Diagrammen werden Filter für Kategorie- und Reihengruppen unabhängig voneinander angewendet. Weitere Informationen finden Sie unter Hinzufügen von Datasetfiltern, Datenbereichsfiltern und Gruppenfiltern zu einem paginierten Bericht (Report Builder).

Für jeden Filter geben Sie eine Filtergleichungan. Eine Filterformel enthält drei Elemente:

  • Datasetfeld oder Ausdruck, das die zu filternden Daten angibt.
  • Operator.
  • Value to compare.

Nur die mit der Filterbedingung übereinstimmenden Datenwerte werden bei der Verarbeitung des Elements berücksichtigt.

Sie können Parameter in Filterausdrücke einschließen, um Benutzern das Steuern der Daten in einem Bericht zu ermöglichen. Weitere Informationen finden Sie unter Verweise auf Parametersammlungen in einem paginierten Bericht (Berichts-Generator).

Sie können einen Verweis auf das integrierte UserID-Feld in einen Filter einschließen, um eine Sicht für jeden Benutzer anzupassen. Weitere Informationen finden Sie unter Integrierte Verweise auf Globals und Users (Berichts-Generator).

Gruppieren Sie Daten in einem Bericht

Durch Gruppen werden Daten in einem Bericht für die Anzeige oder zum Berechnen von Aggregatwerten organisiert. Kenntnisse im Definieren von Gruppen und Verwenden von Gruppenfunktionen sind für das Entwerfen präziserer Berichte hilfreich.

Gruppierungsausdrücke werden bei den folgenden Aktionen automatisch erstellt:

  • Anordnen von Datasetfeldern in dem Tabellen-, Matrix- oder Diagramm-Assistenten oder Zuordnen von Feldern im Karten-Assistenten.
  • Hinzufügen eines Felds zum Zeilengruppen- oder Spaltengruppenbereich im Bereich Gruppierung in einer Tabelle, Matrix oder Liste.
  • Hinzufügen eines Felds zum Kategoriegruppen- oder Reihengruppenbereich im Bereich Diagrammdaten.
  • Festlegen eines Felds in einer Karte, um Kartenelemente mit analytischen Daten im Kontextmenüelement Ebenendaten zu vergleichen.

Eine Gruppe ist ein Teil der Berichtsdefinition. Jede Gruppe hat einen Namen. Der Gruppenname basiert standardmäßig auf dem Feld des Dataset, aus dem er stammt.

In einem Tabellen- oder Matrixdatenbereich können mehrere Zeilengruppen und Spaltengruppen erstellt werden. Sie können die Daten in einer visuellen Hierarchie anzeigen, indem Sie geschachtelte Gruppen, angrenzende Gruppen und rekursive Hierarchiegruppen organisieren (z. B. ein Organigramm).

Der Gruppenname gibt einen Ausdrucksbereich an. Sie können den Namen einer Gruppe als Bereich angeben, in dem:

  • Berechnen von Aggregaten.
  • Organisieren Sie Daten hierarchisch, und schalten Sie die Anzeige untergeordneter Knoten aus übergeordneten Knoten in einem Drilldownbericht um.
  • Zeigen Sie unterschiedliche Ansichten derselben Daten in mehreren Datenbereichen an.
  • Visualisieren Sie Zusammenfassungsdaten in einer Tabelle, Matrix, einem Diagramm, einem Messgerät oder einer Karte.

Weitere Informationen finden Sie unter Ausdrucksbereich für Gesamtwerte, Aggregate und integrierte Sammlungen in einem paginierten Bericht (Report Builder).

Fügen Sie dem Satz von Gruppierungsausdrücken die einzelnen Felder hinzu, um eine Gruppierung für mehrere Datasetfelder vorzunehmen. Sie können auch eigene Gruppierungsausdrücke in Microsoft Visual Basic schreiben. Sie können z. B. eine Gruppierung anhand eines Bereichs von Werten oder mit einem Berichtsparameter durchführen, um Benutzern verschiedene Möglichkeiten zur Gruppierung von Daten in einem Datenbereich zu bieten. Weitere Informationen finden Sie unter Beispiele für Gruppenausdrücke in einem paginierten Bericht (Berichts-Generator).

Um die Datenmenge auf jeder Seite zu reduzieren und die Leistung der Berichtsdarstellung zu verbessern, können Sie vor und nach jeder Gruppe oder jeder Gruppeninstanz Seitenumbrüche einfügen. Weitere Informationen finden Sie unter Hinzufügen eines Seitenumbruchs zu einem paginierten Bericht (Berichts-Generator).

Das Erstellen von Datenbereichsgruppen ist eine Möglichkeit, Daten in einem Bericht zu organisieren. Zum Organisieren von Daten stehen mehrere weitere Methoden zur Verfügung, die alle bestimmte Vorteile bieten. Weitere Informationen finden Sie unter Drillthrough, Drilldown, Unterberichte und geschachtelte Datenbereiche in einem paginierten Bericht (Report Builder).

Definieren von Gruppenvariablen

Beim Definieren einer Gruppe können Sie eine Gruppenvariable zur Verwendung in Ausdrücken erstellen, die auf den Bereich der Gruppe ausgelegt und über geschachtelte Gruppen zugänglich sind. Eine Gruppenvariable wird einmal pro Gruppeninstanz berechnet, und der Zugriff auf die Variable erfolgt über Ausdrücke in untergeordneten Gruppen. Für nach Bereich und Teilbereich gruppierte Daten können Sie z. B. eine Steuer für jeden Bereich berechnen und diese Steuer in Berechnungen der Teilbereichsgruppe verwenden.

Weitere Informationen finden Sie unter Verweise auf Berichts- und Gruppenvariablenreferenzen in einem paginierten Bericht (Report Builder) und Ausdrucksbereich für Summen, Aggregate und integrierte Auflistungen in einem paginierten Bericht (Report Builder).

Gruppen und Bereiche in Datenbereichen

Geben Sie für jeden Datenbereich dieselben Gruppierungsausdrücke an, um mehrere Sichten der Daten aus einem Dataset bereitzustellen. Sie können kategorisierte Daten z. B. zur Anzeige aller Detaildaten in einer Tabelle und zur Anzeige von Aggregaten in einem Kreisdiagramm anzeigen, um jede Kategorie in Bezug zum gesamten Dataset zu visualisieren. Weitere Informationen finden Sie unter Verknüpfen mehrerer Datenbereiche mit einem Dataset in einem paginierten Bericht (Report Builder).

Wenn Sie einen Datenbereich in einer Zelle in einer Tabelle, Matrix oder Liste schachteln, legen Sie die Daten automatisch auf die innersten Gruppenmitgliedschaften der Zelle aus. Angenommen, Sie fügen einer Zelle, die sich in einer Zeilengruppe und in einer Spaltengruppe befindet, ein Diagramm hinzu. Die für dieses Diagramm verfügbaren Daten werden zur Laufzeit dem Bereich der innersten Zeilengruppeninstanz und innersten Spaltengruppeninstanz zugeordnet. Weitere Informationen finden Sie unter Ausdrucksbereich für Gesamtwerte, Aggregate und integrierte Sammlungen in einem paginierten Bericht (Report Builder).

Sortieren von Daten in einem Bericht

Wenn Sie die Sortierreihenfolge für Daten in einem Bericht steuern möchten, können Sie Daten in einer Datasetabfrage sortieren oder einen Sortierungsausdruck für einen Datenbereich oder eine Datengruppe definieren. Außerdem können Sie Tabellen und Matrizen interaktive Sortierschaltflächen hinzufügen, um es Benutzern zu ermöglichen, die Sortierreihenfolge für Zeilen zu ändern.

Alle drei Typen von Sortierungen können im gleichen Bericht kombiniert werden. Standardmäßig wird die Sortierreihenfolge durch die Reihenfolge bestimmt, in der Daten von der Datasetabfrage zurückgegeben werden. Sortierungsausdrücke werden im Datenbereich und in der Datenbereichsgruppe angewendet. Interaktive Sortierungen werden nach Sortierungsausdrücken angewendet.

Bei Ausdrücken, die Aggregatfunktionen enthalten, hat die Sortierreihenfolge keinen Einfluss auf die meisten Ergebnisse. Die Sortierreihenfolge beeinflusst die Rückgabewerte für die folgenden Aggregatfunktionen: Erste, Letzte und Zurück. Weitere Informationen finden Sie unter Berichts-Generator-Funktionen: Referenz zu Aggregatfunktionen für paginierte Berichte (Report Builder).

Sortieren von Daten in einer Datasetabfrage

Um Daten vorzusortieren, bevor sie für einen Bericht abgerufen werden, schließen Sie die Sortierreihenfolge in die Datensatzabfrage ein. Beim Sortieren von Daten in der Abfrage wird die Sortierung selbst von der Datenquelle und nicht vom Berichtsprozessor ausgeführt.

Bei Microsoft SQL Server-Datenquelltypen können Sie eine ORDER BY-Klausel zur Datasetabfrage hinzufügen. Beispielsweise sortiert die folgende Transact-SQL-Abfrage die Spalten „Sales“ und „Region by Sales“ in absteigender Reihenfolge aus der Tabelle „SalesOrders“: SELECT Sales, Region FROM SalesOrders ORDER BY Sales DESC.

Hinweis

Nicht alle Datenquellen unterstützen die Möglichkeit, in der Abfrage die Sortierreihenfolge anzugeben.

Sortieren von Daten mit Sortierausdrücken

Wenn Sie Daten im Bericht sortieren möchten, nachdem diese aus der Datenquelle abgerufen wurden, können Sie Sortierungsausdrücke für einen Tablix-Datenbereich oder eine entsprechende Gruppe festlegen, einschließlich der Detailgruppe. Die folgende Liste beschreibt die Auswirkungen durch das Festlegen von Sortierungsausdrücken für verschiedene Elemente:

  • Tablix-Datenbereich: Legen Sie Sortierungsausdrücke für eine Tabelle, eine Matrix oder einen Listendatenbereich fest, um die Sortierreihenfolge der Daten im Datenbereich zu steuern, nachdem Datasetfilter und Datenbereichsfilter zur Laufzeit angewendet wurden.

  • Tablix-Datenbereichsgruppe: Legen Sie Sortierungsausdrücke für jede Gruppe, einschließlich der Detailgruppe, fest, um die Sortierreihenfolge von Gruppeninstanzen zu steuern. Zum Beispiel können Sie in der Detailgruppe die Reihenfolge der Detailzeilen steuern. Bei einer untergeordneten Gruppe können Sie die Reihenfolge der Gruppeninstanzen für die untergeordnete Gruppe innerhalb der übergeordneten Gruppe steuern. Wenn Sie eine Gruppe erstellen, wird der Sortierungsausdruck standardmäßig auf den Gruppierungsausdruck und auf aufsteigende Reihenfolge festgelegt.

    Bei nur einer Detailgruppe können Sie mit gleichem Ergebnis einen Sortierungsausdruck in der Abfrage, für den Datenbereich oder aber für die Detailgruppe definieren.

  • Bereich für Diagrammdaten: Legen Sie einen Sortierungsausdruck für die Kategorie- und Reihengruppen fest, um die Sortierreihenfolge für Datenpunkte zu steuern. Standardmäßig ist die Reihenfolge der Datenpunkte mit der Reihenfolge der Farben in der Diagrammlegende identisch. Weitere Informationen finden Sie unter Formatieren von Serienfarben in einem paginierten Berichtsdiagramm (Report Builder).

  • Berichtselemente zuordnen: Normalerweise müssen die Daten für einen Kartendatenbereich nicht sortiert werden, da die Karte für Kartenelemente anzuzeigende Daten gruppiert.

  • Messgerätdatenbereich: Normalerweise müssen die Daten für einen Messgerätdatenbereich nicht sortiert werden, da auf dem Messgerät ein einzelner Wert in Bezug auf einen Bereich angezeigt wird. Wenn Sie die Daten eines Messgeräts dennoch sortieren müssen, definieren Sie zunächst eine Gruppe, und legen Sie dann einen Sortierungsausdruck für die Gruppe fest.

Sortieren nach einem anderen Wert

Möglicherweise möchten Sie die Zeilen in einem Datenbereich nach einem Wert als dem Feldwert sortieren. Angenommen, das Feld Size enthält Textwerte, die "Small", "Medium", "Large" und "Extra Large" entsprechen. Standardmäßig ist der Sortierungsausdruck für eine auf Size basierende Zeilengruppe auch [Size] genannt. Um mehr Kontrolle über Ihre sortierten Daten zu haben, können Sie der Datasetabfrage ein Feld hinzufügen, das die gewünschte Sortierreihenfolge definiert.

Alternativ können Sie ein Dataset definieren, das nur die Größen und einen Wert zur Angabe der gewünschten Reihenfolge enthält. Sie können den Sortierungsausdruck ändern, um die Suchfunktion für den Sortierreihenfolgenwert zu verwenden.

Angenommen, die folgende Transact-SQL-Abfrage definiert ein Dataset mit dem Namen „Sizes“. Die Abfrage definiert mithilfe einer CASE-Anweisung einen Sortierreihenfolgenwert "SizeSortOrder" für jeden Wert von Size:

SELECT Size,   
  CASE Size  
        WHEN 'S' THEN 1  
        WHEN 'M' THEN 2    
        WHEN 'L' THEN 3  
        WHEN 'XL' THEN 4  
        ELSE 0  
  END as SizeSortOrder  
FROM Production.Product  

In einer Tabelle mit einer Zeilengruppe, die auf Size basiert, kann der Gruppensortierungsausdruck für die Verwendung einer Suchfunktion angepasst werden, um das numerische Feld zu suchen, das dem Größenwert entspricht. Der Ausdruck sieht in diesem Fall in etwa wie folgt aus:

=Lookup(Fields!Size.Value, Fields!Size.Value, Fields!SizeSortOrder.Value, "Sizes")  

Weitere Informationen finden Sie unter Sortieren von Daten in einem Datenbereich in einem paginierten Bericht (Berichts-Generator) und Berichts-Generator Funktionen – Nachschlagefunktion in einem paginierten Bericht (Berichts-Generator).

Hinzufügen einer interaktiven Sortierung für den Benutzer

Wenn Sie es dem Benutzer ermöglichen möchten, die Sortierreihenfolge der Berichtsdaten in einer Tabelle oder Matrix zu ändern, können Sie Spaltenheadern oder Gruppenköpfen interaktive Sortierschaltflächen hinzufügen. Benutzer können auf die Schaltfläche klicken, um die Sortierreihenfolge umzuschalten. Die interaktive Sortierung wird in Renderingformaten unterstützt, die Benutzeraktionen zulassen, z. B. HTML.

Sie fügen einem Textfeld in einer Tablix-Datenbereichszelle interaktive Sortierschaltflächen hinzu. Standardmäßig enthält jede Zelle ein Textfeld. In den Eigenschaften des Textfelds geben Sie den zu sortierenden Teil eines Tabellen- oder Matrixdatenbereichs an (die Werte der übergeordneten Gruppe, die Werte der untergeordneten Gruppe oder die Detailzeilen). Sie geben an, nach welcher Sortierung sortiert werden soll, und ob der Sortierausdruck auf andere Berichtselemente angewendet werden soll, die eine Peerbeziehung aufweisen. Wenn beispielsweise eine Tabelle und ein Diagramm, die Sichten desselben Datasets bereitstellen, in einem Rechteck eingeschlossen sind, handelt es sich bei diesen um Peerdatenbereiche. Wenn ein Benutzer die Sortierreihenfolge der Tabelle umschaltet, wird die Sortierreihenfolge des Diagramms ebenfalls umgeschaltet. Weitere Informationen finden Sie unter Interaktive Sortierung in einem paginierten Bericht (Berichts-Generator).

Vorgehensweisen