我的SSRS报告中有几个参数。有些是多值的,有些是常规的下拉列表。每次选择不同的参数值时,页面都会刷新。有没有办法避免每个参数选择的页面刷新。
提前致谢。 玛利亚
答案 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
参数。
假设我们有一个存储过程,我们必须提供从日期和到日期
DateTime
参数Datetime_Dummy
作为Name
和DateTime
作为DataType
=Today()
DateTime
参数
FromDate
参数的DataType
设置为DateTime
=Parameters!Datetime_Dummy.Value
这可以防止在选择新的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;
答案 6 :(得分:-2)
我多次这样做过,这只是根据项目中的需要删除了各种排列和组合的参数依赖。
做以下事情。
我希望它会有所帮助。
谢谢。