2016-02-25 18 views
0

我需要能夠基於多選參數有條件地隱藏SSRS 2005中的一行。我需要能夠隱藏行,如果多參數=「CS」,但如果多選擇參數是「CS」和「銷售」,那麼我需要看到該行。 我試過這個公式:如何使用多選參數在ssrs中隱藏行

=IIf((Parameters!Level_4.Value(0) = "CS" 
And Parameters!Level_4.Value(0) = "Sales"),false ,True) 
=IIF((Parameters!Level_4.Value(0) = "CS"), True, False) 

但它不工作...

回答

1

試試這個:

=Switch(
Array.IndexOf(Parameters!Level_4.Value, "CS")>-1 AND 
Array.IndexOf(Parameters!Level_4.Value, "Sales")>-1,false, 
Array.IndexOf(Parameters!Level_4.Value, "CS")>-1,true 
) 

注意多值參數可以包含存儲在一個或多個值一個數組數據類型。因此,如果您在報告中選擇一個值,它將被存儲在數組的0索引中,如果您再選擇一個值,它將被存儲在1索引中,依此類推。

示例:"CS"值存儲在Level_4.Value(0)中,而"Sales"存儲在Level_4.Value(1)中。

我建議的表達式將檢查是否選擇了這兩個值,並在該情況下返回true,否則如果僅選擇"CS",則返回false

UPDATE:替代的IndexOf支持

=Switch(
InStr(Join(Parameters!Level_4.Value, ","),"CS")>0 AND 
InStr(Join(Parameters!Level_4.Value, ","),"Sales")>0,false, 
InStr(Join(Parameters!Level_4.Value, ","),"CS")>0,true 
) 

讓我知道,如果這有助於。

+0

Alejandro - 我試過上面的公式,但我收到一個錯誤,它不能識別'IndexOf'函數..它可能是我們正在使用的SSRS版本.. 2005 –

+0

檢查我的版本@LisaBruce –

+0

工作!...非常感謝你的幫助... –