WinForms基于任务报表的帮助 > 报表帮助文档 > 呈现报表(预览,打印以及导出) > 在报表呈现过程中显示进度显示器 |
大多数预览应用在呈现页面时都包含进度提示,并且拥有一个按钮允许你取消报表生成。.NET打印预览控制器自动提供这一功能。如果你直接打印报表或者导出报表文件,这里并没有内置的进度显示在报表UI中。
你可以使用C1Report 事件创建一个报表进度对话框,或者在呈现报表时更新状态条。StartPage和EndReport事件将会有足够的反馈告诉你哪个页面正在被打印以及报表什么时候完成。例如,下述代码使用起始页事件给状态条(StatusStrip1)提供反馈。
Visual Basic
Visual Basic |
拷贝代码
|
---|---|
Private Sub c1r_StartPage(ByVal sender As System.Object, ByVal e As C1.Win.C1Report.ReportEventArgs) Handles c1r.StartPage StatusStrip1.Text = String.Format("Rendering page {0} of '{1}'...", c1r.Page, c1r.ReportName) End Sub |
C#
C# |
拷贝代码
|
---|---|
private void c1r_StartPage(object sender, ReportEventArgs e) { statusStrip1.Text = string.Format("Rendering page {0} of '{1}'...", c1r.Page, c1r.ReportName); } |
想要在报表完成之前取消动作,增加一个取消按钮到你的应用中,然后使用它来设置C1Report的Cancel属性为True。例如:
Visual Basic
Visual Basic |
拷贝代码
|
---|---|
Private Sub _btnCancel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCancel.Click c1r.Cancel = True Close() End Sub |
C#
C# |
拷贝代码
|
---|---|
private void _btnCancel_Click(object sender, System.EventArgs e) { c1r.Cancel = true; Close(); } |
需要注意的是你也许还想要提供进度条以及当前是第几页的提示,但是这通常情况下很难去实现。因为页面计数器在报表呈现完成前并不知道当前正在呈现的页数。
注意: 完整的报表进度指示例子,可参阅 Progress Indicator例子,该文件保存在ComponentOne Samples文件目录下。 |