【问题标题】:Page refreshing after the parameter selection in SSRS reportSSRS报表中参数选择后页面刷新
【发布时间】:2009-01-20 17:48:25
【问题描述】:

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

提前致谢。 玛丽亚

【问题讨论】:

  • 它们是链接参数吗? ie - one 的值驱动第二个下拉列表?

标签: reporting-services parameters


【解决方案1】:

我今天刚遇到这个问题,下面的帖子肯定对我有帮助。

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

引用帖子:

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

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

如果可以的话,把这些 VB 表达式转换成数据集 根据 SQL 语句返回值。所以=Year() 在 表达式会变成Select Year(getdate()) as CurYear

希望对你有帮助。

【讨论】:

    【解决方案2】:

    除非您愿意滚动自己的报表查看器控件,否则不容易。这样做是因为 SSRS 具有可用于确定其他参数值的参数。例如,假设您正在查看网站用户,并且您的第一个选项是操作系统,也许它有 Vista、XP 和 Mac。

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

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

    【讨论】:

      【解决方案3】:

      在这个例子中,我尝试了DateTime参数回发

      希望它也适合你

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

      假设我们有一个存储过程,我们必须提供 From DateTo Date

      1. 在报告参数中,添加一个虚拟DateTime 参数Datetime_Dummy 作为NameDateTime 作为DataType
      2. 将其隐藏
      3. 默认值部分,选择指定值
      4. 将表达式设置为=Today()
      5. 确保这是 datetimes 参数中的第一个 DateTime 参数
      6. FromDate参数的DataType设置为DateTime
      7. 默认值部分,选择指定值
      8. 将表达式设置为=Parameters!Datetime_Dummy.Value

      这可以防止页面在选择新的From 日期时回发。

      【讨论】:

      • 谢谢,这是我唯一的工人。即使是黑客攻击。
      【解决方案4】:

      根据我在其他地方读到的一篇文章,以下是一种对我有用的方法。

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

      每次,我输入任何一天的值并进行标记,SSRS 都会自行刷新。似乎 SSRS 试图解析表达式,在我的例子中是 Yes 和 NO 选项的值。

      解决方案是使用数据集返回 Yes 和 No 值,这为我解决了问题。

      【讨论】:

        【解决方案5】:

        解决这个问题相当长,但是我能够弄清楚。 页面不断刷新,因为您在参数之间存在依赖关系(您创建的最后一个参数,取决于您之前创建的所有参数)

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

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

        2) 双击出现的每个隐藏数据集(即参数数据集)-> 查询-> 查询设计器,右上角有一个像尺子顶部的蓝色三角形(设计模式),在从[数据库名称]开始的查询结束,您需要删除之前的所有内容,直到(不包括)ON ROWS(从底部开始的第一个ON ROWS)ALSO DELETE ALL THE CLOSING BracketS')' AT END OF查询

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

        4)展开Report Data中的Parameters文件夹,双击每个参数->Advanced->Never Refresh

        这应该负责刷新 :) 谢谢, 克里斯

        【讨论】:

        • 我右键单击报告数据平移,但没有显示隐藏数据集的菜单项。我只得到“添加数据集”。有什么想法吗?
        【解决方案6】:

        对我来说,这是通过在 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>

        【讨论】:

          【解决方案7】:

          我之前已经做过很多次了,这只是根据项目的需要通过各种排列和组合来消除参数依赖性。

          只要做以下事情。

          1. 从下拉数据群中删除所有参数的依赖关系。
          2. 在每个报告参数下传递默认值。

          我希望它会有所帮助。

          谢谢。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多