2013-02-04 61 views
2

我在SSRS報告中的一個參數稱爲客戶。用戶希望能夠從下拉列表中選擇多個客戶。我們的客戶名單超過500多個條目。我怎樣才能在下拉列表中獲得多個值。對於這個問題,一個參數會處理多少個值?有沒有辦法將下拉列表設置爲可以鍵入提示值?最後一個問題的一個例子就好像大多數表格要求你所在的州一樣,你可以點擊列表並輸入「TX」,然後它將下移到德克薩斯州,而不必向下滾動。我希望這是有道理的。感謝您提前給予的所有幫助!具有500個值的SSRS報告參數

+0

我認爲這取決於你如何發送參數恢復到數據庫中。在過去,我已經用逗號分隔的值「加入」了存儲過程。考慮到像varchar(max)這樣的參數可能有4000個字符的限制 - 這將限制在截斷髮生之前可以發送的內容和數量。 – avgbody

回答

1

您不能讓參數的字段與自動填充文本一起工作。 我同意在小型領域有500個值不是用戶友好的。

我的建議是分裂參數轉換成2-4不同的參數(爲了使客戶更多方便),每個參數將有顧客根據ABC的域名(例如第一PARAMS將包含客戶從AI,第二JR,最後SZ)名稱

如果是這樣,您的查詢應該如下所示:

SELECT customerName,customerAddress,customerCity,... 
FROM customerTable 
WHERE (customerID IN (@customerParam1) OR customerID IN (@customerParam2) customerID IN (@customerParam3)) 
+0

謝謝你的幫助!我從來沒有想過把參數分解成這樣的組合! – jenhil34

+0

你好@Jennifer –

0

我不知道如何做第二部分輸入值,但我可以幫助如何設置下拉列表。首先編寫一個查詢,爲客戶選擇客戶名稱和唯一值。

例子:

SELECT CUSTOMER_NAME, CUSTOMER_ID 
FROM CUSTOMER_TABLE 

然後添加參數,並選擇您的數據類型,並指出「允許多個值」複選框。然後在屬性中單擊「可用值」選項卡。一旦打開,請選擇「從查詢中獲取值」並選擇剛剛寫入的查詢。選擇該項後,請轉到「值」字段並從查詢中選擇唯一值,並在「標籤」字段中選擇客戶名稱,然後全部顯示出來。

在主查詢中使用參數中的值時,您需要確保使用IN函數而不是=。這是因爲你沒有獲得一個價值,而是一次性獲得一個價值。

例子:

SELECT CUSTOMER_NAME,CUSTOMER_ADDRESS,CUSTOMER_CITY,... 
FROM CUSTOMER_TABLE 
WHERE CUSTOMER_ID IN (@CUSTOMERNAMEPARAMETER) 

參數的名稱是你需要使用的變量名。

也只是另一個提示,您可以通過轉到默認值並選擇「從查詢中獲取值」並選擇您的查詢和唯一值來選擇默認值。

另外我不認爲有一個問題,在列表框上的一些項目限制。我已經擁有了近1000個,沒有問題。