我在Micrososft SQL Reporting Services中構建了一個報告,我有兩個日期字段startDate和endDate。一個月的限制 - Reporting Service
我需要限制日期範圍,至少在三十天(或一個月)內。例如,如果startDate爲2012/01/01,endDate爲2012/02/02,則應提示錯誤消息,否則(小於三十天的差異),則可繼續。我如何在報告服務中做到這一點?
我在Micrososft SQL Reporting Services中構建了一個報告,我有兩個日期字段startDate和endDate。一個月的限制 - Reporting Service
我需要限制日期範圍,至少在三十天(或一個月)內。例如,如果startDate爲2012/01/01,endDate爲2012/02/02,則應提示錯誤消息,否則(小於三十天的差異),則可繼續。我如何在報告服務中做到這一點?
您可以使用數據集根據startDate參數爲endDate參數提供默認值。
添加一個名爲DefaultStartDate的數據集。將查詢文本設置爲:
select DATEADD(dd, DATEDIFF(dd, 0, getdate()), 0) as [startDate];
添加名爲startDate的參數。將類型設置爲日期/時間,並從DefaultStartDate查詢默認值:
添加一個名爲ValidEndDates的數據集。設置查詢文本類似以下,以基於起始日期有效期結束日期的列表:
with A as
(select 1 as i UNION ALL select i+1 from A where i<30)
select DATEADD(dd, i, @startDate) as [endDate] from A;
添加一個名爲EndDate參數。將類型設置爲日期/時間,並從ValidEndDates數據集的可用值:
這是一個老問題,但有一個答案。對解決方案的高級解釋是在報表屬性中編寫代碼,在DataSet中添加一個包含驗證參數的代碼的隱藏參數和一個條件表達式。請看下面的鏈接以獲得詳細的解釋:https://gugiaji.wordpress.com/2012/03/26/easy-step-by-step-ssrs-parameter-validation-using-code
你有沒有想過使用具有動態值(例如1-5天,6-10天等)的下拉列表? – Kane
您可以編寫一個VB程序來調用首先檢查參數的報告。 – SarekOfVulcan