【问题标题】:Can the value of a subscription parameter be set to an expression when creating an SSRS report subscription in SQL Server 2014?在 SQL Server 2014 中创建 SSRS 报表订阅时,订阅参数的值是否可以设置为表达式?
【发布时间】:2017-02-26 15:24:31
【问题描述】:

我有一个包含两个日期参数“StartDate”和“EndDate”的报告。

我想为报告创建多个订阅,涵盖不同时间段,例如上一个日历月、上一周、上周末等。

我能想到的最直接的方法是,是否可以将 StartDate 和 EndDate 参数设置为每个订阅的不同表达式。但是,我似乎根本无法从订阅页面获得表达式。这可能吗?

【问题讨论】:

    标签: sql-server reporting-services parameters sql-server-2014 subscription


    【解决方案1】:

    我处理这种情况的方法是在报告中添加一个新参数,以便您选择要运行的报告期间。该值将反过来用于确定开始日期和结束日期使用的日期。

    以下步骤概述了如何执行此操作。

    1. 向名为ReportPeriod的报告添加一个新参数。

      将以下标签(值)对添加到可用值(指定值)列表中。

      • 每日 (D)
      • 每周(W)
      • 每月(M)

    将其中之一设为默认值,这并不重要。

    在参数列表中将此新参数上移,使其位于StartDateEndDate 参数的上方(之前)。他们将根据选择的ReportPeriod 得出他们的值,所以它必须在他们之前。

    1. StartDate参数的默认值表达式设置为:

      =Switch(Parameters!ReportPeriod.Value = "D", Today.AddDays(-1),
          Parameters!ReportPeriod.Value = "W", DateAdd(DateInterval.WeekOfYear, -1, DateAdd(DateInterval.Day, -(DatePart(DateInterval.Weekday, Today, 0, 0)-1), Today)),
              Parameters!ReportPeriod.Value = "M", DateAdd(DateInterval.Month, -1, DateAdd(DateInterval.Day, -(DatePart(DateInterval.Day, Today, 0, 0)-1), Today)))
      
    2. EndDate参数的默认值表达式设置为:

      =Switch(Parameters!ReportPeriod.Value = "D", Today,
          Parameters!ReportPeriod.Value = "W", DateAdd(DateInterval.Day, -(DatePart(DateInterval.Weekday, Today, 0, 0)), Today),
              Parameters!ReportPeriod.Value = "M", DateAdd(DateInterval.Day, -(DatePart(DateInterval.Day, Today, 0, 0)), Today))
      

    您需要知道,手动运行报表时更改ReportPeriod 不会更新您眼前的StartDateEndDate 参数。但是,更改默认 ReportPeriod 影响这些值。 更重要的是,您在创建报告订阅时选择的ReportPeriod 也会影响日期值。因此,为该报告创建报告订阅,每个ReportPeriod 订阅,将为您提供所需的结果。

    随意添加更多ReportPeriod 可用值,例如 Quarterly 或 Annually,并根据需要调整表达式。

    希望对你有所帮助。

    【讨论】:

      【解决方案2】:

      您可以在 SSRS 设计环境中编写表达式来设置日期的默认值。这将在其订阅中反映为“报告默认值”。 自定义 - 使用“覆盖报告默认值”配置日期功能,即使在 SSRS 的数据驱动订阅中,直到 2012 年也不可用。用户只能选择固定日期。

      也许这篇文章有帮助:

      https://www.sqlservercentral.com/Forums/1104266/Creating-a-dynamic-date-parameter-in-a-SQL-Reporting-Services-2005-subscription

      【讨论】:

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