Previous-Funktion (Reporting Services)

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 der abzurufende Wert identifiziert 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 (Reporting Services).

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 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.

Geben Sie in einer Detailgruppe mithilfe der Funktion Previous den Wert eines Feldverweises in der vorherigen Instanz der Detailzeile an. Feldverweise werden nur in der Detailgruppe unterstützt. Beispielsweise gibt in einem Textfeld in der Detailgruppe =Previous(Fields!Quantity.Value) die Daten für das Feld Quantity in der vorherigen Zeile zurück. In der ersten Zeile gibt dieser Ausdruck den Wert NULL (Nothing in Visual Basic) zurück.

Verwenden Sie in Gruppen, bei denen es sich nicht um Detailgruppen handelt, Previous mit einer Aggregatfunktion wie First oder Last, durch die eine bestimmte Gruppeninstanz angegeben wird. Beispielsweise gibt in einem Textfeld in einer Zeilengruppe =Previous(First(Fields!Year.Value)) auf Grundlage von =Fields!Year.Value das Jahr für die erste Instanz der Gruppe Jahr zurück.

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 Detaildatenzeile eines Datenbereichs den Wert für das Feld LineTotal in der vorherigen Detailzeile 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")

Änderungsverlauf

Inhaltsaktualisierung

Der vorherige Wert für einen Feldverweis ist nur in einer Detailgruppe gültig.