2013-04-15 31 views
2

我有一個RS基本表設置的報告,我已經設置它來隱藏特定的列,如果選擇了自定義指定的值。參數設置如下所示:SSRS自定義可視性參數 - 多選擇錯誤

Label  | Value 
Select All | 1 
Select 1 | 2 
Select 2 | 3 
Select 3 | 4 

然後在表矩陣列可視性其設置爲:

=Parameters!Client.Value <> 1 

但是我非常想將其設置爲選擇,不過參數值,我得到的不止一個:

The Hidden expression for the table 'tablix' contains an error: operator <> is not defined for the type Object() and type integer .

任何想法?

回答

0

您需要將參數值轉換爲Int以便比較它。

做到這一點:

= CInt(Parameters!Client.Value) <> 1 
2

您需要設置客戶作爲一個多值參數,以允許選擇多個值。

問題是多值參數是基於數組的,所以你不能像對待單值參數那樣對待它們。要獲取所選值,您需要使用Join函數,該函數返回一串所選值。

一旦擁有此列表,您可以檢查返回的字符串中的某些值,並根據每列的可見性判斷其值是否已被選中。因此,對於每一列的知名度使用類似:

=IIf(InStr(Join(Parameters!Client.Value, ","), "1") > 0, false, true) 

即如果該值是選擇值的字符串中,不隱瞞,否則隱藏。

我創建了一個簡單的報告來測試這一點。一些例子:

enter image description here

enter image description here

enter image description here

因此它應該滿足您的要求。

移動到多值參數也意味着您可以從可用值中刪除選擇全部選項,因爲默認情況下始終可用。

+0

@Gavin,你有沒有設法得到這個解決方案? –