Verwenden von Verweisen auf Berichts- und Gruppenvariablenauflistungen (Report Builder 3.0 und SSRS)

Bei komplexen Berechnungen, die in Ausdrücken eines Berichts mehrfach verwendet werden, empfiehlt sich das Erstellen einer Variablen. Sie können eine Berichtsvariable oder eine Gruppenvariable erstellen. Standardmäßig wird eine Berichtsvariable einmal festgelegt 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. Eine Gruppenvariable wird einmal pro eindeutigem Gruppenwert festgelegt und kann in Ausdrücken auf der aktuellen Ebene oder auf den entsprechend untergeordneten Ebenen der Gruppenhierarchie verwendet werden. Für Gruppenvariablen kann kein Lese-/Schreibzugriff festgelegt werden.

HinweisHinweis

Sie können Berichtsdefinitionen (RDL) in Berichts-Generator 3.0 und im Berichts-Designer in Business Intelligence Development Studio erstellen und ändern. Jede Erstellungsumgebung bietet verschiedene Methoden zum Erstellen, Öffnen und Speichern von Berichten und verwandten Elementen. Weitere Informationen finden Sie unter Entwerfen von Berichten in Berichts-Designer und Berichts-Generator 3.0 (SSRS) im Web auf microsoft.com.

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. Nach der Initialisierung der Variablen bleibt der Wert in der gesamten Berichtssitzung konstant.

Um eine Berichtsvariable hinzuzufügen, öffnen Sie das Dialogfeld Berichtseigenschaften, klicken Sie auf Variablen, und geben Sie einen Namen und einen Wert an.

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ück blä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 Variablen auf true festgelegt. Um den Wert mit einem Ausdruck zu aktualisieren, verwenden Sie die SetValue-Methode, z. B. =Variables!MyVariable.SetValue("123").

    HinweisHinweis

    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 Anzeigen einer Berichtsvorschau in Berichts-Generator 3.0.

Gruppenvariablen

Verwenden Sie eine Gruppenvariable, um einen Wert im Bereich einer Gruppe 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 Category 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 Category-Untergruppen die richtige Gruppenvariable zu. Zum 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 das Dialogfeld Tablix-Gruppeneigenschaften, klicken Sie auf Variablen, 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.