2017-03-06 70 views
0

我有一個SSRS報告和參數之一允許多項選擇,我也加入了「全部」選項,將「傳遞」到數據庫並選擇所有例如部門。SSRS - 多參數 - 表達視爲「全部」選項

所以在下拉我們有類似:

(全選)

所有(代碼 '')

HR(代碼1)

IT(代碼2)

管理(代碼3)

所以(全選)是斯坦dard選項與多選擇和(全部)是一個自定義的傳遞null /''。我們有額外的(全部)允許所有部門(有些不在列表中)被退回。我想要做的是理解傳遞給數據庫的內容,如果我選擇(全部)並排其他選項 - 那麼如果我選擇(全部)和人力資源?此刻,如果我選擇了這一點 - 只會顯示HR的結果。

我希望能寫,如果他們選擇(全部)做到這一點,說的條件,但我不知道該陣列是如何傳遞?我想在選擇(全部)時模仿報告所傳遞的內容?

+0

您應該從multipick參數創建一個刪除列表。如果您使用逗號,它應該看起來像「空,HR」。將一些邏輯添加到參數處理邏輯中以刪除全部選項,並僅保留多選中的默認全選。在你的報告中,將字符串拆分成一張表格並從那裏開始。 – Snowlockk

回答

0

當內置的全選選項被選擇時,SSRS設置參數是所有可能的值作爲一個逗號分隔的列表,這是傳遞給你的數據集。您的自定義所有都有自己的價值,這是作爲一個單一的價值發送,你會處理不同,然後休息。

假設你所有的參數取值爲「所有」,在你的數據集查詢,WHERE子句將需要

WWHERE dept IN (@dept) OR 'All' IN (@dept) 

如果你的所有& HR選擇,查詢會在功能上等同

​​

有一些性能影響,所以請確保您測試多個選項。

+0

非常感謝 - 這個解決方案指向了我正確的方向,我已經能夠解決 –