Freigeben über


Previous-Funktion (Berichts-Generator 2.0)

Gibt den Wert oder den angegebenen Aggregatwert für die vorherige Instanz eines Elements innerhalb des angegebenen Bereichs zurück.

Syntax

Previous(expression, scope)

Parameter

  • expression
    (Variant oder Binary) Der Ausdruck, mit dem die Daten identifiziert werden und für den der vorherige Wert abgerufen wird. Beispiel: Fields!Fieldname.Value oder Sum(Fields!Fieldname.Value).

  • scope
    (String) optional. Der Name einer Gruppe oder eines Datenbereichs oder NULL (Nothing in Visual Basic), der den Bereich angibt, aus dem der durch expression angegebene vorherige Wert abgerufen wird. Weitere Informationen zum scope-Parameter finden Sie unter Verwenden von integrierten Berichts- und Aggregationsfunktionen in Ausdrücken (Berichts-Generator 2.0).

Rückgabetyp

Gibt einen Variant- oder Binary-Wert zurück.

Hinweise

Die Previous-Funktion gibt den vorherigen Wert für den Ausdruck zurück, der in dem angegebenen Bereich ausgewertet wird, nachdem die Sortierfunktionen und Filter angewendet wurden.

Wenn expression kein Aggregat enthält, wird die Previous-Funktion standardmäßig auf den aktuellen Bereich für das Berichtselement festgelegt. Für ein Textfeld in der Detailgruppe gibt =Previous(Fields!Quantity.Value) die Daten für das Feld Quantity in der vorherigen Zeile zurück. Dieser Ausdruck in der ersten Zeile gibt den Wert NULL (Nothing in Visual Basic) zurück. 

Wenn expression eine Aggregatfunktion enthält, die einen Standardbereich verwendet, aggregiert Previous die Daten innerhalb der vorherigen Instanz des im Aggregatfunktionsaufruf angegebenen Bereichs.

Enthält expression eine Aggregatfunktion, die nicht den Standardbereich angibt, muss es sich beim scope-Parameter für die Previous-Funktion um einen enthaltenen Bereich des im Aggregatfunktionsaufruf angegebenen Bereichs handeln.

Die Funktionen Level, InScope, Aggregate und Previous können im expression-Parameter nicht verwendet werden. Die Angabe des recursive-Parameters für eine Aggregatfunktion wird nicht unterstützt.

Beispiele

Beschreibung

Das folgende Codebeispiel stellt bei Angabe in der Standarddatenzeile eines Datenbereichs den Wert für das Feld LineTotal in der vorherigen Zeile bereit.

Code

=Previous(Fields!LineTotal.Value)

Beschreibung

Das folgende Codebeispiel zeigt einen Ausdruck, der die Summe der Umsätze an einem bestimmten Tag des Monats und den vorherigen Wert für den Tag des Monats in einem vorhergehenden Jahr berechnet. Der Ausdruck wird einer Zelle in einer Zeile, die zur untergeordneten Gruppe GroupbyDay gehört, hinzugefügt. Die übergeordnete Gruppe ist GroupbyMonth, deren übergeordnete Gruppe wiederum GroupbyYear ist. Der Ausdruck zeigt die Ergebnisse für GroupbyDay (Standardbereich) und anschließend für GroupbyYear (der übergeordneten Gruppe der übergeordneten Gruppe GroupbyMonth) an.

Für einen Datenbereich mit einer übergeordneten Gruppe namens Year ist die entsprechende untergeordnete Gruppe beispielsweise Month, der wiederum die Gruppe Day untergeordnet ist (drei geschachtelte Ebenen). Der Ausdruck =Previous(Sum(Fields!Sales.Value,"Day"),"Year") in einer mit der Gruppe Day verknüpften Zeile gibt den Umsatzwert für denselben Tag und Monat des vorherigen Jahres zurück.

Code

=Sum(Fields!Sales.Value) & " " & Previous(Sum(Fields!Sales.Value,"GroupbyDay"),"GroupbyYear")