2012-07-02 103 views
1

我在Micrososft SQL Reporting Services中構建了一個報告,我有兩個日期字段startDate和endDate。一個月的限制 - Reporting Service

我需要限制日期範圍,至少在三十天(或一個月)內。例如,如果startDate爲2012/01/01,endDate爲2012/02/02,則應提示錯誤消息,否則(小於三十天的差異),則可繼續。我如何在報告服務中做到這一點?

+0

你有沒有想過使用具有動態值(例如1-5天,6-10天等)的下拉列表? – Kane

+0

您可以編寫一個VB程序來調用首先檢查參數的報告。 – SarekOfVulcan

回答

2

您可以使用數據集根據startDate參數爲endDate參數提供默認值。

添加一個名爲DefaultStartDate的數據集。將查詢文本設置爲:

select DATEADD(dd, DATEDIFF(dd, 0, getdate()), 0) as [startDate]; 

添加名爲startDate的參數。將類型設置爲日期/時間,並從DefaultStartDate查詢默認值:

Default Values/Dataset=DefaultStartDate/Value=startDate

添加一個名爲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數據集的可用值:

Available Values/DataSet=ValidEndDates/Value=endDate/Label=endDate