Reporting services 一个月限额-报告服务

Reporting services 一个月限额-报告服务,reporting-services,ssrs-2008,Reporting Services,Ssrs 2008,我正在MicrosoftSQL Reporting Services中构建一个报告,我有两个日期字段,startDate和endDate 我需要限制日期范围,至少在30天或一个月内。例如,如果startDate为2012/01/01,endDate为2012/02/02,则应发出错误消息,否则相差不到三十天,则可以继续。如何在reporting service中执行此操作?您可以使用数据集根据startDate参数为endDate参数提供默认值 添加名为DefaultStartDate的数据集。

我正在MicrosoftSQL Reporting Services中构建一个报告,我有两个日期字段,startDate和endDate


我需要限制日期范围,至少在30天或一个月内。例如,如果startDate为2012/01/01,endDate为2012/02/02,则应发出错误消息,否则相差不到三十天,则可以继续。如何在reporting service中执行此操作?

您可以使用数据集根据startDate参数为endDate参数提供默认值

添加名为DefaultStartDate的数据集。将查询文本设置为:

select DATEADD(dd, DATEDIFF(dd, 0, getdate()), 0) as [startDate];
添加名为startDate的参数。将类型设置为日期/时间,并从DefaultStartDate查询中获取默认值:

添加名为ValidEndates的数据集。将查询文本设置为类似以下内容,以基于开始日期生成有效结束日期列表:

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数据集中获取可用值:


这是一个老问题,但有一个答案。解决方案的一个高级解释是在报表属性中编写代码,添加一个包含验证参数的代码的隐藏参数,以及在数据集中添加一个条件表达式。有关详细说明,请参见以下链接:

您是否考虑过使用带有动态值的下拉列表,例如1-5天、6-10天。。。您可以编写一个VB程序来调用报告,该报告首先检查参数。