我有一個多值參數,我在IIF條件如何檢查IDEX的價值爲空或不是 現在,我使用這個表達式檢查索引值
IIF(IsNothing(參數!FR.Value(0)),」」,‘測試’)
我的參數是隱藏的,有些事情它有4個值或一段時間小於4
當我檢查值的索引3值(3),並且該索引中沒有值。我顯示錯誤。我如何檢查參數的索引值。
我有一個多值參數,我在IIF條件如何檢查IDEX的價值爲空或不是 現在,我使用這個表達式檢查索引值
IIF(IsNothing(參數!FR.Value(0)),」」,‘測試’)
我的參數是隱藏的,有些事情它有4個值或一段時間小於4
當我檢查值的索引3值(3),並且該索引中沒有值。我顯示錯誤。我如何檢查參數的索引值。
第一個問題是索引3處沒有對象,而不是對象的值是Nothing
,因此嘗試訪問不存在的對象的Value
屬性時會出現錯誤。
第二個問題是IIF
是一個函數而不是語言結構,所以所有參數都在函數被調用之前被評估,而不管布爾條件的值如何。我看不到一種嘗試訪問Value(3)
屬性的方法,但不存在IIF
函數在您的臉上不存在時會炸燬。你可以嘗試一些令人費解這樣的:
=IIF(Parameters!FR.Count >= 4, Parameters!FR.Value(IIF(Parameters!FR.Count >= 4, 3, 0)), "")
但那是仍然要炸燬在你的臉上的時候有根本沒有選擇的參數值。
這樣做是創建於其中傳遞出的多值參數,你想有一個自定義代碼函數和指數的最簡單和最安全的方式:
Function Get_FR_by_Index(ByVal parameter As Parameter, ByVal index As Integer) AS String
Dim Result As String
Result = ""
If parameter.IsMultiValue Then
If parameter.Count >= index+1 Then
Result = CStr(parameter.Value(index))
End If
End If
Return Result
End Function
然後使用此功能來訪問結果:
=Code.Get_FR_by_Index(Parameters!FR, 3)
請記住,該指數是從零開始的,所以第一個Value
是指數0
嗨克里斯, 感謝您的回覆。我想問一下,我在ssrs報告中寫了這個函數。 –
在Visual Studio中,使用「Report」菜單並選擇「Report Properties ...」。在該對話框中選擇「代碼」窗口並粘貼上面的代碼。您將能夠按照描述訪問表達式中的代碼。 –
我想這也可能是一些使用的: http://stackoverflow.com/questions/21237135/display-the-non-selected-parameter-in-ssrs/21240183#21240183 – user3056839