Verweise auf Berichts- und Gruppenvariablen in einem paginierten Bericht (Berichts-Generator)
Gilt für: Microsoft Report Builder (SSRS) Power BI Report Builder Berichts-Designer in SQL Server Data Tools
Wenn Sie über eine komplexe Berechnung verfügen, die in Ausdrücken eines paginierten Berichts mehrfach verwendet wird, empfiehlt es sich, eine Variable zu erstellen. Sie können eine Berichtsvariable oder eine Gruppenvariable erstellen. Variablennamen müssen im Bericht eindeutig sein.
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.
Berichtsvariablen
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. Standardmäßig wird eine Berichtsvariable einmal berechnet und kann in Ausdrücken im gesamten Bericht verwendet werden. Berichtsvariablen sind standardmäßig schreibgeschützt. Sie können die Standardeinstellung ändern, um für eine Berichtsvariable den Lese-/Schreibzugriff zu aktivieren. Der Wert in einer Berichtsvariable wird in der gesamten Sitzung beibehalten, bis der Bericht erneut verarbeitet wird.
Um eine Berichtsvariable hinzuzufügen, öffnen Sie den Dialog Berichtseigenschaften, wählen Sie Variablen aus und geben Sie einen Namen und einen Wert an. Bei Namen ist die Groß-/Kleinschreibung zu beachten. Sie beginnen mit einem Buchstaben und enthalten keine Leerzeichen. Ein Name darf Buchstaben, Zahlen oder Unterstriche (_) enthalten.
Um auf die Variable in einem Ausdruck zu verweisen, verwenden Sie die globale Auflistungssyntax, z. B. =Variables!CustomTimeStamp.Value
. Auf der Entwurfsoberfläche wird der Wert in einem Textfeld als <<Expr>>
angezeigt.
Es gibt folgende Möglichkeiten für die Verwendung von Berichtsvariablen:
Nur Lesezugriff: Legen Sie einmalig einen Wert fest, um eine Konstante für die Berichtssitzung zu erstellen, z. B. einen Zeitstempel.
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. 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.Lese-/Schreibzugriff: Legen Sie einmalig einen Wert fest, und serialisieren Sie diesen innerhalb einer Berichtssitzung. Die Lese-/Schreiboption für Variablen bietet eine bessere Alternative als die Verwendung einer statischen Variable im Codeblock der Berichtsdefinition.
Wenn Sie die Option Schreibgeschützt für eine Variable deaktivieren, wird die Writable-Eigenschaft der Variable auf true festgelegt. Verwenden Sie die
SetValue
-Methode, z. B.=Variables!MyVariable.SetValue("123")
, um den Wert mit einem Ausdruck zu aktualisieren.Hinweis
Sie können nicht steuern, wann der Berichtsprozessor eine Variable initialisiert oder einen Ausdruck auswertet, der eine Variable aktualisiert. Der Reihenfolge der Ausführung für die Variableninitialisierung ist nicht definiert.
Weitere Informationen zu Sitzungen finden Sie unter Previewing Reports in Report Builder.
Gruppenvariablen
Verwenden Sie eine Gruppenvariable, um einen komplexen Ausdruck im Bereich einer Gruppe einmal zu berechnen. Eine Gruppenvariable ist nur im Bereich der Gruppe und der untergeordneten Gruppen gültig.
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. In diesem Fall gruppieren Sie die Daten in Kategorien und definieren für die übergeordnete Gruppe eine Tax -Variable. Anschließend definieren Sie eine Gruppenvariable für ItemTax für jede Steuerkategorie und weisen jeder der Kategorieuntergruppen die richtige Gruppenvariable zu. Beispiel:
Definieren Sie für die übergeordnete Gruppe auf Grundlage von
[Category]
die Variable Tax mit einem Wert[Tax]
. Angenommen, die Kategoriewerte lauten Nahrungsmittel und Kleidung.Definieren Sie für die untergeordnete Gruppe auf Grundlage von
[Subcategory]
die Variable ItemsTax als=Variables!Tax.Value * Sum(Fields!Price.Value)
. Angenommen, die Unterkategoriewerte für die Kategorie Nahrungsmittel sind Getränke und Brot. Die Unterkategoriewerte für Kleidung lauten Hemden und Hüte.Fügen Sie für ein Textfeld in einer Zeile der untergeordneten Gruppe den Ausdruck
=Variables!ItemsTax.Value
hinzu.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.
Um eine Gruppenvariable hinzuzufügen, öffnen Sie den Dialog Tablix-Gruppeneigenschaften, wählen Sie Variablen aus und geben Sie einen Namen und einen Wert an. Die Gruppenvariable wird einmal pro eindeutigen Gruppenwert berechnet.
Um auf die Variable in einem Ausdruck zu verweisen, verwenden Sie die globale Auflistungssyntax, z. B. =Variables!GroupDescription.Value
. Auf der Entwurfsoberfläche wird der Wert in einem Textfeld als <<Expr>>
angezeigt.