Sql-Server
在選擇一個時將 SSRS 中的其他日期參數歸零
我設置了多個日期作為輸入參數,在 SQL 查詢中,我設置了 WHERE 子句,例如:
WHERE datecol1 >= @date1 OR (@date1 IS NULL)
這樣就可以將日期作為可選參數處理。我有三個日期參數。我想製作報告,如果使用者選擇一個日期,其他兩個應該被取消,就像 null 應該被選中一樣。
另外,現在,我在日期參數的預設值部分中有此設置,我希望依賴於其他日期參數。
我在這裡做錯了什麼?因為這仍然行不通。
在螢幕截圖中,您正在設置預設值的表達式,這只會更改報告初始顯示時的值。這不會阻止使用者更改這些值,因此您可以輕鬆獲取渲染請求,其中所有參數都填充了預設值以外的參數。
我建議讓您的報告使用者清楚地了解這些日期發生了什麼,不要在幕後使用他們的參數。為此,請在每個參數集中創建一個選項(您可以執行 UNION 之類的操作並對標籤和鍵進行硬編碼),以確保報表執行不僅符合您的預期,而且讓任何其他開發人員或使用者都清楚這一點。
使用者可能會選擇以下內容:
Param1 - "Not Used" Param2 - 20151202 Param3 - "Not Used"
您可以使用級聯參數強制此行為。但是,您可能會遇到更新級聯參數的問題。
像這樣設置:
@參數1
SELECT -1 As Key, 'Not Used' As Label UNION SELECT Key, Label FROM DATES
@參數2
SELECT -1 As Key, 'Not Used' As Label UNION SELECT Key, Label FROM DATES WHERE -1 = @Param1
@參數3
SELECT -1 As Key, 'Not Used' As Label UNION SELECT Key, Label FROM DATES WHERE -1 = @Param1 AND -1 = @Param2
這確保您只能在 param1 選擇除“未使用”之外的任何內容時為 param2 選擇“未使用”選項。您仍然可以將預設值設置為不用於所有這些。