在SSRS报告中选择参数后页面刷新

时间:2009-01-20 17:48:26

标签: reporting-services parameters

我的SSRS报告中有几个参数。有些是多值的,有些是常规的下拉列表。每次选择不同的参数值时,页面都会刷新。有没有办法避免每个参数选择的页面刷新。

提前致谢。 玛利亚

7 个答案:

答案 0 :(得分:5)

我今天刚遇到这个问题,以下帖子肯定帮助了我。

http://blog.summitcloud.com/2009/12/fix-refresh-of-parameters-in-ssrs/

从帖子中引用:

  

根据Microsoft的说法,如果是默认值或有效值列表   对于RS,“太复杂”(可能像=Year()表达式一样简单)   引擎在运行时理解它将确定它是依赖的   因此是一个令人耳目一新的候选人。

链接中的帖子显示了一个简单的解决方法示例:

  

如果可以,请将这些VB表达式转换为数据集   返回基于SQL语句的值。所以=Year()在   表达式将变为Select Year(getdate()) as CurYear

希望它有所帮助。

答案 1 :(得分:2)

除非您愿意推出自己的报表查看器控件,否则不容易。这样做是因为SSRS具有可用于确定其他参数值的参数。例如,想象一下你在看网站用户,你的第一个选择是操作系统,也许它有Vista,XP和Mac。

当您选择Vista时,页面会刷新以获取所有各种版本的Vista的列表。

如果你使用这样的东西,那么你将无法阻止刷新。

答案 2 :(得分:2)

在此示例中,我尝试了DateTime参数回发

希望它也适合你

对于参数中的DateTime字段,首先将参数设置为虚拟日期值&然后将此DateTime值分配给报告的实际DateTime参数。

假设我们有一个存储过程,我们必须提供从日期到日期

  1. 在报告参数中,添加虚拟DateTime参数Datetime_Dummy作为NameDateTime作为DataType
  2. 隐藏
  3. 默认值部分中,选择指定值
  4. 将表达式设置为=Today()
  5. 确保这是日期时间参数
  6. 中的第一个DateTime参数
  7. FromDate参数的DataType设置为DateTime
  8. 默认值部分中,选择指定值
  9. 将表达式设置为=Parameters!Datetime_Dummy.Value
  10. 这可以防止在选择新的From日期时回发页面。

答案 3 :(得分:1)

根据我在别处阅读的帖子,以下是一种对我有用的方法。

在我的场景中,我有一个布尔参数,我直接提供了Yes和No captions以及相应的true和false值(不是通过查询)。我还有2个日期时间参数。这些都没有相互联系。

每次,我输入任何日期的价值并标注,SSRS会刷新自己。似乎SSRS试图解决在我的例子中是Yes和NO选项的值的表达式。

解决方案是使用数据集返回可以解决问题的“是”和“否”值。

答案 4 :(得分:0)

这需要很长时间才能解决,但我能够弄明白。 页面保持刷新,因为您在参数之间存在依赖关系(您创建的最后一个参数取决于您之前创建的所有参数)

要解决此问题,您需要按照以下步骤删除依赖项:

1)右键单击“报告数据”窗格上的“数据集”文件夹 - >显示隐藏数据集(SSRS 2008会自动为您添加的每个参数创建数据集)

2)双击出现的每个隐藏数据集(即参数数据集) - >查询 - >查询设计器,在右上方,在标尺(设计模式)的顶部有一个蓝色三角形,在查询结尾处显示从[数据库名称],您需要在此之前擦除所有内容,直到(不是包括)ON ROWS(从底部的第一个ON ROWS)还删除所有关闭的支架')'在查询结束时

3)单击“确定”以应用更改,然后单击参数并删除该列表中的所有内容,然后按“确定”以应用。

4)展开报告数据中的Parameters文件夹,双击每个参数 - > Advanced->永不刷新

这应该照顾清爽:) 谢谢, 克里斯

答案 5 :(得分:0)

对我来说,这是通过在web.config中禁用X-Content-Type-Options:nosniff自定义标头来解决的。



<customHeaders>
   <add name="X-Frame-Options" value="SAMEORIGIN" />
   <!-- 
   <add name="X-Content-Type-Options" value="nosniff" />
	THIS BREAKS SSRS REPORTS, causes clickable controls to immediately reload page
	-->
    <add name="X-XSS-Protection" value="1; mode=block" />
</customHeaders>
&#13;
&#13;
&#13;

答案 6 :(得分:-2)

我多次这样做过,这只是根据项目中的需要删除了各种排列和组合的参数依赖。

做以下事情。

  1. 从下拉数据库中删除参数的所有依赖项。
  2. 在每个报告参数下传递默认值。
  3. 我希望它会有所帮助。

    谢谢。