2015-05-04 97 views
0

在我的報告中,我有兩個參數。 一個用於從列表中選擇訂單號(下拉列表),另一個用於輸入訂單號。這個想法是讓最終用戶選擇訂單號或鍵入它,而不是兩個... 有沒有一種方法可以在選擇列表項時清空文本框,反之亦然,例如從列表項中選擇一個空值一旦訂單號碼被輸入,下拉列表?我想過使用代碼,但是一旦按下「查看報告」按鈕,就不可能確定要使用哪個參數。SSRS - 實現參數約束

對這種情況的任何其他方法都非常歡迎。

在此先感謝您的答覆。

回答

1

定義參數

讓我們假定允許用戶輸入訂單號被稱爲typed_value並允許用戶從列表中選擇一個項目被稱爲第二個參數的第一個參數list_value

從當值在

類型使用

阻止列表添加以下到填充list_value

WHERE @typed_value IS NULL 

這將防止在返回任何記錄查詢的WHERE子句typed_value不爲NULL,阻止客戶從列表中選擇訂單,如果他們已經鍵入訂單。

更新list_value與typed_value

上面的代碼將只刪除列表中的項目,但要獲得該列表來填充類型值這個工會添加到填充list_value查詢

UNION SELECT @typed_value WHERE @typed_value IS NOT NULL 

如果用戶離開typed_value NULL,那麼他們可以從list_value中選擇任何值。如果用戶鍵入一個值,該列表將自動替換爲他們的typed_value。

要使用哪個值?

您可以將您的報表過濾器關閉list_value並忽略typed_value,因爲如果用戶在typed_value中輸入任何值,則list_value將更新爲typed_value。

理順UX

確保參數typed_value允許空值。將typed_value的默認值設置爲NULL是一個好主意,這樣用戶可以在報表首次加載時看到列表值。

還設置list_value到@typed_value默認值將自動設置list_value任何值客戶類型英寸

+0

謝謝,這個偉大的工程!快速跟進問題:有沒有辦法將兩者結合起來?即從列表中選擇一個值或在同一個「框」中鍵入一個值。 – Makki

+0

我不知道在默認的SSRS報告顯示中做到這一點的方法。但是,如果您使用Web表單報告查看器提供SSRS報告,則可以將參數設置爲隱藏,然後設置您自己的UI以傳入參數值。 –