2017-08-14 74 views
0

我正在嘗試爲我的SSRS報告中的某個字段設置條件格式。基本格式將會改變字體顏色。這是我在報告生成原始表達式:尋找與SQL「IN」子句相同的SSRS過濾器

=IIf(Fields!delta.Value < 
      IIf("ex1"=Fields!ID_name.Value 
       ,0.95 
        ,IIf("ex2"=Fields!ID_name.Value 
         ,0.988 
         ,0 
        ) 
       ) 
,"Red" 
,"Black") 

不過,我必須爲超過100不同的「ID_NAME」的價值觀,所有有着共同的「增量」值做到這一點。

我想知道是否有類似於SQL中IN子句的東西,它允許我粘貼('','','')格式內的所有「ID_name」值,以便更容易?事情是這樣的:

=IIf(Fields!delta.Value < 
    IIF(Fields!ID_name.Value IN ('ex1','ex2','ex3','...') 
     ,0.95 
      ,IIF(Fields!ID_name.Value IN ('ex4','ex5','ex6','...') 
       ,0.988 
       ,0 
       ) 
       ) 
,"Red" 
,"Black") 

我試過IIF(InStr函數()方法,但我的「ID_NAME」有着相似的名字與其他人有不同的增量值這麼一個包含子句將無法正常工作

這是可能的。 ?!感謝任何和所有的輸入謝謝!

+0

這些ID名稱,例如ex1,ex2等,可以在SQL中訪問嗎?因爲您可以使用參數化的DataSet或DataSet和Lookup函數來處理此問題。 –

回答

0

你可以做到這一點,但你需要包裝某種分隔符贏得你的文本值;噸出現在你的價值觀,以檢查像[ex1][ex2]等。

您可以使用cont ains方法,但它需要以相反的方式執行典型的IN語句。事情是這樣的..

IIF ("[ex1][ex2][ex3]".Contains("[" & Fields!ID_name.Value & "]"), 0.95, FalseBitHere) 

當然,你可以只使用一個逗號或任何你喜歡,只要它不會;出現在您的實際值中進行測試。

+0

感謝您的輸入。真的很感激它。我決定使用CASE WHEN將「ID_name」與他們的「delta」組合起來添加另一列。這只是更容易/更快的選擇 –