2011-12-11 64 views
0

系统 - 使用SSRS 2008 R2报表生成器3.0(或出价,如果你认为答案就在那里)SSRS 2008 R2报告参数与现在()默认不自动刷新

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

我做了什么?

  1. 根据3个参数构建一个报告,显示单个区域的销售数据:StartTime,EndTime,RegionCode。让我们把它叫做RegionalSales
  2. 内置一个主报告,其中包括RegionalSales的多个子报表。主报告有2个参数 - 开始时间(与默认值DATEADD( “H”, - 24,现在()))和结束时间(与默认值现在())。我将StartTime和EndTime发送到子报告,并且每个子报告都分配了它自己的区域。
  3. 我已经设置了主报告的自动刷新属性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)

任何想到为什么,以及如何改变这种情况?

谢谢!

+0

已测试的报表服务器上?开发环境具有复杂的刷新规则。 – jimconstable

+0

当然,所有报告都发布到报告服务器。 – user1092655

回答

1

如果我理解正确的...

遗憾的是,报告参数仅在第一负载得到他们的值,除非用户手动点击查看报告按钮。

要解决这个问题,我想尝试转换的日期参数,不使用默认值,而是从查询,而得到他们的价值和使用GETDATE相当于()为您的RDBMS。如果我没有记错的话,这将需要你到另一个数据集添加到您的报告...但它不会真的是一个数据集,因为对它的查询将仅仅是SELECT GETDATE()或者类似的你RDBMS]和无论你需要做什么变革。