繁体   English   中英

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

[英]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格式),然后从您的应用程序中打印它。

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM