Freigeben über


Hinzufügen von Datasetfiltern, Datenbereichsfiltern und Gruppenfiltern zu einem paginierten Bericht (Berichts-Generator)

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

In einem paginierten Bericht ist ein Filter Teil eines Datasets, eines Datenbereichs oder einer Datenbereichsgruppe, den Sie erstellen, um die im Bericht verwendeten Daten zu beschränken. Filter helfen Ihnen beim Steuern von Berichtsdaten, wenn Sie die Datasetabfrage nicht ändern können. Sie können z. B. einen Filter verwenden, wenn Sie ein freigegebenes Dataset verwenden.

Mit Filtern können Sie die in einem Bericht angezeigten und verarbeiteten Daten bestimmen. Sie können Filter in beliebiger Kombination für ein Dataset, einen Datenbereich oder eine Gruppe festlegen.

Weitere Informationen finden Sie unter Hinzufügen eines Filters zu einem Dataset (Berichts-Generator und SSRS) und Beispiele für Filtergleichungen in einem paginierten Bericht (Berichts-Generator).

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.

Auswählen, wann ein Filter festgelegt werden soll

Legen Sie Filter für Berichtselemente fest, wenn die Daten nicht in der Quelle gefiltert werden können. Verwenden Sie beispielsweise Berichtsfilter, wenn die Datenquelle keine Abfrageparameter unterstützt. Oder verwenden Sie Berichtsfilter, wenn Sie gespeicherte Prozeduren ausführen müssen und die Abfrage nicht ändern können, oder wenn ein parametrisierter Berichts-Snapshot benutzerdefinierte Daten für verschiedene Benutzer anzeigt.

Sie können Berichtsdaten filtern, bevor oder nachdem Sie sie für einen Berichtsdatensatz abrufen. Um Daten vor dem Abruf zu filtern, ändern Sie die Abfrage für jeden Datensatz. Wenn Sie Daten in der Abfrage filtern, filtern Sie damit die Daten in der Datenquelle. Auf diese Weise wird die Menge der Daten reduziert, die in einem Bericht abgerufen und verarbeitet werden muss. Um Daten nach dem Abruf zu filtern, erstellen Sie Filterausdrücke im Bericht. Sie können Filterausdrücke für ein Dataset, einen Datenbereich oder eine Gruppe (einschließlich der Detailgruppen) festlegen. Sie können auch Parameter in Filterausdrücke einschließen. Diese Aktion bietet eine Möglichkeit zum Filtern von Daten nach bestimmten Werten oder für bestimmte Benutzer. Sie können z. B. nach einem Wert filtern, der den Benutzer identifiziert, der den Bericht anzeigt.

Auswählen, wo ein Filter festgelegt werden soll

Die Position eines Filters wird durch die Ziele vorgegeben, die Sie mit dem Bericht verfolgen. Zur Laufzeit werden Filter vom Berichtsprozessor in der folgenden Reihenfolge angewendet: zuerst auf das Dataset, dann auf den Datenbereich und anschließend auf die Gruppe (in der Reihenfolge von oben nach unten in jeder Gruppenhierarchie). Bei einer Tabelle, Matrix oder Liste werden Filter für Zeilen- und Spaltengruppen sowie für angrenzende Gruppen unabhängig voneinander angewendet. Bei Diagrammen werden Filter für Kategorie- und Reihengruppen unabhängig voneinander angewendet. Wenn der Berichtsprozessor die Filter anwendet, werden alle Filtergleichungen in der Reihenfolge angewendet, in der sie für die einzelnen Berichtselemente auf der Seite Filter im Dialog Eigenschaften definiert sind. Dies entspricht der Kombination der Filter durch Boolesche AND-Operationen.

Die folgende Liste zeigt die unterschiedlichen Auswirkungen von Filtern, die für verschiedene Berichtselemente festgelegt werden:

  • Für das Dataset: Legen Sie einen Filter für das Dataset fest, wenn ein oder mehrere Datenbereiche, die an ein einzelnes Dataset gebunden sind, auf dieselbe Weise gefiltert werden sollen. Beispiel: Legen Sie den Filter für das Dataset fest, das sowohl an eine Tabelle mit Verkaufsdaten als auch an ein Diagramm, in dem dieselben Daten angezeigt werden, gebunden ist.

  • Für den Datenbereich: Legen Sie einen Filter für den Datenbereich fest, wenn von einem oder mehreren Datenbereichen, die an ein einzelnes Dataset gebunden sind, verschiedene Sichten des Datasets bereitgestellt werden sollen. Beispiel: Legen Sie den Filter für einen Bereich für Tabellendaten fest, in dem die zehn umsatzstärksten Läden angezeigt werden sollen, und für einen anderen Bereich für Tabellendaten, in dem im selben Bericht die zehn umsatzschwächsten Läden enthalten sein sollen.

  • Für die Zeilen- oder Spaltengruppen in einem Tablix-Datenbereich: Legen Sie einen Filter für eine Gruppe fest, wenn Sie bestimmte Werte für einen Gruppenausdruck ein- bzw. ausschließen möchten, um zu steuern, welche Werte in der Tabelle, Matrix oder Liste angezeigt werden.

  • Für die Detailgruppe in einem Tablix-Datenbereich: Legen Sie einen Filter für die Detailgruppe fest, wenn für einen Datenbereich mehrere Detailgruppen vorhanden sind und jede Detailgruppe einen anderen Satz Daten aus dem Dataset anzeigen soll.

  • Für die Reihen- oder Kategoriegruppen in einem Bereich für Diagrammdaten: Legen Sie einen Filter für eine Reihen- oder Kategoriegruppe fest, wenn Sie bestimmte Werte für einen Gruppierungsausdruck ein- oder ausschließen möchten, um die im Diagramm angezeigten Werte zu steuern.

Zurück zum Anfang

Grundlegendes zur Filtergleichung

Zur Laufzeit konvertiert der Berichtsprozessor den Wert in den angegebenen Datentyp und vergleicht dann anhand des festgelegten Operators Ausdruck und Wert. In der folgenden Liste werden die einzelnen Bestandteile der Filtergleichung beschrieben:

  • Ausdruck: Definiert das Filterelement. In der Regel ist dieses Feld ein Datensetfeld.

  • Datentyp: Legt den Datentyp fest, der bei der Auswertung der Filtergleichung durch den Berichtsprozessor zur Laufzeit verwendet werden soll. Bei dem gewählten Datentyp muss es sich um einen vom Berichtsdefinitionsschema unterstützten Datentyp handeln.

  • Operator: Definiert, wie die beiden Teile der Filtergleichung miteinander verglichen werden.

  • Wert: Legt den im Vergleich verwendeten Ausdruck fest.

In den folgenden Abschnitten werden die einzelnen Bestandteile der Filtergleichung vorgestellt.

Ausdruck

Wenn der Berichtsprozessor die Filtergleichung zur Laufzeit auswertet, müssen die Datentypen für den Ausdruck und den Wert identisch sein. Der Datentyp des unter Ausdruck ausgewählten Felds wird durch die Datenverarbeitungserweiterung oder den Datenanbieter, über den die Daten aus der Datenquelle abgerufen werden, vorgegeben. Der Datentyp des unter Wert eingegebenen Ausdrucks wird durch Standards vorgegeben. Die für eine Berichtsdefinition unterstützten Datentypen bestimmen die Auswahl der Datentypen. Der Datenanbieter kann die Datenbankwerte in einen CLR-Typ konvertieren.

Datentyp

Damit der Berichtsprozessor zwei Werte vergleichen kann, müssen diese Werte denselben Datentyp aufweisen. Die folgende Tabelle zeigt die Zuordnung zwischen CLR-Datentypen und Berichtsdefinitionsdatentypen. Daten, die Sie aus einer Datenquelle abrufen, werden möglicherweise in einen anderen Datentyp konvertiert, wenn die Daten zu Berichtsdaten werden.

Datentyp des Berichtsdefinitionsschemas CLR-Typ(en)
Boolescher Wert Boolescher Wert
DateTime DateTime, DateTimeOffset
Integer Int16, Int32, UInt16, Byte, SByte
Float Single, Double, Decimal
Text String, Char, GUID, Timespan

Falls Sie einen Datentyp angeben müssen, können Sie im Value-Teil des Ausdrucks Ihre eigene Konvertierung festlegen.

Operator

Die folgende Tabelle enthält die Operatoren, die in Filtergleichungen verwendet werden können, und beschreibt, welche Elemente zur Auswertung der Filtergleichung vom Berichtsprozessor verwendet werden.

Operator Aktion
Equal, Like, NotEqual, GreaterThan, GreaterThanOrEqual, LessThan, LessThanOrEqual Vergleicht den Ausdruck mit einem Wert.
TopN, BottomN Vergleicht den Ausdruck mit einem Integer -Wert.
TopPercent, BottomPercent Vergleicht den Ausdruck mit einem Integer - oder einem Float -Wert.
Zwischen Prüft, ob der Ausdruck zwischen zwei Werten (einschließlich) liegt.
In Prüft, ob der Ausdruck in einem Satz von Werten enthalten ist.

Wert

Der Value-Ausdruck legt den abschließenden Teil der Filtergleichung fest. Der Berichtsprozessor konvertiert den ausgewerteten Ausdruck in den festgelegten Datentyp und wertet dann die gesamte Filtergleichung aus, um zu ermitteln, ob die unter Ausdruck angegebenen Daten den Filter passieren dürfen.

Wenn der Ausdruck in einen Datentyp konvertiert werden soll, bei dem es sich nicht um einen Standard-CLR-Datentyp handelt, müssen Sie den Ausdruck so ändern, dass explizit in einen Datentyp konvertiert wird. Sie können hierfür die im Dialog Ausdruck unter Allgemeine Funktionen, Konvertierung aufgelisteten Konvertierungsfunktionen verwenden. Beispiel: Das Feld ListPrice repräsentiert Daten, die mit einem money-Datentyp in einer SQL Server-Datenquelle gespeichert sind. Die Datenverarbeitungserweiterung gibt den Feldwert als Decimal-Datentyp zurück. Wenn Sie einen Filter festlegen möchten, durch den nur Werte über € 50000,00 in der Berichtswährung verwendet werden, konvertieren Sie den Wert mit dem Ausdruck =CDec(50000.00) in einen Dezimalwert.

Dieser Wert kann auch einen Parameterverweis enthalten, mit dem Benutzer interaktiv einen Filterwert auswählen können.

Zurück zum Anfang

Ausdrucksverwendungen in Berichten (Berichts-Generator
Berichtsparameter (Berichts-Generator und Berichts-Designer)