共用方式為


Previous 函數 (報表產生器及 SSRS)

傳回某個項目在指定之範圍內上一個執行個體的值或指定的彙總值。

注意

您可以在報表產生器以及 SQL Server Data Tools 的報表設計師中建立和修改報表定義 (.rdl)。 每種撰寫環境都會提供不同的方式來建立、開啟和儲存報表與相關的項目。 如需詳細資訊,請參閱在網路上 microsoft.com 在 報表設計師 和 Report Builder (SSRS) 中設計報表

語法

  
Previous(expression, scope)  

參數

expression
(VariantBinary) 用來識別資料及擷取資料上一個值的運算式,例如,Fields!Fieldname.ValueSum(Fields!Fieldname.Value)

範圍 (scope)
(String) 選擇性。 Visual Basic) 中群組或資料區的名稱,或 null (Nothing ,指定要從中擷取 運算式所指定先前值的範圍。

傳回類型

傳回 VariantBinary

備註

Previous 函數會在套用過所有的排序和篩選之後,針對在指定範圍內評估的運算式傳回上一個值。

如果 expression 不包含匯總,函 Previous 式會預設為報表專案的目前範圍。

在詳細資料群組中,請使用 Previous 來指定上一個詳細資料列執行個體中欄位參考的值。

注意

Previous 式僅支援詳細資料群組中的欄位參考。 例如,在詳細資料群組的文字方塊中, =Previous(Fields!Quantity.Value) 會從上一個資料列傳回 Quantity 欄位的資料。 在第一個資料列中,此運算式會在 Visual Basic) 中傳回 null (Nothing

如果 expression 包含使用預設範圍的彙總函式, Previous 則會匯總彙總函式調用中所指定之範圍先前實例內的資料。

如果 expression 包含指定預設範圍以外的範圍的彙總函式 ,則Previous 函式的範圍參數必須是彙總函式調用中所指定範圍的包含範圍。

函式 LevelInScopeAggregatePrevious 不能用在 運算式參數中。 不支援為任何彙總函式指定 recursive 參數。

如需詳細資訊,請參閱彙總函式參考 (報表產生器和 SSRS)總計、彙總與內建集合的運算式範圍 (報表產生器和 SSRS)

範例

描述

下列程式碼範例如果置於資料區域的預設資料列中,會為上一個資料列的 LineTotal 欄位提供值。

程式碼

=Previous(Fields!LineTotal.Value)  

描述

下列程式碼範例顯示的運算式會計算月中特定日的銷售總和,以及該日在去年度的上一個值。 運算式會加到屬於子群組 GroupbyDay的資料列中的資料格。 該群組的父群組為 GroupbyMonth,這個群組的父群組又為 GroupbyYear。 運算式會顯示 GroupbyDay (預設範圍) 的結果,然後再顯示 GroupbyYear (GroupbyDay 父群組 GroupbyMonth的父代) 的結果。

例如,如果資料區域具有名為 Year的父群組,而其子群組名為 Month,該子群組的子群組又名為 Day (3 個巢狀層級)。 與群組 =Previous(Sum(Fields!Sales.Value,"Day"),"Year") 相關資料列中的運算式 Day 會針對去年度的同一日期和月份傳回銷售值。

程式碼

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

另請參閱

報表中的運算式用法 (報表產生器及 SSRS)
運算式範例 (報表產生器及 SSRS)
運算式中的資料類型 (報表產生器及 SSRS)
總計、彙總與內建集合的運算式範圍 (報表產生器及 SSRS)