Freigeben über


Filtern von Berichtsdaten im Bericht

Mit Filtern können Sie steuern, welche Daten in einem Bericht angezeigt und verarbeitet werden. Sie können Filter in beliebiger Kombination für ein Dataset, einen Datenbereich oder eine Gruppe festlegen.

Sofern möglich, sollten die Daten bereits in der Datenquelle gefiltert werden, bevor sie für einen Bericht abgerufen werden. Sie erreichen dies, indem Sie die Abfrage so ändern, dass sie Abfrageparameter enthält, durch die die abgerufenen Daten eingeschränkt werden. Weitere Informationen finden Sie unter Filtern von Berichtsdaten in der Quelle.

Falls die Daten nicht in der Quelle gefiltert werden können, legen Sie Filter für Berichtselemente fest. Verwenden Sie zum Beispiel Berichtsfilter, wenn die Datenquelle keine Abfrageparameter unterstützt, wenn Sie gespeicherte Prozeduren ausführen müssen und die Abfrage nicht bearbeiten können oder wenn durch einen parametrisierten Berichtssnapshot individuelle Daten für verschiedene Benutzer angezeigt werden.

Filterposition

Die Position eines Filters wird dadurch vorgegeben, was Sie in Ihrem Bericht erzielen möchten. 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 Dialogfeld 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 Tabellendatenbereich fest, in dem die zehn umsatzstärksten Läden angezeigt werden sollen, und für einen anderen Tabellendatenbereich, 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 Diagrammdatenbereich: Legen Sie einen Filter für eine Reihen- oder Kategoriegruppe fest, wenn Sie bestimmte Werte für einen Gruppenausdruck ein- bzw. ausschließen möchten, um zu steuern, welche Werte im Diagramm angezeigt werden.

Erstellen einer 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. Im Allgemeinen handelt es sich hierbei um ein Datasetfeld.

  • 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. Beispiele für Filtergleichungen finden Sie unter Beispiele für Filtergleichungen (Reporting Services).

Ausdruck

Wenn die Filtergleichung zur Laufzeit durch den Berichtsprozessor ausgewertet wird, müssen Ausdruck und Wert denselben Datentyp aufweisen. 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 Reporting Services-Standards vorgegeben. Die verfügbaren Datentypen sind abhängig von den für eine Berichtsdefinition unterstützten Datentypen. Die Werte aus der Datenbank werden ggf. vom Datenanbieter in einen CLR-Typ konvertiert. Weitere Informationen finden Sie unter Grundlegendes zu Berichtsdatasets.

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. Die aus einer Datenquelle abgerufenen Daten werden unter Umständen in einen Datentyp konvertiert, der sich von dem Typ unterscheidet, den die Daten als Berichtsdaten aufweisen. Weitere Informationen finden Sie unter Grundlegendes zu Berichtsdatasets.

Datentyp des Berichtsdefinitionsschemas

CLR-Typ(en)

Boolean

Boolean

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.

Between

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 Dialogfeld 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 System..::..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 festlegen können. Weitere Informationen finden Sie unter Beispiele für Filtergleichungen (Reporting Services).