Hinzufügen von Datasetfiltern, Datenbereichsfiltern und GruppenfilternAdd Dataset Filters, Data Region Filters, and Group Filters

In einem Bericht ist ein Filter Teil eines Datasets, eines Datenbereichs oder einer Datenbereichsgruppe, den Sie erstellen, um die im Bericht verwendeten Daten zu beschränken.In a report, a filter is a part of a dataset, a data region, or a data region group that you create to limit the data that is used in the report. Mithilfe von Filtern können Berichtsdaten gesteuert werden, wenn es nicht möglich ist, die Datasetabfrage zu ändern, z. B. bei Verwendung eines freigegebenen Datasets.Filters are a way to help you control report data if you cannot change the dataset query, for example, if you are using a shared dataset.

Mit Filtern können Sie die in einem Bericht angezeigten und verarbeiteten Daten bestimmen.Filters help you control which data is displayed and processed in a report. Sie können Filter in beliebiger Kombination für ein Dataset, einen Datenbereich oder eine Gruppe festlegen.You can specify filters for a dataset, a data region, or a group, in any combination.

Weitere Informationen finden Sie unter Hinzufügen eines Filters zu einem Dataset (Berichts-Generator und SSRS) und Beispiele für Filtergleichungen (Berichts-Generator und SSRS).For more information, see Add a Filter to a Dataset (Report Builder and SSRS) and Filter Equation Examples (Report Builder and SSRS).

Hinweis

Sie können paginierte Berichtsdefinitionsdateien (.rdl) im Berichts-Generator und im Berichts-Designer in SQL Server-Datentools erstellen und ändern.You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server Data Tools. Jede Erstellungsumgebung bietet verschiedene Methoden zum Erstellen, Öffnen und Speichern von Berichten und verwandten Elementen.Each authoring environment provides different ways to create, open, and save reports and related items.

Verwenden von FilternChoosing When to Set a Filter

Legen Sie Filter für Berichtselemente fest, wenn die Daten nicht in der Quelle gefiltert werden können.Specify filters for report items when you cannot filter data at the source. Verwenden Sie Berichtsfilter z. B., 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 eine parametrisierte Berichtsmomentaufnahme individuelle Daten für verschiedene Benutzer angezeigt werden.For example, use report filters when the data source does not support query parameters, or you must run stored procedures and cannot modify the query, or a parameterized report snapshot displays customized data for different users.

Berichtsdaten können vor oder nach dem Abrufen für ein Berichtsdataset abgerufen wurden.You can filter report data before or after it is retrieved for a report dataset. Ändern Sie die Abfrage für jedes Dataset, wenn Sie Daten vor dem Abrufen filtern möchten.To filter data before it is retrieved, change the query for each dataset. 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.When you filter data in the query, you filter data at the data source, which reduces the amount data that must be retrieved and processed in a report. Um Daten nach dem Abrufen zu filtern, erstellen Sie im Bericht Filterausdrücke.To filter data after it is retrieved, create filter expressions in the report. Sie können Filterausdrücke für ein Dataset, einen Datenbereich oder eine Gruppe (einschließlich der Detailgruppen) festlegen.You can set filter expressions for a dataset, a data region, or a group, including detail groups. Außerdem können Sie Parameter in Filterausdrücke einbinden, um das Filtern von Daten für bestimmte Werte oder Benutzer zu ermöglichen. Sie können z. B. nach einem Wert filtern, der Benutzer identifiziert, die den Bericht anzeigen.You can also include parameters in filter expressions, providing a way to filter data for specific values or for specific users, for example, filtering on a value that identifies the user viewing the report.

FilterpositionChoosing Where to Set a Filter

Die Position eines Filters wird durch die Ziele vorgegeben, die Sie mit dem Bericht verfolgen.Determine where you want to set a filter by the effect you want to achieve in your report. 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).At run time, the report processor applies filters in the following order: on the dataset, and then on the data region, and then on groups from the top down in each group hierarchy. Bei einer Tabelle, Matrix oder Liste werden Filter für Zeilen- und Spaltengruppen sowie für angrenzende Gruppen unabhängig voneinander angewendet.On a table, matrix, and list, filters for row groups, column groups, and adjacent groups are applied independently. Bei Diagrammen werden Filter für Kategorie- und Reihengruppen unabhängig voneinander angewendet.On a chart, filters for category groups and series groups are applied independently. 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.When the report processor applies the filter, all filter equations are applied in the order they are defined on the Filter page of the Properties dialog box for each report item, which is the equivalent of combining them with Boolean AND operations.

Die folgende Liste zeigt die unterschiedlichen Auswirkungen von Filtern, die für verschiedene Berichtselemente festgelegt werden:The following list compares the effect of setting filters on different report items:

  • 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.On the dataset Set a filter on the dataset when you want one or more data regions that are bound to a single dataset to be filtered in the same way. 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.For example, set the filter on the dataset that is bound to both a table that displays sales data and a chart that displays the same data.

  • 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.On the data region Set a filter on the data region when you want one or more data regions that are bound to a single dataset to provide a different view of the dataset. 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.For example, set the filter on one Table data region to display the top ten stores for sales and a different Table data region to display the bottom ten stores for sales in the same report.

  • 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.On the row or column groups in a Tablix data region Set a filter on a group when you want to include or exclude certain values for a group expression to control which group values appear in the table, matrix, or list.

  • 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.On the details group in a Tablix data region Set a filter on the details group when you have multiple detail groups for a data region and want each detail group to display a different set of data from the dataset.

  • 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 Gruppierungsausdruck ein- oder ausschließen möchten, um die im Diagramm angezeigten Werte zu steuern.On the series or category groups in a Chart data region Set a filter on a series or category group when you want to include or exclude certain values for a group expression to control which values appear in the chart.

Zurück zum AnfangBack to Top

Grundlegendes zur FiltergleichungUnderstanding a Filter Equation

Zur Laufzeit konvertiert der Berichtsprozessor den Wert in den angegebenen Datentyp und vergleicht dann anhand des festgelegten Operators Ausdruck und Wert.At run time, the report processor converts the value to the specified data type, and then uses the specified operator to compare the expression and value. In der folgenden Liste werden die einzelnen Bestandteile der Filtergleichung beschrieben:The following list describes each part of the filter equation:

  • Ausdruck : Definiert das Filterelement.Expression Defines what you are filtering on. Im Allgemeinen handelt es sich hierbei um ein Datasetfeld.Typically, this is a dataset field.

  • Datentyp : Legt den Datentyp fest, der bei der Auswertung der Filtergleichung durch den Berichtsprozessor zur Laufzeit verwendet werden soll.Data Type Specifies the data type to use when the filter equation is evaluated at run time by the report processor. Bei dem gewählten Datentyp muss es sich um einen vom Berichtsdefinitionsschema unterstützten Datentyp handeln.The data type you select must be one of the data types supported by the report definition schema.

  • Operator : Definiert, wie die beiden Teile der Filtergleichung miteinander verglichen werden.Operator Defines how to compare the two parts of the filter equation.

  • Wert : Legt den im Vergleich verwendeten Ausdruck fest.Value Defines the expression to use in the comparison.

In den folgenden Abschnitten werden die einzelnen Bestandteile der Filtergleichung vorgestellt.The following sections describe each part of the filter equation.

expressionExpression

Wenn die Filtergleichung zur Laufzeit vom Berichtsprozessor ausgewertet wird, müssen Ausdruck und Wert denselben Datentyp aufweisen.When the filter equation is evaluated by the report processor at run time, the data types for the expression and the value must be the same. 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.The data type of the field you select for Expression is determined by the data processing extension or data provider that is used to retrieve data from the data source. Der Datentyp des unter Wert eingegebenen Ausdrucks wird durch Reporting ServicesReporting Services -Standards vorgegeben.The data type of the expression that you enter for Value is determined by Reporting ServicesReporting Services defaults. Die verfügbaren Datentypen sind abhängig von den für eine Berichtsdefinition unterstützten Datentypen.The choices for data type are determined by the data types supported for a report definition. Die Werte aus der Datenbank werden ggf. vom Datenanbieter in einen CLR-Typ konvertiert.Values from the database might be converted by the data provider to a CLR type.

DatentypData Type

Damit der Berichtsprozessor zwei Werte vergleichen kann, müssen diese Werte denselben Datentyp aufweisen.For the report processor to compare two values, the data types must be the same. Die folgende Tabelle zeigt die Zuordnung zwischen CLR-Datentypen und Berichtsdefinitionsdatentypen.The following table lists the mapping between CLR data types and report definition data types. Die aus einer Datenquelle abgerufenen Daten werden u. U. in einen Datentyp konvertiert, der sich vom Typ der Berichtsdaten unterscheidet.Data that you retrieve from a data source might be converted to a data type that is different by the time it is report data.

Datentyp des BerichtsdefinitionsschemasReport Definition Schema Data Type CLR-Typ(en)CLR Type(s)
BooleanBoolean BooleanBoolean
DateTimeDateTime DateTime, DateTimeOffsetDateTime, DateTimeOffset
IntegerInteger Int16, Int32, UInt16, Byte, SByteInt16, Int32, UInt16, Byte, SByte
FloatFloat Single, Double, DecimalSingle, Double, Decimal
TextText String, Char, GUID, TimespanString, Char, GUID, Timespan

Falls Sie einen Datentyp angeben müssen, können Sie im Value-Teil des Ausdrucks Ihre eigene Konvertierung festlegen.In cases where you must specify a data type, you can specify your own conversion in the Value part of the expression.

OperatorOperator

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.The following table lists the operators that you can use in a filter equation, and what the report processor uses to evaluate the filter equation.

OperatorOperator AktionAction
Equal, Like, NotEqual, GreaterThan, GreaterThanOrEqual, LessThan, LessThanOrEqualEqual, Like, NotEqual, GreaterThan, GreaterThanOrEqual, LessThan, LessThanOrEqual Vergleicht den Ausdruck mit einem Wert.Compares the expression to one value.
TopN, BottomNTopN, BottomN Vergleicht den Ausdruck mit einem Integer -Wert.Compares the expression to one Integer value.
TopPercent, BottomPercentTopPercent, BottomPercent Vergleicht den Ausdruck mit einem Integer - oder einem Float -Wert.Compares the expression to one Integer or Float value.
ZwischenBetween Prüft, ob der Ausdruck zwischen zwei Werten (einschließlich) liegt.Tests whether the expression is between two values, inclusive.
InIn Prüft, ob der Ausdruck in einem Satz von Werten enthalten ist.Tests whether the expression is contained in a set of values.

valueValue

Der Value-Ausdruck legt den abschließenden Teil der Filtergleichung fest.The Value expression specifies the final part of the filter equation. 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.The report processor converts the evaluated expression to the data type that you specified, and then evaluates the entire filter equation to determine if the data specified in Expression passes through the filter.

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.To convert to a data type that is not a standard CLR data type, you must modify the expression to explicitly convert to a data type. Sie können hierfür die im Dialogfeld Ausdruck unter Allgemeine Funktionen, Konvertierungaufgelisteten Konvertierungsfunktionen verwenden.You can use the conversion functions listed in the Expression dialog box under Common Functions, Conversion. Beispiel: Das Feld ListPrice repräsentiert Daten, die mit einem money -Datentyp in einer SQL ServerSQL Server -Datenquelle gespeichert sind. Die Datenverarbeitungserweiterung gibt den Feldwert als Decimal -Datentyp zurück.For example, for a field ListPrice that represents data that is stored as a money data type on a SQL ServerSQL Server data source, the data processing extension returns the field value as a Decimal data type. 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.To set a filter to use only values greater than $50000.00 in the report currency, convert the value to Decimal by using the expression =CDec(50000.00).

Dieser Wert kann auch einen Parameterverweis enthalten, mit dem Benutzer interaktiv einen Filterwert auswählen können.This value can also include a parameter reference to allow a user to interactively select a value on which to filter.

Zurück zum AnfangBack to Top

Weitere InformationenSee Also

Ausdrucksverwendungen in Berichten (Berichts-Generator und SSRS) Expression Uses in Reports (Report Builder and SSRS)
Berichtsparameter (Berichts-Generator und Berichts-Designer)Report Parameters (Report Builder and Report Designer)