2012-10-12 75 views
1

我想篩選我的參數,當我選擇一個多選列表框時選擇一條記錄。如果某人沒有選擇記錄,則默認選擇「未選定」選項。問題是:在SSRS中篩選

=IIF(
    InStr(Join(Parameters!ProvinceID.Value,」,」),0), 
    True, 
    IIF(
     InStr(Join(Parameters!ProvinceID.Value,」,」), 
       Fields!ProvinceID.Value 
     )<>0, 
     True, 
    False) 
) 

結果不會允許正確的過濾器。

回答

0
InStr(Join(Parameters!ProvinceID.Value,」,」),0) 

難道不應該0爲 「0」

0

嘗試:

=IIf(
     InStr(Join(Parameters!ProvinceID.Value, ", "), "0") > 0 
     ,True 
     ,IIf(
       InStr(Join(Parameters!ProvinceID.Value, ", "), Fields!ProvinceID.Value) > 0, 
       ,True 
       ,False 
      ) 
    ) 

InStr將返回在字符串搜索開始的位置的整數值(如果找到)。因此,您的布爾測試(IIf()函數的第一個參數)需要確定是否返回了等於或大於1的數字。

  • 當你正在尋找一個字符串,則0所搜索的字符串中必須被編碼爲"0"

=IIf(
     InStr(Join(Parameters!ProvinceID.Value, ", "), "0") > 0 
     ,True 
     ,IIf(
       InStr(Join(Parameters!ProvinceID.Value, ", "), CStr(Fields!ProvinceID.Value)) > 0, 
       ,True 
       ,False 
      ) 
    ) 
0

什麼是你比較:

  • 如果Fields!ProvinceID.Value返回一個整數,那麼也必須使用CStr()功能像這樣轉換爲字符串?通常IIF需要類似= IIF(Fields!ListBox1.Value =「value」,「option1」,「option2」)

    = IIF(Fields!Eyes.Value =「Green」,「Green」,「Other顏色「)