多くのプレビューアプリケーションには進行状況インジケータがあり、レンダリング中のページが表示されたり、レポートの生成中にユーザーがレポートをキャンセルするためのボタンが用意されています。.NET 印刷プレビューコントロールは、このインジケータを自動的に準備します。
レポートを直接プリンタに印刷したり、ファイルにエクスポートする場合、進行状況を報告する UI は組み込まれません。
進行状況を報告するダイアログを作成したり、レポートの生成中にステータスバーを更新するには、C1Report のイベントを使用する必要があります。 StartPage イベントと EndReport イベントを使用すると、印刷中のページやレポートの完了に関する情報をユーザーに提供できます。たとえば、次のコードは、StartPage イベントを使用して、ステータスバー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();
}
|
|
プログレスバーやn/m ページを示すインジケータもあると便利ですが、レポート全体がレンダリングされるまでページ数がわからないため、これは一般に実現が困難です。