我想知道如何在不打开报表查看器的情况下打印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
,因为它还没有完成渲染。我理解这一点,但有没有办法以编程方式(而不是在屏幕上)呈现报告并将用户直接发送到打印机对话框?
PrintDialog()
不是要走的路。我找到了this article,但结果为InvalidXMLException
。它没有告诉我为什么它是错的,只是它是错的...... API完全没有帮助所以...帮助?
答案 0 :(得分:1)
您可以使用SSRS Web服务以编程方式呈现报告(即PDF格式),然后从您的应用程序中打印出来。
答案 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
事件上。
这将确保在您调用打印对话框之前已经呈现了报告