2013-02-27 47 views
3

我有一個報告,它返回產品名稱和其他產品規格列表。此報告目前有不同的搜索選項。我的用戶現在也希望能夠通過輸入多個產品編號按產品編號進行搜索。使用可選的多值文本框作爲數據集篩選器

如何通過產品編號添加過濾器,這是一個可選的多值文本框? 我試圖添加一個多值文本框。沒有輸入任何值時,報告似乎不起作用。如果我在文本框中放置一個或多個產品編號,它似乎工作正常。有沒有一種方法可以告訴報表不會過濾Null值參數?或者任何其他的想法來處理可選的多值參數?

這裏是我的多值文本框中設置

Name = ProductNumber 
    Prompt = Product Number 
    Data Type = Text 
    Allow Blank Value (checked) 
    Allow Null value (not checked) 
    Allow Multiple Values (checked) 

下面是數據集過濾器

Expression = [ProductNumber] 
    Operator = In 
    Value = [@ProductNumber] 

感謝

TL

+0

我不是什麼問題在這裏...我讀這個的方式,似乎你已經設置了一個正確工作的多值參數?您始終必須爲多值參數選擇至少一個值。你能確認你想達到的目標嗎? – 2013-02-27 14:16:55

+0

嗨伊恩,我試圖實現的是有一個**可選**多值文本框(按產品編號篩選)作爲我的報告之一的搜索條件。這意味着用戶可以決定是要放置一個或多個產品編號進行搜索還是可以省略按產品編號進行的搜索。 – 2013-02-27 17:37:16

+0

明白了,感謝您的更新。 – 2013-02-27 17:44:15

回答

3

我想你應該欺騙數據集篩選依據:

  1. 表達式應該檢查參數是否爲空,如果是這樣,則表達式a 1 else該字段。
  2. 值應該執行相同的檢查,如果參數爲空,則將值設置爲1否則將其設置爲參數。

但保持您的運營商。


或者,您可以在SQL中以類似的方式做到這一點,並具有更大的靈活性和性能。

+0

謝謝glh。你能告訴我如何在數據集過濾器中設置值嗎?不知道它是否是報告版本(MS VS 2008,SQL 2008)。當操作員處於「進入」狀態時,「表達式」按鈕呈灰色顯示。 – 2013-02-28 18:07:01

+1

老實說,根據最近的評論給出了新的信息,如果可以的話,在數據庫級別做這件事將是最簡單的選擇。所以這個選項+1。 – 2013-02-28 18:14:38

2

正如您在自己的測試中看到的那樣,至少必須使用多值參數選擇一個值。您不能在設計時將Allow null value設置爲true,並且如果您在未選擇任何值的情況下運行報告,則會發出錯誤消息。

所以你不能真正有一個報告,用戶可以在沒有選擇任何值的情況下運行它。

退一步說,忽略參數時要達到的目標是默認包含所有產品編號。那麼,爲什麼不將參數設置爲選擇了所有產品編號的默認值?這樣,用戶可以忽略它們,如果他們不想通過產品編號進行過濾,則會將其全部打勾。似乎對我來說是一個很好的解決方法。

enter image description here

所有產品編號現在選擇用戶只需如果他們要採取行動:

要做到這一點,使用填充它相同的數據集設置的參數的默認值這些返回的子集。

+0

不錯的@IanPreston! – glh 2013-02-28 09:34:56

+0

謝謝你的建議,伊恩。我用這個問題是文本框沒有填充產品編號,供用戶檢查或取消選中。該文本框是一個空白文本框,用戶可以將一個或多個產品編號(逐行)粘貼到該文本框中。該報告將自動在它們之間放置昏迷分隔符。 – 2013-02-28 17:57:37