【问题标题】:One month limit - Reporting Service1 个月限制 - 报告服务
【发布时间】:2012-07-02 22:05:15
【问题描述】:

我正在 Microsoft SQL Reporting Services 中构建一个报告,并且我有两个日期字段,startDate 和 endDate。

我需要限制日期范围,至少在三十天(或一个月)内。例如,如果 startDate 是 2012/01/01 并且 endDate 是 2012/02/02,它应该引发错误消息,否则(小于三十天的差异),它可以继续。如何在报告服务中做到这一点?

【问题讨论】:

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

标签: reporting-services ssrs-2008


【解决方案1】:

您可以使用数据集根据您的 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 数据集中获取可用值:

【讨论】:

    【解决方案2】:

    这是一个老问题,但有一个答案。解决方案的高级解释是在报告属性中编写代码,添加一个隐藏参数,其中包含验证参数的代码,以及数据集中的条件表达式。详细解释请看以下链接:https://gugiaji.wordpress.com/2012/03/26/easy-step-by-step-ssrs-parameter-validation-using-code

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-01-08
      • 1970-01-01
      相关资源
      最近更新 更多