SSRS报告日期范围应限制为30天

时间:2020-01-31 22:07:17

标签: reporting-services

我是SSRS的新手,我必须创建一个报告 1.开始日期和结束日期只能相隔30天,它应该引发错误消息“开始日期和结束日期必须相隔不到30天” 2.不能是将来的日期。

预先感谢。

日期:2020年2月18日:

嗨,这是过去的作品,已经部署好了,但是突然间它开始引发错误。 在Tablix属性中,我必须检查这3个条件= IIF(DATEDIFF(“ d”,Parameters!startDate.Value,Parameters!endDate.Value)> 30 AND Parameters!startDate.Value> Today()AndAlso Parameters!endDate.Value > Today()AND Parameters!startDate.Value> = Parameters!endDate.Value,True,False)。如果我选择结束日期作为今天的日期,它将引发一条消息,但同时也会显示数据。请帮我。它工作较早,曾经只显示消息说日期是将来的日期。现在它也在显示数据。我不希望显示数据。 TIA。

1 个答案:

答案 0 :(得分:0)

创建两个参数startdate和enddate,对于startdate,请使用以下CTE创建数据集:

;with dates ([startDate]) as (
Select convert(date,DateAdd("d",-60,(getdate()))) as [startDate] -- looks up todays date and subtracts 60 days
union all 
Select dateadd(day, 1, [startDate])
from dates
where [startDate] <= getdate() -- limits date not to be in the future 

) 选择[开始日期] 从日期开始 选项(maxrecursion 32767)-不要忘记使用maxrecursion选项!

这将是您的startdate参数的可用值。

对于结束日期,请使用以下CTE创建数据集:

; WITH dates([EndDate]) AS (SELECT CONVERT(date, DateAdd([d], - 59, (getdate()))) AS [EndDate]

全部联盟 SELECT dateadd(day,1,[EndDate]) 从日期 WHERE [EndDate] <= getdate()/ *在此处输入结束日期* /) SELECT [结束日期] 从日期选项开始(最大递归32767)

这将是您的enddate参数的可用值。然后,您需要应用/添加两个过滤器:

[结束日期]> [@开始日期]

[EndDate] <=表达式“ = DateAdd(” d“,30,Parameters!startdate.Value)”

这两个参数将日期范围限制为彼此之间的30天之内的两个日期,尽管将来也不会显示任何错误消息,但它们不能在将来。

相关问题