Previous 函數 (報表產生器 3.0 和 SSRS)

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

[!附註]

您可以在 Business Intelligence Development Studio 中的報表產生器 3.0 及報表設計師中建立及修改報表定義 (.rdl)。每一個撰寫環境都提供了不同的方式讓您建立、開啟,以及儲存報表和相關的項目。如需詳細資訊,請參閱在報表設計師及報表產生器 3.0 (SSRS) 中設計報表,位於 microsoft.com 網站上。

語法

Previous(expression, scope)

參數

  • expression
    (Variant 或 Binary) 用來識別資料及擷取資料上一個值的運算式,例如,Fields!Fieldname.Value 或 Sum(Fields!Fieldname.Value)。

  • scope
    (String) 選擇性。群組或資料區域的名稱,或為 Null (在 Visual Basic 中為 Nothing),指定範圍以從其擷取 expression 所指定的上一個值。

傳回類型

傳回 Variant 或 Binary。

備註

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

如果 expression 未包含彙總,則 Previous 函數會預設為報表項目的目前範圍。

在詳細資料群組中,請使用 Previous 來指定詳細資料列之上一個執行個體中欄位參考的值。只有詳細資料群組中才支援欄位參考。例如,如果是詳細資料群組中的文字方塊,則 =Previous(Fields!Quantity.Value) 會從上一個資料列傳回 Quantity 欄位的資料。在第一個資料列中,這個運算式會傳回 Null (在 Visual Basic 中為 Nothing)。

如果 expression 包含使用預設範圍的彙總函式,則 Previous 會將彙總函式呼叫所指定之範圍的上一個執行個體內的資料加以彙總。

如果 expression 包含的彙總函式指定預設外的範圍,則 Previous 函數的 scope 參數的範圍必須包含彙總函式呼叫所指定的範圍。

Level、InScope、Aggregate 和 Previous 函數不可用於 expression 參數。不支援為任何彙總函式指定 recursive 參數。

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

範例

說明

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

程式碼

=Previous(Fields!LineTotal.Value)

說明

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

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

程式碼

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