【问题标题】:SSRS Query Based Parameters Not Refreshing基于 SSRS 查询的参数不刷新
【发布时间】:2013-07-11 20:46:25
【问题描述】:

单击“查看报告”或“刷新”按钮时,在 SSRS 中刷新基于查询的参数时遇到问题。为了说明这个问题,我创建了一个包含 2 个参数的报告。 1 参数设置为使用 SSRS 函数获取时间戳 Now()。另一个参数设置为从 SQL Server 数据库查询中获取值 GETDATE()。当我查看报告时,两个参数都准确地获取了时间戳。当我点击查看报告按钮或刷新时,两个参数都不会刷新。我可以刷新时间戳的唯一方法是在新浏览器中重新打开页面。无论如何,无需打开新页面/会话即可更新这些时间戳?谢谢!

【问题讨论】:

  • 我假设您使用当前日期作为问题仅仅是为了说明目的?您并没有真正将当前日期作为参数传递到报告中?
  • @AnnL。正确的!这只是说明我遇到的问题的最简单方法。我实际上正在对 SQL Server 数据库运行查询,将结果设置为参数,然后将该参数输入 Oracle 数据库查询。当用户点击“查看报表”或“刷新”时,SQL Server 的结果可能已经改变,但并没有刷新参数值。这就是我能够用日期时间示例说明的内容。
  • 查看报表时,是在 Web Report 控件中进行的吗?在报告管理器中?其他地方?
  • 我在 SSRS 中以预览模式查看过它,还部署了它并从 Report Viewer 链接查看了它。

标签: sql-server-2008 reporting-services ssrs-2008


【解决方案1】:

修复:构建没有参数的主报告。将子报告嵌入到您的报告中。在子报表中,构建一个名为 RandomTime 的参数。在主报表中,转到子报表属性并使用值 =Now() 提供参数 RandomTime。要在每次点击刷新时正确刷新子报表中所有基于查询的参数,它们必须依赖于 RandomTime。我发现执行此操作的最简单方法是向 SQL 查询中添加一列,例如 SLECT @RandomTime AS DummyColumn。它确保每次单击刷新按钮时查询将被拉回并且所有参数都会刷新

【讨论】:

  • 完美!这是我一直在寻找的解决方法。由于数据类型问题,我使用了随机数而不是 Now()。谢谢
【解决方案2】:

执行此操作:创建主报告并将您的报告添加为子报告。在运行您的 sql 查询的主服务器上创建一个数据集。然后,将结果作为表达式传递给子报表参数。

Example--- =First(Fields!YourValue.Value, "DataSet1") --- 

【讨论】:

  • 是的,我在预览模式和部署时都尝试了“始终刷新”设置,但没有解决问题。
  • 我刚刚在报表生成器中创建了一个 ssrs 报表,其中一个参数值为 =now()。我将它拖到报告中并运行报告。每次我刷新日期都会更改。试试这个,它会刷新吗?
  • 不!我想知道为什么它对你有用而不是我。我将数据类型设置为文本(日期/时间行为对我不起作用)。可见性=可见。我用 Label =Now() 和 Value =Now() 指定了一个可用值。我将默认值设置为 =Now()。在高级下我把总是刷新。我在报告中有一个文本框设置为 [@Time1](我的参数名称)。那正是你所做的吗?它不适合我。
  • @esquire:您如何在测试用例中运行报告?来自 Web、Visual Studio 还是单独的报表生成器?这可能解释了为什么你们两个看到不同的行为。
  • @AnnL。我在报表生成器中运行。我查看了 Web 控件,由于它的构建方式,参数不会更新。我会建议使用报告变量来更新日期时间。如果您决定让它与参数一起使用,则需要制作自己的 UI,以便每次刷新报告时都会刷新参数。
猜你喜欢
  • 1970-01-01
  • 2020-07-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多