7

我很想在这个问题上任何人的协助。这个问题一直是许多人的麻烦,因为在SQL2008 R2和SQL2012中呈现EMF格式的报表在编程上不起作用。SQL报告 - 多页EMF报告问题

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

总之,调用渲染ReportExecutionService对象的方法时,它给回流ID映射的与阵列沿着第一页(经由输出参数)随后的页面。然后,您为每个后续页面在该流上调用RenderStream方法。 2008年的效果非常好。在2008 R2/2012年,流ID的数组会变回空,这意味着您只能获得第一页 - 使其无用。

我很高兴地看到,MS发布的修补程序于2012年进行修复:http://support.microsoft.com/kb/2637802

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

感谢您的任何帮助。 Steve

+2

嗨约书亚 - 谢谢。我没有意识到自己一直这么淡漠(也没有完全理解它)。我已经回过头来回答,并给予信贷在哪里 - 到期。在需要时总是欢迎裤子踢:) – MrCraze

回答

2

对于具有多个页面的EMF,您必须使用rs:PersistedStreams=Truers:GetNextStream=True URL访问参数。有关这些人的更多信息: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的修补程序。 如上所述,在所有情况下,对于EMF,streamIDs参数保留为空。 无论如何,在我的机器上SQL 2005以前安装过,也许在某些时候是2008年。有些帖子指出以前安装的SQL Server可能是一个问题,因此干净的OS安装可能会有所帮助。如果你迫切希望这个工作。

+0

嗨HB,非常感谢你的解决方案。我使用基于第二个链接的渲染函数的重载构建了报告。它允许使用我使用的同一个ServerReport对象传递rs:PersistStreams参数,并且在2008 R1和SQL 2012中工作,以便轻松升级。万分感谢 - 你是冠军。 – MrCraze