SQL报告 - 多页EMF报告问题

时间:2012-05-17 05:45:36

标签: .net sql-server-2008 reporting-services sql-server-2008-r2 sql-server-2012

我希望有人能帮助解决这个问题。许多人都认为问题很简单,因为在SQL2008 R2和SQL2012中,以编程方式呈现EMF格式报告不起作用。

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

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

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

然而,在安装了修补程序/重启/ etc之后,我仍然遇到了问题。有没有人得到这个修补程序工作?有同样的经历吗?知道大型报告的可行解决方案吗?

感谢您的帮助。 史蒂夫

1 个答案:

答案 0 :(得分:2)

对于包含多个页面的EMF,您必须使用rs:PersistedStreams=Truers:GetNextStream=True网址访问参数。有关这些内容的更多信息:http://blogs.msdn.com/b/jgalla/...

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

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

这也是discussion about the multipage EMF issue。以上链接也包含在那里。

最后一点,我测试了SQL 2008 R2的安装,后来又添加了SP1然后是SP1 CU6。 SP1 CU6包含根据this的修补程序。 如上所述,在所有情况下,streamID参数对于EMF保持为空。 无论如何,在我的机器上,SQL 2005以前已经安装过了,也许是2008年的某个时候。一些帖子表明以前安装SQL Server可能是个问题,因此干净的操作系统安装可能有所帮助。如果你迫不及待地想要这个。