【问题标题】:SSRS 2008R2 Report parameter with Now() default not auto-refreshingSSRS 2008R2 报告参数与 Now() 默认不自动刷新
【发布时间】:2011-12-11 20:13:25
【问题描述】:

系统 - 使用报告生成器 3.0 的 SSRS 2008R2(或 BIDS,如果您认为答案就在那里)

目标 - 创建一个报告,显示每个销售区域过去 24 小时的销售数据。报告需要每 10 分钟刷新一次,并且始终显示自上次刷新后的最近 24 小时。但是 - 用户仍然需要能够更改时间范围。

我做了什么?

  1. 根据 3 个参数(StartTime、EndTime、RegionCode)构建一个显示单个区域销售数据的报表。让我们称之为区域销售
  2. 构建包含多个区域销售子报表的主报表。主报告有 2 个参数 - StartTime(默认值 dateadd("h",-24,Now()))和 EndTime(默认值 Now())。我将 StartTime 和 EndTime 发送到子报表,每个子报表都分配了它自己的区域。
  3. 我已将主报告的 Auto-Refresh 属性设置为 600。

结果 - 起初一切似乎都很完美 - 主报告加载,显示的数据对于加载时间是正确的(比如说 22:08)。但是,在自动刷新(发生在 22:18)之后,截至 22:08 的数据仍然正确。

问题在于,在第一次加载报告时,参数会按照我所说的(StartTime = 10/12/2011 22:08 & EndTime = 11/12/2011 22:08) 获取它们的默认值。 但是,在自动刷新而不是更新 (So I'll get StartTime = 10/12/2011 22:18 & EndTime = 11/12/2011 22:18) 的参数时,我仍然得到旧值 (StartTime = 10/12/2011 22:08 & EndTime = 11/12/2011 22:08)

关于为什么以及如何改变这一点的任何想法?

谢谢!

【问题讨论】:

  • 你在报表服务器上测试过吗?开发环境有复杂的刷新规则。
  • 当然,所有报表都会发布到报表服务器。

标签: reporting-services ssrs-2008 reportbuilder


【解决方案1】:

如果我理解正确的话……

不幸的是,除非用户手动单击“查看报告”按钮,否则报告参数仅在第一次加载时才获得其值。

为了解决这个问题,我尝试将日期参数转换为不使用默认值,而是从查询中获取它们的值,并为您的 RDBMS 使用等效的 GETDATE()。如果我没记错的话,这将要求您在报告中添加另一个数据集......但它不会是一个真正的数据集,因为它的查询将只是 SELECT GETDATE() [或您的 RDBMS 的等价物] 和为此,您需要进行任何转换。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-23
    • 2012-02-14
    • 1970-01-01
    • 2018-12-25
    • 2018-09-19
    相关资源
    最近更新 更多