Integrierte Auflistungen: Verweise auf Berichts- und Gruppenvariablen (Berichts-Generator)Built-in Collections - Report and Group Variables References (Report Builder)

Bei komplexen Berechnungen, die in Ausdrücken eines Berichts mehrfach verwendet werden, empfiehlt sich das Erstellen einer Variable.When you have a complex calculation that is used more than once in expressions in a report, you might want to create a variable. Sie können eine Berichtsvariable oder eine Gruppenvariable erstellen.You can create a report variable or a group variable. Variablennamen müssen im Bericht eindeutig sein.Variable names must be unique in a report.

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.

BerichtsvariablenReport Variables

Verwenden Sie eine Berichtsvariable zur Aufnahme eines Werts für zeitabhängige Berechnungen, wie Währungskurse oder Zeitstempel, oder für eine komplexe Berechnung, auf die mehrere Male verwiesen wird.Use a report variable to hold a value for time-dependent calculations, such as currency rates or time stamps, or for a complex calculation that is referenced multiple times. Standardmäßig wird eine Berichtsvariable einmal berechnet und kann in Ausdrücken im gesamten Bericht verwendet werden.By default, a report variable is calculated once and can be used in expressions throughout a report. Berichtsvariablen sind standardmäßig schreibgeschützt.Report variables are read-only by default. Sie können die Standardeinstellung ändern, um für eine Berichtsvariable den Lese-/Schreibzugriff zu aktivieren.You can change the default to enable a report variable as read-write. Der Wert in einer Berichtsvariable wird in der gesamten Sitzung beibehalten, bis der Bericht erneut verarbeitet wird.The value in a report variable is preserved throughout a session, until the report is processed again.

Um eine Berichtsvariable hinzuzufügen, öffnen Sie das Dialogfeld Berichtseigenschaften , klicken Sie auf Variablen, und geben Sie einen Namen und einen Wert an.To add a report variable, open the ReportProperties dialog box, click Variables, and provide a name and a value. Bei Namen ist die Groß-/Kleinschreibung zu beachten. Sie beginnen mit einem Buchstaben und enthalten keine Leerzeichen.Names are case-sensitive strings that begin with a letter and have no spaces. Ein Name darf Buchstaben, Zahlen oder Unterstriche () enthalten.A name can include letters, numbers, or underscores ().

Um auf die Variable in einem Ausdruck zu verweisen, verwenden Sie die globale Auflistungssyntax, z. B. =Variables!CustomTimeStamp.Value.To refer to the variable in an expression, use the global collection syntax, for example, =Variables!CustomTimeStamp.Value. Auf der Entwurfsoberfläche wird der Wert in einem Textfeld als <<Expr>>angezeigt.On the design surface, the value appears in a text box as <<Expr>>.

Es gibt folgende Möglichkeiten für die Verwendung von Berichtsvariablen:You can use report variables in the following ways:

  • Nur Lesezugriff Legen Sie einmalig einen Wert fest, um eine Konstante für die Berichtssitzung zu erstellen, z.B. einen Zeitstempel.Read-only use Set a value once to create a constant for the report session, for example, to create a time stamp.

    Da Ausdrücke in Textfeldern bedarfsgesteuert ausgewertet werden, wenn ein Benutzer durch einen Bericht blättert, können dynamische Werte (z.B. ein Ausdruck, der Now() einschließt, eine Funktion, die die Tageszeit zurückgibt) unterschiedliche Werte zurückgeben, wenn Sie vor und mit der Schaltfläche Zurück zurückblättern.Because expressions in text boxes are evaluated on-demand as a user pages through a report, dynamic values (for example, an expression that includes the Now() function, which returns the time of day) can return different values if you page forward and backward by using the Back button. Durch Festlegen des Werts einer Berichtsvariablen auf den Ausdruck =Now()und anschließendes Hinzufügen der Variablen zum Ausdruck wird gewährleistet, dass während der Berichtsverarbeitung die gleiche Variable verwendet wird.By setting a the value of a report variable to the expression =Now(), and then adding the variable to your expression, you ensure the same value is used throughout report processing.

  • Lese-/Schreibzugriff Legen Sie einmalig einen Wert fest, und serialisieren Sie diesen innerhalb einer Berichtssitzung.Read-write use Set a value once and serialize the value within a report session. Die Lese-/Schreiboption für Variablen bietet eine bessere Alternative als die Verwendung einer statischen Variable im Codeblock der Berichtsdefinition.The read-write option for variables provides a better alternative than using a static variable in the Code block in the report definition.

    Wenn Sie die Option Schreibgeschützt für eine Variable deaktivieren, wird die Writable-Eigenschaft der Variable auf TRUEfestgelegt.When you clear the Read-Only option for a variable, the Writable property for the variable is set to true. Verwenden Sie die SetValue-Methode, z.B. =Variables!MyVariable.SetValue("123"), um den Wert mit einem Ausdruck zu aktualisieren.To update the value from an expression, use the SetValue method, for example, =Variables!MyVariable.SetValue("123").

    Hinweis

    Sie können nicht steuern, wann der Berichtsprozessor eine Variable initialisiert oder einen Ausdruck auswertet, der eine Variable aktualisiert.You cannot control when the report processor initializes a variable or evaluates an expression that updates a variable. Der Reihenfolge der Ausführung für die Variableninitialisierung ist nicht definiert.The order of execution for variable initialization is undefined.

Weitere Informationen zu Sitzungen finden Sie unter Previewing Reports in Report Builder.For more information about sessions, see Previewing Reports in Report Builder.

GruppenvariablenGroup Variables

Verwenden Sie eine Gruppenvariable, um einen komplexen Ausdruck im Bereich einer Gruppe einmal zu berechnen.Use a group variable to calculate a complex expression once in the scope of a group. Eine Gruppenvariable ist nur im Bereich der Gruppe und der untergeordneten Gruppen gültig.A group variable is valid only in the scope of the group and its child groups.

Angenommen, ein Datenbereich zeigt Bestandsdaten für Posten an, die verschiedenen Steuerkategorien angehören, und Sie möchten für jede Kategorie einen anderen Steuersatz anwenden.For example, suppose a data region displays inventory data for items that are in different tax categories and you want to apply different tax rates for each category. In diesem Fall gruppieren Sie die Daten in Kategorien und definieren für die übergeordnete Gruppe eine Tax -Variable.You would group the data on Category and define a Tax variable on the parent group. Anschließend definieren Sie eine Gruppenvariable für ItemTax für jede Steuerkategorie und weisen jeder der Kategorieuntergruppen die richtige Gruppenvariable zu.Then you would define a group variable for ItemTax for each tax category and assign each of the different Category subgroups to the correct group variable. Beispiel:For example:

  • Definieren Sie für die übergeordnete Gruppe auf Grundlage von [Category]die Variable Tax mit einem Wert [Tax].For the parent group based on [Category], define the variable Tax with a value [Tax]. Angenommen, die Kategoriewerte lauten Nahrungsmittel und Kleidung.Assume the category values are Food and Clothing.

  • Definieren Sie für die untergeordnete Gruppe auf Grundlage von [Subcategory]die Variable ItemsTax als =Variables!Tax.Value * Sum(Fields!Price.Value).For the child group based on [Subcategory], define the variable ItemsTax as =Variables!Tax.Value * Sum(Fields!Price.Value). Angenommen, die Unterkategoriewerte für die Kategorie Nahrungsmittel sind Getränke und Brot.Assume the subcategory values for the category Food are Beverages and Bread. Die Unterkategoriewerte für Kleidung lauten Hemden und Hüte.Assume the subcategory values for Clothing are Shirts and Hats.

  • Fügen Sie für ein Textfeld in einer Zeile der untergeordneten Gruppe den Ausdruck =Variables!ItemsTax.Valuehinzu.For a text box in a row in the child group, add the expression =Variables!ItemsTax.Value.

    Das Textfeld zeigt die gesamte Steuer für Getränke und Brot unter Verwendung des Steuersatzes für Nahrungsmittel und für Hemden und Hüte unter Verwendung des Steuersatzes für Kleidung an.The text box displays the total tax for Beverages and Bread using the Food tax and for Shirts and Hats using the Clothing tax.

Um eine Gruppenvariable hinzuzufügen, öffnen Sie das Dialogfeld Tablix-Gruppeneigenschaften , klicken Sie auf Variablen, und geben Sie einen Namen und einen Wert an.To add a group variable, open the Tablix Group Properties dialog box, click Variables, and provide a name and a value. Die Gruppenvariable wird einmal pro eindeutigen Gruppenwert berechnet.The group variable is calculated once per unique group value.

Um auf die Variable in einem Ausdruck zu verweisen, verwenden Sie die globale Auflistungssyntax, z. B. =Variables!GroupDescription.Value.To refer to the variable in an expression, use the global collection syntax, for example, =Variables!GroupDescription.Value. Auf der Entwurfsoberfläche wird der Wert in einem Textfeld als <<Expr>>angezeigt.On the design surface, the value appears in a text box as <<Expr>>.

Weitere InformationenSee Also

Filtern, Gruppieren und Sortieren von Daten (Berichts-Generator und SSRS) Filter, Group, and Sort Data (Report Builder and SSRS)
Integrierte Sammlungen in Ausdrücken (Berichts-Generator und SSRS) Built-in Collections in Expressions (Report Builder and SSRS)
Beispiele für Ausdrücke (Berichts-Generator und SSRS)Expression Examples (Report Builder and SSRS)