Previous 函數 (Reporting Services)

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

語法

Previous(expression, scope)

參數

  • expression
    (Variant 或 Binary) 用來識別要擷取之值的運算式,例如 Fields!Fieldname.Value 或 Sum(Fields!Fieldname.Value)。

  • scope
    (String) 選擇性。群組或資料區的名稱,或為 Null (在 Visual Basic 中為 Nothing),可指定範圍來從中擷取 expression 所指定的上一個值。如需有關 scope 參數的詳細資訊,請參閱<使用運算式中的內建報表和彙總函數 (Reporting Services)>。

傳回類型

傳回 Variant 或 Binary。

備註

Previous 函數會在套用過所有的排序和篩選之後,針對在指定之範圍內評估的運算式傳回上一個值。如果 expression 包含使用預設範圍的彙總函數,則 Previous 會將彙總函數呼叫內指定之範圍的上一個執行個體內的資料加以彙總。如果 expression 包含的彙總函數指定預設外的範圍,則 Previous 函數的 scope 參數的範圍必須包含彙總函數呼叫內所指定的範圍。

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

在非詳細資料群組的群組中,請搭配彙總函數 (例如,表示特定群組執行個體的 First 或 Last) 來使用 Previous。例如,在根據 =Fields!Year.Value 之資料列群組的文字方塊中,=Previous(First(Fields!Year.Value)) 會傳回 Year 群組之第一個執行個體的年份。

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

範例

說明

下列程式碼範例如果置於資料區的詳細資料列中,便會針對上一個詳細資料列的 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")

變更記錄

內容更新

欄位參考的上一個值只有在詳細資料群組中才有效。