0

系统 - SSRS 2008R2 使用报告生成器 3.0(或 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)

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

谢谢!

4

1 回答 1

1

如果我理解正确...

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

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

于 2012-01-10T20:38:29.897 回答