字元串函數
- 使用串聯運算符和 Visual Basic 常量可将多個字段組合在一起。以下表達式傳回兩個字段,它們分别位于同一文本框的不同行中:
複制代碼
=Fields!FirstName.Value & vbCrLf & Fields!LastName.Value
- 使用 Format 函數可設定字元串中日期和數字的格式。下面的表達式以長日期格式顯示 StartDate 和 EndDate 參數的值:
複制代碼
=Format(Parameters!StartDate.Value, "D") & " through " & Format(Parameters!EndDate.Value, "D")
如果文本框僅包含日期或數字,則應使用文本框的 Format 屬性來應用格式設定,而不應在文本框中使用 Format 函數。
- Right、Len 和 InStr 函數可用于傳回子字元串,例如,修整 DOMAIN/username 以便僅傳回使用者名。下面的表達式從名為 User 的參數傳回反斜杠 (/) 字元右側的字元串部分:
複制代碼
=Right(Parameters!User.Value, Len(Parameters!User.Value) - InStr(Parameters!User.Value, "/"))
下面的表達式使用 .NET Framework System.String 類的成員而不是 Visual Basic 函數,可得到與上一個表達式相同的值:
複制代碼
=Parameters!User.Value.Substring(Parameters!User.Value.IndexOf("/")+1, Parameters!User.Value.Length-Parameters!User.Value.IndexOf("/")-1)
- 顯示多值參數的所選值。下面的示例使用 Join 函數,将參數 MySelection 的所選值串聯到單個字元串中,該字元串可設定為報表項中文本框值的表達式:
複制代碼
= Join(Parameters!MySelection.Value)
- .NET Framework System.Text.RegularExpressions 中的 Regex 函數對更改現有字元串的格式很有用,例如設定電話号碼格式。下面的表達式使用 Replace 函數,将字段中的 10 位電話号碼格式從“nnn-nnn-nnnn”更改為“(nnn) nnn-nnnn”:
複制代碼
=System.Text.RegularExpressions.Regex.Replace(Fields!Phone.Value, "(/d{3})[ -.]*(/d{3})[ -.]*(/d{4})", "($1) $2-$3")
注意: |
驗證 Fields!Phone.Value 的值沒有多餘的空格并且類型為 System.String。 |
轉換函數
使用 Visual Basic 函數可以将字段從一種資料類型轉換為另一種不同的資料類型。轉換函數可用于将字段的預設資料類型轉換為計算所需的資料類型或用于組合文本。
- 下面的表達式将常量 500 轉換為 Decimal 類型,以将其與篩選表達式 Value 字段中的 Transact-SQL money 資料類型進行比較。
複制代碼
=CDec(500)
- 下面的表達式顯示為多值參數 MySelection 選擇的值的數目。
複制代碼
=CStr(Parameters!MySelection.Count)
決策函數
- Iif 函數可根據表達式的計算結果(True 或 False)傳回兩個值中的一個。下面的表達式使用 Iif 函數在 LineTotal 的值超過 100 時傳回布爾值 True。否則,它将傳回 False:
複制代碼
=IIF(Fields!LineTotal.Value > 100, True, False)
- 使用多個 IIF 函數(也稱為“嵌套 IIF”)可以根據 PctComplete 的值傳回三個值中的一個。下面的表達式可放置在文本框的填充顔色中,進而根據文本框中的值更改背景色。
複制代碼
=IIF(Fields!PctComplete.Value >= 10, "Green", IIF(Fields!PctComplete.Value >= 1, "Blue", "Red"))
值大于或等于 10 時,顯示綠色背景;介于 1 和 9 之間時,顯示藍色背景;小于 1 時,顯示紅色背景。
- 還有另一種方法可以實作相同功能,即使用 Switch 函數。如果您要測試三個或更多條件,Switch 函數将非常有用。Switch 函數可傳回與序列中計算結果為 True 的第一個表達式相關聯的值:
複制代碼
=Switch(Fields!PctComplete.Value >= 10, "Green", Fields!PctComplete.Value >= 1, "Blue", Fields!PctComplete.Value = 1, "Yellow", Fields!PctComplete.Value <= 0, "Red",)
值大于或等于 10 時,顯示綠色背景;介于 1 和 9 之間時,顯示藍色背景;等于 1 時顯示黃色背景;小于或等于 0 時,顯示紅色背景。
- 第三種可以實作相同功能的方法是使用 Choose 函數。Choose 函數将第一個參數用作其中一個剩餘函數參數的索引。第一個參數必須是整數。如果将表中某文本框的背景色設定為此表達式,則 MyIndex 的值控制該顔色。
複制代碼
=Choose(Fields!MyIndex.Value,"Red","Green","Yellow")
例如,當 MyIndex 為 1 時,背景色為“Red”。在查詢結果集中,驗證 MyIndex 的資料沒有超出參數清單的範圍。
- 測試 ImportantDate 字段的值,如果該值大于一周,則傳回“Red”;否則傳回“Blue”。此表達式可用于控制報表項中的文本框的 Color 屬性:
複制代碼
=IIF(DateDiff("d",Fields!ImportantDate.Value, Now())>7,"Red","Blue")
- 測試 PhoneNumber 字段的值,如果為 null(在 Visual Basic 中為 Nothing),則傳回“無值”;否則傳回電話号碼值。此表達式可用于控制報表項中的文本框的值。
複制代碼
=IIF(Fields!PhoneNumber.Value Is Nothing,"No Value",Fields!PhoneNumber.Value)
- 測試 Department 字段的值,然後傳回子報表名稱或 null(在 Visual Basic 中為 Nothing)。此表達式可用于條件性鑽取子報表。
複制代碼
=IIF(Fields!Department.Value = "Development", "EmployeeReport", Nothing)
- 測試字段值是否為空。此表達式可用于控制圖像報表項的 Hidden 屬性。在下面的示例中,字段 [LargePhoto] 指定的圖像僅當字段值非空時才會顯示。
複制代碼
=IIF(IsNothing(Fields!LargePhoto.Value),True,False)