【问题标题】:SSRS: ASP.NET ReportViewer parameters reset to default when clicking View ReportSSRS:单击查看报告时,ASP.NET ReportViewer 参数重置为默认值
【发布时间】:2010-10-15 14:48:03
【问题描述】:

我有一个 SQL Reporting Services 报告(使用 Report Builder v2.0 构建的 SQL 2008),它有一个多选整数参数(在本例中是商店列表)。

默认值为0(“所有商店”)。参数作为varchar(1024) 传递给存储过程。

这一切都可以在 Report Builder 或 Reporting Services 网站上正常运行。

但是,对于使用 ReportViewer 组件的 ASP.NET 网站,每次选择“查看报告”时,参数都会重置为默认值。

我尝试将视图设置为非异步加载(更改渲染容器?)以及我能找到的任何其他设置,但均未成功。有谁知道解决这个问题的技巧吗?

【问题讨论】:

    标签: reporting-services parameters ssrs-2008


    【解决方案1】:

    我犯了一个错误。 ReportViewer 控件位于母版页内。每次单击“查看报告”按钮时,它都会回发并重置会话。

    我在报告设置方法之前添加了if (!IsPostBack)

    【讨论】:

      【解决方案2】:

      对于那些由于原始发布者未列出的原因而遇到此错误的人...

      这是一个类似的场景。

      您有一个使用多选报告参数的报告。 此参数由数据源填充,该数据源的值基于某些表查询。

      当您为此报告参数使用“全选”选项并按下“查看报告”按钮时,该参数将重置为空白并且不会生成您的报告。

      我认为出现此问题是因为在执行查询时某些东西使您的数据集无效,但我不能 100% 确定。

      我所知道的是,通过使用表变量作为数据集的查询源,您可以解决这个问题。

      例如,您的 CityDataSource 可以由查询填充:

      SELECT DISTINCT city, city as SortOrder from accounts
      UNION
      SELECT 'All' as city, '0' as SortOrder
      ORDER BY SortOrder
      

      如果您一直在制作 SQL Reporting Services 报告,那么您可能曾经偶然发现过这种解决方案一两次。

      现在,我们将 CityDataSource 查询更改为如下所示:

      DECLARE @citytable TABLE (city varchar(255), sortorder varchar(255))
      INSERT INTO @citytable (city, sortorder) VALUES
      (
      SELECT DISTINCT city, city as SortOrder from accounts
      )
      SELECT city, sortorder FROM @citytable ORDER BY sortorder
      

      这样做,您的报告参数将不再重置。

      我怀疑存储过程也可以工作。

      【讨论】:

        【解决方案3】:

        我发现与原始海报类似的代码错误。每次加载页面时,我都会(重新)设置报表服务器凭据,而不仅仅是在初始化时。显然,设置报告凭据会重置所有参数。

        【讨论】:

          猜你喜欢
          • 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
          相关资源
          最近更新 更多