.net - SQL 报告 - 多页 EMF 报告问题

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

我希望任何人在这个问题上提供帮助。这个问题一直困扰着许多人,因为以编程方式呈现 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

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

感谢您的帮助。
史蒂夫

最佳答案

对于具有多个页面的 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 可能存在问题,因此干净的操作系统安装可能会有所帮助。如果你不顾一切地希望这个工作。

关于.net - SQL 报告 - 多页 EMF 报告问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10630462/

相关文章:

sql-server - SSRS 报告输出 '' 空白''而不是最终用户的 0

reporting-services - SSRS 2012 : Cannot add multi value parameter '?' for dataset XYZ because it is not supported by the data extension

.net - F# 如何捕获所有异常

c# - 在 SQL Server 中插入批量记录

sql-server-2008 - 如何在 SQL Server 2008 中展平类别层次结构?

string - SSRS Reporting Services - 在某个单词处分割字符串

c# - 如何检索 Oracle 过程或函数的主体

c# - 不将异常标记为抽象的原因

c# - 为什么(真的吗?)List<T> 实现所有这些接口(interface),而不仅仅是 IList<T>?

sql - 将临时表传递给另一个存储过程