SSRS:如何在不提交呈现报告的情况下打印报告?

时间:2011-04-26 05:19:00

标签: .net reporting-services

我想知道如何在不打开报表查看器的情况下打印SSRS报表。现在,我的用户必须按“打印”按钮,调出渲染的报告,然后再次按“打印”。

当前代码:

Dim report as new ReportViewer
'snip - fill datasets, set data sources, blah blah blah
report.ReportViewer1.LocalReport.DataSources.Add(datasource)
report.Show()

这会打开一个我不想要的查看器窗口,因为我的用户必须再次按Print。

所以我添加了以下内容:

report.PrintDialog()

上面的代码导致invalidOperationException,因为它还没有完成渲染。我理解这一点,但有没有办法以编程方式(而不是在屏幕上)呈现报告并将用户直接发送到打印机对话框?

编辑:好的,我90%在那里。 PrintDialog()不是要走的路。我找到了this article,但结果为InvalidXMLException。它没有告诉我为什么它是错的,只是它是错的...... API完全没有帮助所以...帮助?

4 个答案:

答案 0 :(得分:1)

您可以使用SSRS Web服务以编程方式呈现报告(即PDF格式),然后从您的应用程序中打印出来。

http://msdn.microsoft.com/en-us/library/ms152952.aspx

答案 1 :(得分:1)

这是我在这个主题上发现的,跟随并为我工作的: http://printssrsreport.blogspot.com/2011/09/print-ssrs-report-using.html

请务必遵循“步骤1”并添加对“ReportExecution2005.asmx”的引用。当我使用Reporting Services 2008 R2时,这让我感到困惑。但它就是它,它起作用。

其余的应该是直截了当的,并为你工作。

答案 2 :(得分:0)

为什么不按计划安排报告,让它们作为pdf保存到文件夹,然后使用Batch print pro之类的内容进行打印?

答案 3 :(得分:0)

尝试将report.PrintDialog()命令放在RenderingComplete控件的ReportViewer事件上。

这将确保在您调用打印对话框之前已经呈现了报告