Freigeben über


Funktionen im Berichts-Generator: Previous-Funktion in einem paginierten Bericht (Berichts-Generator)

Gilt für: Microsoft Report Builder (SSRS) Power BI Report Builder Report Designer in SQL Server Data Tools

Die Funktion gibt den Wert oder den angegebenen Aggregatwert für die vorherige Instanz eines Elements innerhalb des angegebenen Bereichs in einem paginierten Bericht zurück.

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.

Syntax

  
Previous(expression, scope)  

Parameter

expression
(Variant oder Binär) Der Ausdruck, mit dem die Daten identifiziert werden und für den der vorherige Wert abgerufen wird, z.B. Fields!Fieldname.Value oder Sum(Fields!Fieldname.Value).

scope
(Zeichenfolge) Optional. Der Name einer Gruppe oder eines Datenbereichs oder NULL (Nothing in Visual Basic), der den Bereich angibt, aus dem der durch expressionangegebene vorherige Wert abgerufen wird.

Rückgabetyp

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

Bemerkungen

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.

Verwenden Sie in einer Detailgruppe Previous , um den Wert eines Feldverweises in der vorherigen Instanz der Detailzeile anzugeben.

Hinweis

Von der Previous -Funktion werden nur Feldverweise in der Detailgruppe unterstützt. Beispielsweise werden in einem Textfeld in der Detailgruppe durch =Previous(Fields!Quantity.Value) die Daten für das Feld Quantity aus der vorherigen Zeile zurückgegeben. In der ersten Zeile gibt dieser Ausdruck NULL zurück (Nothing in Visual Basic).

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 nicht im Parameter expression verwendet werden. Die Angabe des recursive -Parameters für eine Aggregatfunktion wird nicht unterstützt.

Weitere Informationen finden Sie in der Aggregatfunktionsreferenz (Berichts-Generator und SSRS) und unter Ausdrucksbereich für Gesamtwerte, Aggregate und integrierte Auflistungen (Berichts-Generator und SSRS).

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 GroupbyDaygehört, hinzugefügt. Die übergeordnete Gruppe ist GroupbyMonth, deren übergeordnete Gruppe wiederum GroupbyYearist. Der Ausdruck zeigt die Ergebnisse für GroupbyDay (Standardbereich) und anschließend für GroupbyYear (der übergeordneten Gruppe der übergeordneten Gruppe GroupbyMonth) an.

Angenommen, in einem Datenbereich verfügt eine übergeordnete Gruppe namens Yearüber die untergeordnete Gruppe 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 Jahrs zurück.

Code

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