使用運算式 (Reporting Services)

在 Reporting Services 中,整個報表定義中都會使用運算式來指定或計算參數、查詢、篩選、報表項目屬性、群組和排序定義、文字方塊屬性、書籤、文件引導模式、動態頁首和頁尾內容、影像及動態資料來源定義的值。本主題提供的範例將說明您可以在許多地方使用運算式來將報表的內容或外觀差異化。這份清單並不是完整的清單。您可以針對顯示運算式 (fx) 按鈕之對話方塊中的任何屬性或是顯示 [<運算式...>] 之下拉式清單中的任何屬性來設定運算式。

運算式是以 MicrosoftVisual Basic 撰寫。運算式的開頭是等號 (=),後面緊接著內建集合 (如資料集欄位和參數、常數、函數及運算子) 之參考的組合。

使用簡單運算式

「簡單運算式」(Simple Expression) 包含單一資料集欄位、參數或內建欄位的參考。簡單運算式會出現在設計介面和對話方塊的方括號內,例如資料集欄位會以 [ProductID] 形式出現。當您從資料集將欄位拖曳到文字方塊上時,系統會自動為您建立簡單運算式。便會建立預留位置,而且此運算式會定義基礎值。您也可以將運算式直接輸入資料區資料格或文字方塊中,兩者都位於設計介面或對話方塊中 (例如 [ProductID])。

下表列出您可以使用簡單運算式之方法的範例。此表描述其功能、要設定的屬性、您通常用來設定它的對話方塊,以及屬性的值。您可以在設計介面上、對話方塊中或 [屬性] 窗格內直接輸入簡單運算式,或者可以在 [運算式] 對話方塊中編輯它,就像是任何運算式一樣。

功能

屬性、內容和對話方塊

屬性值

指定要在文字方塊內顯示的資料集欄位。

文字方塊內預留位置的 Value 屬性。使用<預留位置屬性對話方塊、一般>。

[Sales]

彙總群組的值。

與 Tablix 群組相關之資料列內預留位置的 Value 屬性。使用<文字方塊屬性對話方塊、一般>。

[Sum(Sales)]

包含頁碼。

頁首放置之文字方塊內預留位置的 Value 屬性。使用<文字方塊屬性對話方塊、一般>。

[&PageNumber]

顯示選取的參數值。

設計介面上文字方塊內預留位置的 Value 屬性。使用<文字方塊屬性對話方塊、一般>。

[@SalesThreshold]

指定資料區的群組定義。

Tablix 群組上的群組運算式。使用<Tablix 群組屬性對話方塊、一般>。

[Category]

從資料表中排除特定的欄位值。

Tablix 上的篩選方程式。使用<Tablix 屬性對話方塊、篩選>。

針對資料類型選取 [整數]

[Quantity]

>

100

只包含群組篩選的特定值。

Tablix 群組上的篩選方程式。使用<Tablix 群組屬性對話方塊、篩選>。

[Category]

=

Clothing

從資料集中排除一個以上欄位的特定值。

Tablix 中群組的篩選方程式。使用<Tablix 屬性對話方塊、篩選>。

=[Color]

<>

Red

=[Color]

<>

Blue

根據資料表中的現有欄位指定排序次序。

Tablix 上的排序運算式。使用<Tablix 屬性對話方塊、排序>。

[SizeSortOrder]

將查詢參數連結到報表參數。

資料集上的參數集合。使用<資料集屬性對話方塊、參數>。

[@Category]

[@Category]

將參數從主報表傳遞到子報表。

子報表上的參數集合。使用<子報表屬性對話方塊、參數>。

[@Category]

[@Category]

如需其他範例,請參閱<運算式範例 (Reporting Services)>。

使用複雜運算式

複雜運算式可包含多個內建參考、運算子和函數呼叫,而且會以 <<Expr>> 形式出現在設計介面上。若要查看或變更運算式文字,您必須開啟 [運算式] 對話方塊或是直接在 [屬性] 窗格內輸入。下表列出您可以使用複雜運算式來顯示或組織資料或是變更報表外觀的典型方法,包括所要設定的屬性、通常用來設定它的對話方塊及屬性的值。您可以在對話方塊中、設計介面上或 [屬性] 窗格內直接輸入運算式。

功能

屬性、內容和對話方塊

屬性值

計算資料集的彙總值。

文字方塊內預留位置的 Value 屬性。使用<預留位置屬性對話方塊、一般>。

=First(Fields!Sales.Value,"DataSet1")

串連相同文字方塊內的文字和運算式。

頁首或頁尾放置之文字方塊內預留位置的 Value。使用<Tablix 屬性對話方塊、篩選>。

="This report began processing at " & Globals!ExecutionTime

計算不同範圍內資料集的彙總值。

Tablix 群組內放置之文字方塊內預留位置的 Value。使用<Tablix 屬性對話方塊、篩選>。

=Max(Fields!Total.Value,"DataSet2)

根據值來格式化文字方塊內的資料。

Tablix 之詳細資料資料列內文字方塊內預留位置的 Color。使用<文字方塊屬性對話方塊、字型>。

=IIF(Fields!TotalDue.Value < 10000,"Red","Black")

計算值一次,在整個報表中參考。

報表變數的 Value。使用<報表屬性對話方塊、變數>。

如需有關變數的詳細資訊,請參閱<使用運算式中的報表和群組變數集合參考 (Reporting Services)>。

=Variables!MyCalculation.Value

從資料集中併入一個以上欄位的特定值。

Tablix 中群組的篩選方程式。使用<Tablix 屬性對話方塊、篩選>。

針對資料類型選取 [布林值]

=IIF(InStr(Fields!Subcat.Value,"Shorts")=0 AND (Fields!Size.Value="M" OR Fields!Size.Value="S"),TRUE, FALSE)

=

TRUE

隱藏設計介面上的文字方塊,使用者可以使用名為 Show 的布林參數來切換它。

Hidden文字方塊上的屬性。使用<文字方塊屬性對話方塊、可見性>。

=Not Parameters!Show<boolean parameter>.Value

指定動態頁首或頁尾內容。

頁首或頁尾放置之文字方塊內預留位置的 Value。使用<Tablix 屬性對話方塊、篩選>。

="Page " & Globals!PageNumber & " of " & Globals!TotalPages

使用參數來動態指定資料來源。

資料來源上的連接字串。使用<資料來源屬性對話方塊、一般>。

="Data Source=" & Parameters!ServerName.Value & ";initial catalog=AdventureWorks"

識別使用者選擇之多值參數的所有值。

文字方塊內預留位置的 Value。使用<Tablix 屬性對話方塊、篩選>。

=Join(Parameters!MyMultivalueParameter.Value,", ")

在 Tablix 內 (沒有其他群組) 針對每 20 個資料列指定分頁符號。

Tablix 內群組的群組運算式。使用<Tablix 群組屬性對話方塊、一般>。

Tablix 內群組的 PageBreak。使用<Tablix 群組屬性對話方塊、分頁符號>。設定 [在群組的每個執行個體之間]

=Ceiling(RowNumber(Nothing)/20)

根據參數指定條件式可見性。

Tablix 的 Hidden 屬性。使用<Tablix 屬性對話方塊、可見性>。

=Not Parameters!<boolean parameter>.Value

指定針對特定文化特性格式化的日期。

資料區中文字方塊內預留位置的 Value。使用<文字方塊屬性對話方塊、一般>。

=Fields!OrderDate.Value.ToString(System.Globalization.CultureInfo.CreateSpecificCulture("de-DE"))

串連字串及數字 (該數字格式化成兩個小數位數的百分比)。

資料區中文字方塊內預留位置的 Value。使用<文字方塊屬性對話方塊、一般>。

="Growth Percent: " & Format(Fields!Growth.Value,"p2")

如需其他範例,請參閱<運算式範例 (Reporting Services)>。