C#报表查看器成功打印事件

时间:2013-12-11 12:25:33

标签: c# printing reportviewer

我正在开发一个查看报告(.rdlc)并打印它的.Net应用程序(C#)。

如果打印成功,我应该更新数据库中的某些状态。

但问题是我找不到方法知道打印是否成功。

对于reportviewer,我有两个事件:

  • 打印事件:当用户点击reportViewer的打印按钮时会触发。

  • PrintingBegin事件:当用户在打印对话框中单击“确定”时会触发 - 但如果打印机处于脱机状态或缺纸状态......等,则不会给出任何指示,应用程序将无法知道。

有没有办法确保打印过程成功?

由于

1 个答案:

答案 0 :(得分:1)

它不是那么直接(你必须根据印刷品的启动方式以不同的方式处理它),但你可以做到。

如果用户点击“打印”按钮,则ReportViewer的{​​{1}}方法将提供请求。任何异常都将由(不幸的是内部)OnPrint方法处理。该方法(除其他外)将使用异常信息引发UpdateUiStatus事件。只需为该事件添加适当的处理程序,您就会知道打印是否失败。请注意,如果打印完成且没有错误,您将不会收到通知。

此解决方案的问题在于,如果是来自打印机的事件,则必须理解(因此您必须处理异常详细信息)。

另一种方法是隐藏ReportError控件公开的默认打印按钮,如果直接调用ReportViewer方法,则可以捕获所有异常,并且您将知道打印何时开始以及是否有效

相关问题