【问题标题】:Is it possible to stop SSRS 2008 R2 from ugprading a 2005 RDL on first use?是否可以阻止 SSRS 2008 R2 在首次使用时升级 2005 RDL?
【发布时间】:2012-10-12 22:37:54
【问题描述】:

我们有一组使用 BIDS 2005 创建的报告,我们正在尝试将它们部署到 2008 R2 服务器上。我们遇到的问题是,在第一次查看我们的一份报告时,SSRS 2008 R2 正在查看它是否可以升级报告和所有子报告,这导致主报告升级到 2008,但子报告包含不允许升级子报告的第三方自定义报告项。如果 2008 R2 根本不尝试升级任何报告,我们会更喜欢它。

从这篇文章可以看出:http://technet.microsoft.com/en-us/library/ms143674(v=sql.105).aspx

(部分:使用子报表升级报表)

微软声明:

可以升级主报表,但不能升级一个或多个子报表。主报表由 SQL Server 2008 Reporting Services 报表处理器处理,但呈现的报表在无法升级的子报表出现的位置显示消息“错误:无法处理子报表”。

这显然没用,因为我们需要能够看到子报表!

所以我的问题是:

我们能否强制 SSRS 始终使用 2005 RDL 文件而不自动升级?

【问题讨论】:

  • 作为部署位的解决方法,您是否尝试过部署报告而不打开它们进行查看?当然,这仍然不允许您编辑报告。
  • 我们可以部署报表,但是当我们查看主报表时,它将显示整个报表,但子报表除外,它会显示“错误:无法显示子报表”。我们可以独立查看子报表,但不能在主报表中查看。

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


【解决方案1】:

我认为最简单的答案是在 BIDS 2005 中编辑父报表并添加一个 CustomReportItem,甚至可能将可见性设置为 false。这应该会强制 SSRS 2008R2 将报告标记为需要向后兼容。

或者,这个标志存储在数据库的某个地方,但我不确定在哪里。我无权访问使用该处理引擎运行的任何 2005 年报告,因此我无法进行搜索。

【讨论】:

  • 我们确实设法让您的第一个建议奏效,但其他一些开发人员抱怨说,当他们得到带有隐藏 CRI 的新版本时,它破坏了他们的 rdl 版本。所以我们需要寻找它的替代品。我确实在数据库中查看了国旗,但在任何地方都找不到,这基本上就是我要找的。​​span>
  • 如果您能回复此标志的名称或位置,我将不胜感激。这是解决我们问题的最佳解决方案,而不是我们想出的一些运行时破解。谢谢。
  • 我没有任何 2005 年报告,更不用说任何使用自定义报告元素的 2005 年报告了。所以我没有一个简单的方法来重现这个。我猜该标志存储在Catalog 表中。也许ExecutionFlag 字段?要找出答案,请通过上传您的一个子报告定义来创建一份新的 2005 年报告。在第一次执行之前和之后比较它的目录行。
猜你喜欢
  • 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
相关资源
最近更新 更多