Share via


使用運算式中的報表和群組變數集合參考 (Reporting Services)

當您要進行的複雜計算是在報表的運算式中使用一次以上時,建議您建立一個變數。您可以建立報表變數或群組變數。報表變數只要設定一次,就可以供整份報表的運算式使用。群組變數則是針對每個唯一的群組值設定一次,且可用於群組階層的目前等級或以下等級的運算式中。

報表變數

報表變數可用來保存與時間相依之計算的值,例如貨幣匯率或時間戳記,或已評估一次的複雜計算。因為文字方塊中的運算式會在使用者逐頁檢視報表時視需要進行評估,所以動態值 (例如,包含 Now() 的運算式,此函數會傳回當日時間) 可能會在您檢視頁面、檢視下一頁,然後再使用 [上一頁] 按鈕返回第一頁時傳回不同的值。您可藉由將報表變數的值設定為運算式 =Now(),然後將該變數加入至您的運算式,來確保在整個報表處理時都會使用相同的值。在報表的任何運算式中都可以參考報表變數。

若要加入報表變數,請開啟 [報表屬性] 對話方塊,按一下 [變數],然後提供名稱及值。報表變數的值在設定一次後,就可在報表處理期間維持不變。

若要參考運算式中的變數,請使用全域集合語法,例如 =Variables!CustomTimeStamp.Value。此值會在設計介面的文字方塊中顯示為 <<Expr>>。

群組變數

群組變數可用來計算群組範圍內的值。群組變數只有在群組及其子群組的範圍內有效。

例如,假設資料區域針對不同稅率類別目錄的貨品顯示存貨資料,而您想要為每個類別目錄套用不同的稅率。您會根據類別目錄將資料分組,並在父群組上定義 Tax 變數。然後再針對每個稅率類別目錄定義 ItemTax 的群組變數,然後再將每個不同的類別目錄子群組指派給正確的群組變數。例如:

  • 對於以 [Category] 為基礎的父群組,定義具有 [Tax] 值的 Tax 變數。假設類別目錄值為 Food 和 Clothing。

  • 對於以 [Subcategory] 為基礎的子群組,則將 ItemsTax 變數定義為 =Variables!Tax.Value * Sum(Fields!Price.Value)。假設 Food 類別目錄的子類別目錄值為 Beverages 和 Bread。假設 Clothing 的子類別目錄值為 Shirts 和 Hats。

  • 針對子群組中資料列的文字方塊,加入 =Variables!ItemsTax.Value 運算式。

    該文字方塊會使用 Food 稅率顯示 Beverages 和 Bread 的總稅額,而使用 Clothing 稅率顯示 Shirts 和 Hats 的總稅額。

若要加入群組變數,請開啟 [Tablix 群組屬性] 對話方塊,按一下 [變數],然後提供名稱及值。群組變數會針對每個唯一的群組值計算一次。

若要參考運算式中的變數,請使用全域集合語法,例如 =Variables!GroupDescription.Value。此值會在設計介面的文字方塊中顯示為 <<Expr>>。

您也可以自訂彙總計算,結合自訂程式碼使用群組變數。如需詳細資訊,請參閱<在 Reporting Services 2008 中使用群組變數進行自訂彙總>(英文) 和<計算總計和其他彙總 (Reporting Services)>。

變更記錄

更新的內容

已使用群組變數和自訂程式碼新增用來加入自訂彙總之範例的連結。