2014-09-19 78 views
2

在SSRS 2008R2中,如何允許用戶鍵入多值而不是選擇?允許用戶鍵入多個值而不是選擇

該報告必須具有多個過濾器,並且全部都是可選的,用戶可以選擇一個或任何參數進行過濾。交易#和類別代碼是其中所需的允許用戶鍵入值或選擇的參數。

參數如下 從日期: 至今: 交易#: 類別代碼:

使用其中可用值基於查詢的多值參數不作爲的結果將有一個解決方案一個很長的列表和用戶將無法輸入。因此,我們需要用戶輸入要過濾的值。

事務#是一個整數,用戶可以輸入一個或多個或只是保持空白,以獲得基於其他使用過濾器的結果。

回答

0

集成到SSRS中的唯一解決方案我到目前爲止發現的是起訴單個值的文本參數,以便由底層數據庫進行解析。

多值參數被替換爲單值參數,您的用戶可以隨心所欲地填充它們,您必須在報表代碼或sql層中分割/驗證這些輸入值。
這是非常快速的實施和集成到SSRS,但有一些(imho)巨大的缺點:輸入驗證和錯誤處理。

如果外部解決方案是一個選項,您可以使用asp.net報告查看器。
利用網頁腳本,Ajax等輸入界面可以非常方便用戶使用,同時保持SSRS作爲後端來完成繁重的工作。

+0

設置參數爲多值的時候,我們是不是可以在任何類型!這裏缺少什麼? – kardo 2014-09-19 12:01:34

+0

請看我的編輯。您必須爲每個參數使用單值參數,無論數據類型如何。繁瑣,處理笨拙,需要輸入消毒和驗證,但不需要外部工具。 – Paolo 2014-09-19 12:15:56

1

下面將與嵌入式查詢工作:

首先設置了文本數據類型的參數,並允許多個值。

parameter setup

由於參數必須是可選的,設置默認值(如所有),並在查詢根據此參數,得到的結果更新的WHERE子句:

... 
WHERE ('All' IN (@Customer) OR CustomerNumber IN (@Customer)) 
... 

現在當您運行報告可以突出顯示在下拉列表中的默認值:

highlight All in the dropdown and start typing

和啓動中的值輸入到(使用每個項目之間回車)搜索:

example of typed in values

+0

這真是太棒了!!!!!!! – 2016-04-19 19:54:30

+0

您將如何在報告正文中顯示客戶賬號? – BuddingProgrammer 2016-04-27 13:09:53

+0

@BuddingProgrammer如果您的意思是顯示在參數中輸入的帳號,您可以在報表正文的文本框中使用類似'Join(Parameters!Customer.Value,「|」)'的表達式 – stubaker 2016-04-27 16:04:18

相關問題