2013年8月30日 星期五

[SQL Server 2008R2][SSRS] 運算式

SQL Server 2008 版本的 SSRS 設計報表時,介面提供了許多屬性設定,可以用來修改物件的外觀以及呈現模式,而大多數的屬性也都支援利用運算式的模式。只要在屬性值下拉式選單有出現「運算式...」或是「fx」的字樣,就表示可以利用運算式的技術,根據邏輯判斷以產生複雜的呈現效果。
目前 SSRS 支援 VB.NET 的運算式語法。可以使用這些運算式進行處理以產生要呈現的值,或是可以透過運算式的撰寫,根據條件動態指定報表物件的屬性值。

在 SSRS 提供五種可以在運算式使用的全域集合物件

  • 欄位 ( Fields )
  • 參數 ( Parameters )
  • 內建欄位 ( Globals )
  • 報表物件 ( ReportItems )
  • 使用者 ( User )

有以下四種形式

  1. Collection!ObjectName ( 預設的表示法 )
  2. Collection.Item("ObjectName")
  3. Collection("ObjectName")
  4. Collection.ObjectName ( 僅限於全域變數與使用者集合物件 )
  • =User!Language
  • =User.Item("Language")
  • =User("Language")
  • =Globals.PageNumber

一般是使用第一種宣告模式,但是如果希望利用參數來動態指定欄位時,可利用第二、三種宣告方式,將欄位名稱以字串參數傳入,就可以利用參數動態變更欄位名稱。

撰寫運算式注意事項

  • 所有的字串前後都必須加上雙引號「"」。
  • 全域集合物件引用時,物件名稱有大小寫的差異,不過全域物件集合名稱及運算函數則不受大小寫限制。
  • 注意運算函數所能處理的資料型別限制。

注意 : 「+」及「&」
  • 「+」: 當連結在兩個數值之間時,則執行加法,當連在兩個字串之間時,則將前後字串相連。
  • 「&」: 無論前後是數值或者是字串,都會將它們視做字串連結在一起
  • 「+」及「&」都只能處理字串與時間之間的連結運算,如果是數值與時間即使是用「&」符號也會發生編譯錯誤


沒有留言: