[英]SSRS: How to print a report without bringing up the rendered report?
我想知道如何在不打开报表查看器的情况下打印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()
不是要走的路。 我发现了这篇文章,但它导致了一个InvalidXMLException
。 它没有告诉我为什么它是错的,只是它是错的...... API完全没有帮助所以...帮助?
以下是我在这个主题上发现的内容,随后为我工作: http : //printssrsreport.blogspot.com/2011/09/print-ssrs-report-using.html
重要的是你按照“步骤1”并添加对“ReportExecution2005.asmx”的引用。 当我使用Reporting Services 2008 R2时,这让我感到困惑。 但事实就是如此,而且它有效。
其余的应该是直截了当的,为你工作。
您可以使用SSRS Web服务以编程方式呈现报告(即PDF格式),然后从您的应用程序中打印它。
尝试将命令report.PrintDialog()
放在ReportViewer
Control的RenderingComplete
事件上。
这将确保在调用打印对话框之前已经呈现报告
为什么不把报告按计划进行,让它们作为pdf保存到文件夹然后使用Batch print pro之类的东西来打印它们?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.