共用方式為


運算式 (報表產生器及 SSRS)

表達式在報表中廣泛使用,以擷取、計算、顯示、群組、排序、篩選、參數化和格式化數據。 許多報表專案屬性都可以設定為表達式。 表達式可協助您控制報表的內容、設計和互動性。 表達式是以visual Basic Microsoft撰寫、儲存在報表定義中,並在您執行報表時由報表處理器評估。

不同於Microsoft Office Excel 等應用程式,您可以在工作表中直接處理數據,在報表中處理屬於數據佔位符的表達式。 若要查看評估表達式的實際數據,您必須預覽報表。 當您執行報表時,報表處理器會評估每個表達式,因為它結合報表數據和報表版面配置元素,例如數據表和圖表。

當您設計報表時,會為您設定許多報表項目的表達式。 例如,當您將欄位從資料窗格拖曳至報表設計介面上的數據表數據格時,文本框值會設定為字段的簡單表達式。 在下圖中,[報表數據] 窗格會顯示數據集欄位標識碼、名稱、SalesTerritory、Code 和 Sales。 數據表已新增三個字段:[Name]、[Code]和 [Sales]。 設計介面上的表示法 [Name] 代表基礎表示式 =Fields!Name.Value

rs_DataDesignandPreview

當您預覽報表時,報表處理器會結合數據表數據區與數據連接的實際數據,並針對結果集中的每一個數據列,在數據表中顯示一個數據列。

若要手動輸入表示式,請選取設計介面上的專案,並使用快捷功能表和對話框來設定項目的屬性。 當您在下拉式清單中看到 (fx) 按鈕或值 <Expression> 時,您知道您可以將 屬性設定為表示式。 如需詳細資訊,請參閱新增表達式(報表產生器及 SSRS)。

如需詳細資訊和範例,請參閱下列主題:

若要開發使用自定義程式碼或自定義元件的複雜表達式或表示式,建議您在 SQL Server Data Tools (SSDT) 中使用報表設計師。 如需詳細資訊,請參閱報表設計師中表達式中的自定義程式碼和元件參考 (SSRS)。

備註

您可以在報表產生器及 SQL Server Data Tools 的報表設計師中建立和修改報表定義 (.rdl)。 每個撰寫環境提供不同的方式來建立、開啟及儲存報表和相關專案。 如需詳細資訊,請至 microsoft.com 網站上查看 報表設計師和報表產生器 (SSRS) 的報表設計

了解簡單和複雜的表達式

表達式以等號 (=) 開頭,並以Visual Basic Microsoft撰寫。 表達式可以包含常數、運算符和內建值參考的組合(欄位、集合和函式),以及外部或自定義程式碼。

您可以使用表示式來指定許多報表專案屬性的值。 最常用的屬性是文字框和佔位文字的值。 一般而言,如果文本框只包含一個運算式,則表達式是文本框屬性的值。 如果文字框包含多個運算式,則每個運算式都是文字框中預設文字的值。

根據預設,表達式會顯示在報表設計介面上,做為 簡單複雜的表達式

  • 簡單 簡單表達式包含內建集合中單一項目的參考,例如數據集欄位、參數或內建字段。 在設計介面上,簡單的運算式會出現在括弧中。 例如, [FieldName] 對應至基礎表示式 =Fields!FieldName.Value。 當您建立報表配置並將專案從 [報表數據] 窗格拖曳至設計介面時,會自動為您建立簡單的表達式。 如需代表不同內建集合之符號的詳細資訊,請參閱 瞭解簡單表達式的前置詞符號

  • 複雜 複雜表達式包含多個內建參考、運算元和函數調用的參考。 當表達式值包含多個簡單的參考時,複雜表達式會顯示為 <<Expr>> 。 若要檢視表達式,請將滑鼠停留在它上方,並使用工具提示。 若要編輯表達式,請在 [ 表達式 ] 對話框中開啟它。

下圖顯示文字框和佔位元文字的典型簡單和複雜表達式。

rs_ExpressionDefaultFormat

若要顯示範例值而非表達式的文字,請將格式化套用至文字框或佔位文字。 下圖顯示切換為顯示範例值的報表設計介面:

rs_ExpressionSampleValuesFormat

如需詳細資訊,請參閱格式化文字和佔位元(報表產生器及 SSRS)。

了解簡單表達式中的前置詞符號

簡單表達式會使用符號來指出參考是字段、參數、內建集合或 ReportItems 集合。 下表顯示顯示與表示式文字的範例:

項目 顯示文字範例 表達式文字範例
數據集欄位 [Sales]

[SUM(Sales)]

[FIRST(Store)]
=Fields!Sales.Value

=Sum(Fields!Sales.Value)

=First(Fields!Store.Value)
報表參數 [@Param]

[@Param.Label]
=Parameters!Param.Value

=Parameters!Param.Label
內建欄位 [&ReportName] =Globals!ReportName.Value
用於顯示文字的文字字元 \[Sales\] [Sales]

撰寫複雜表達式

表達式可以包含對函式、運算子、常數、欄位、參數、內建集合中的項目、以及內嵌的自定義程式碼或自定義組件的參考。

備註

若要開發使用自定義程式碼或自定義元件的複雜表達式或表示式,建議您在 SQL ServerSQL Server Data Tools 中使用報表設計師(SSDT)。 如需詳細資訊,請參閱報表設計師中表達式中的自定義程式碼和元件參考 (SSRS)。

下表列出您可以在表示式中包含之參考種類:

參考資料 說明 範例
常數 描述您可以針對需要常數值的屬性以互動方式存取的常數,例如字型色彩。 ="Blue"
運算子 描述可用來在表達式中結合參考的運算符。 例如, & 運算符用於串連字串。 ="The report ran at: " & Globals!ExecutionTime & "."
內建集合 描述您可以包含在表示式中的內建集合,例如 FieldsParametersVariables =Fields!Sales.Value

=Parameters!Store.Value

=Variables!MyCalculation.Value
內建報表和聚合函數 描述您可以從表示式存取的內建函式,例如 SumPrevious =Previous(Sum(Fields!Sales.Value))
報表設計師中表示式中的自訂程式代碼和元件參考 (SSRS) 描述如何存取內建 CLR 類別 MathConvert、其他 CLR 類別、Visual Basic 運行時庫函數或方法,以及來自外部元件的方法。

描述如何存取報表中嵌入的自訂程式碼,或將其編譯並安裝為報表用戶端和報表伺服器上的自訂組件。
=Sum(Fields!Sales.Value)

=CDate(Fields!SalesDate.Value)

=DateAdd("d",3,Fields!BirthDate.Value)

=Code.ToUSD(Fields!StandardCost.Value)

驗證表達式

當您建立特定報表專案屬性的表達式時,您可以包含在表達式中的參考取決於報表專案屬性可接受的值,以及評估屬性的範圍。 例如:

  • 根據預設,表達式 [Sum] 會計算在評估表達式時範圍內的數據總和。 對於表格儲存格,範圍取決於行和列群組的成員資格。 如需詳細資訊,請參閱總計、匯總和內建集合的表達式範圍(報表產生器及 SSRS)。

  • 若是Font屬性的值,該值必須能被解析成字型名稱。

  • 表達式語法會在設計時間進行驗證。 當您發佈報表時,就會發生表達式範圍驗證。 針對依賴實際數據的驗證,只能在執行時偵測錯誤。 其中有些表達式會在轉譯的報表中產生 #Error 做為錯誤訊息。 若要協助判斷這類錯誤的問題,您必須在 SQL Server Data Tools (SSDT) 中使用報表設計師。 報表設計師提供輸出視窗,提供這些錯誤的詳細資訊。

如需詳細資訊,請參閱表達式參考(報表產生器及 SSRS)。

本節中

新增表示式 (報表產生器及 SSRS)

報表中的運算式用法 (報表產生器及 SSRS)

總計、匯總和內建集合的表達式範圍(報表產生器及 SSRS)

表達式參考 (報表產生器及 SSRS)

另請參閱