7

我希望有人就这个问题提供帮助。这个问题一直是许多人的烦恼,因为以编程方式呈现 EMF 格式报告在 SQL2008 R2 和 SQL2012 中不起作用。

这是通过此处的 MS 连接记录的:https ://connect.microsoft.com/SQLServer/feedback/details/560911/sql-2008-r2-reportexecutionservice2005-broken-with-image-emf#tabs

总之,当调用 ReportExecutionService 对象的 Render 方法时,它会返回第一页以及流 ID 的数组(通过输出参数)以映射后续页。然后为每个后续页面调用该流上的 RenderStream 方法。在 2008 年工作得很好。在 2008 R2 / 2012 年,流 ID 数组返回为空,这意味着您只能获得第一页 - 使其无用。

我很高兴看到 MS 发布了 2012 年的修补程序来修复它:http: //support.microsoft.com/kb/2637802

但是,安装修补程序/重新启动/等后,我仍然有问题。有没有人让热修复工作?有过同样的经历吗?知道大型报告的可行解决方案吗?

感谢您的任何帮助。史蒂夫

4

1 回答 1

2

对于具有多个页面的 EMF,您必须使用rs:PersistedStreams=Truers:GetNextStream=TrueURL 访问参数。有关此处的更多信息:http://blogs.msdn.com/b/jgalla/...

不幸的是,这不会立即为您提供帮助,因为您无法使用 SSRS 执行 Web 服务中的 URL 访问参数。

您将必须构造一个 WebRequest,如上述博客所示(您需要自己将整个 url 放在一起)或使用 ReportViewer 控件,如下所示:http: //blogs.msdn.com/b/brianhartman/.. .

这里也是关于多页 EMF 问题的讨论。上面的链接也包括在那里。

最后一点,我在安装 SQL 2008 R2 上进行了测试,后来添加了 SP1,然后是 SP1 CU6。SP1 CU6 包含根据的修补程序。如前所述,在所有情况下,EMF 的 streamIDs 参数都为空。无论如何,在我的机器上之前安装了 SQL 2005,并且可能在某个时候安装了 2008。一些帖子表明以前安装的 SQL Server 可能存在问题,因此安装干净的操作系统可能会有所帮助。如果你迫切希望这个工作。

于 2012-06-03T17:35:11.680 回答