我在 SQL Server 2008 (SP3) 的 VS2008 中创建了一份报告。在某些情况下,该报告由嵌套 3 或 4 层的多个子报告组成。文档地图被广泛使用,以便可以进一步生成 Word 目录。
现在问题来了。
如果我在开发环境中渲染到屏幕或从 Reporting Services 服务器渲染部署的报表,那么一切正常。如果我以任何格式(使用 Word、PDF 和 Excel 测试)导出报告,则输出符合预期。
但是,如果我创建一个包含所有参数的 URL,例如
http://MYSERVERNAME/ReportServer/Pages/ReportViewer.aspx?%2fMYPATH%2fMYREPORTNAME&PARAM1=999&PARAM2=999&PARAM3=999&rs:Command=Render&rs:Format=HTML4.0
然后将其粘贴到 IE 窗口中,输出不正确。好吧,让我澄清一下。
如果我使用 HTML4.0 呈现扩展插件按上述方式呈现,那么报表会按预期呈现在屏幕上,所有内容都会显示出来。如果我通过将 rs:Format 参数更改为 Word 来呈现到 Word,则报表会呈现但第一页丢失(请参阅下面有关此内容的注释)如果我呈现为 PDF,则报表的同一部分丢失。如果我渲染到 Excel,则在第一个工作簿工作表上生成的文档映射会显示报告缺失部分的条目,但单击单击会出现“无效引用”错误,并且确实报告的该部分再次未渲染。
请注意,缺少更好术语的“主”报告由 3 个子报告组成,每个子报告都包含其他子报告。
它是第一个子报告的内容,这也仅发生在第一页上的每个节目中(因为它的长度不到一页)。在 Word 中呈现了一些东西,但它看起来像一个空表,宽度是页面的整个宽度,但高度只有几毫米。
我真的不知道为什么该部分在渲染到屏幕然后导出时完美运行时无法渲染。我曾假设他们会使用相同的渲染过程,但我不确定。
我会继续实验,可能在问题部分之前添加一些空白内容或其他内容,然后看看我得到了什么,但我对为什么会发生这种情况感到困惑,其他报告没有遇到问题(但是我只测试了 3 或 4或我写的数百个)。过去我没有过多地使用 URL 方法,但是当我编写 ac# 应用程序以运行具有不同参数的相同报告以生成超过 1200 个单词的文档时,我到了这一点,每个文档大约需要 2 分钟才能运行。那里的输出不正确,所以我重新创建了手动 URL,但问题仍然很明显,剩下的就是历史了!