2012-05-16 197 views
1

我的情況是條件篩選SSRS

  1. 我有一個參數,這是一個列表,允許多值。這意味着列表中的第一條記錄是'全選'

  2. 當用戶選擇所有我需要在我的報告中包含與列表匹配的所有記錄以及那些空白的記錄。 (我的數據集正在返回這些)

  3. 當用戶只選擇一個或幾個我只想包括這些記錄。沒有那些空白

我的問題: 我有我的數據集一個過濾器,評估在列表中的參數,但我需要添加一個條件篩選,包括空白記錄時,選擇將「所有」 我試圖用表達選擇,但這不起作用

篩選表達 Fields!NAME.Value in = Parameters!List.Value !!!!!!!!!!!!做工精細

但我需要改變它像作爲

If Parameters!List.Value = 'Select All' Then 
    Fields!NAME.Value in = Parameters!List.Value or Fields!NAME.Value = " " 
Else 
    Fields!NAME.Value in = Parameters!List.Value 
End 

你能不能給我誰可以解決這個問題,請諮詢一個!

我在SSRS R2工作

謝謝!

回答

1

還有一個替代方案。

向參數數據集值添加一個項目,表示「不可用」作爲標籤,值爲空。那麼存儲過程將不會發生變化,您可以檢索數據。 如果用戶選擇特定的項目,那麼他只會得到這些值。如果他選擇了全部,那麼他也會得到所有其他人的數據。

希望這將有助於

+0

我不認爲這是一個解決方案,我的數據集工作正常,返回空記錄,以及,我複雜的過濾/這些在我SSRS取決於如果用戶選擇「全選」或不包括。 – Eliana

+0

我想知道我怎麼能在SSRS 2008年寫的東西就像一個過濾器。如果參數!List.Value = =在參數「全選」然後 領域!NAME.Value!List.Value或字段!NAME.Value =「 「 Else Fields!NAME.Value in = Parameters!List.Value End – Eliana

+0

使用Select All,您不能檢查這些條件,這就是爲什麼我要說有一個值添加到參數中。在SP中,您可能會檢查「值爲NULL或值IN(@ParamValueList)」。這就是它返回null值的原因。我使用這個過程來過濾數據。 –

2

如果你使用你的數據集過濾器,試試這個:

Expression: [NAME] 
Operator: IN 
Value (fx): =Split(Replace(Join(Parameters!List.Value, ","), "Select All", " "), ",") 

嘗試沿着這條道路的工作。基本上你可以使用Join()將多值項重建爲一個字符串,並使用Split()將其重新解構爲數組。在兩者之間,您可以操縱它們,進行修改(例如,將「全選」轉換爲「」),添加(模仿「或」)或刪除多餘的項目。

3

這爲我工作

表達式:= IIF(!參數pLocation.Value <> 「所有位置」,菲爾茲LOCATION.Value,假的!)
操作:=
值:= IIF(參數!pLocation.Value <>「All Locations」,Parameters!pLocation.Value,FALSE)

1

如果以這種方式進行操作,可以將邏輯放在一個位置。 您對參數進行過濾,除非它是所有值,然後過濾器始終匹配。 只是一點清潔劑。

表達式:= IIF(!參數pLocation.Value <> 「所有位置」,菲爾茲LOCATION.Value, 「所有位置」!)

操作:=

值:=參數pLocation!值