Reports for WinForms
出力の進行状況を表示する

多くのプレビューアプリケーションには進行状況インジケータがあり、レンダリング中のページが表示されたり、レポートの生成中にユーザーがレポートをキャンセルするためのボタンが用意されています。.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);
}

完了前にレポートをキャンセルするには、アプリケーションにキャンセルボタンを追加し、それを使用して C1ReportCancel プロパティを 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 ページを示すインジケータもあると便利ですが、レポート全体がレンダリングされるまでページ数がわからないため、これは一般に実現が困難です。