- - PR -
ActiveReport 進捗ダイアログが消えない
1
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2008-09-09 15:17
初めて投稿させていただきます。
ActiveReport .Net2.0J(トライアル版)とVB.Net2005を使用して 帳票出力処理を組んでいます。 Dim report As ActiveReport report.Run() report.Document.Print(False, True, False) 上記のように出力実行時に印刷の進捗ダイアログを表示させるように しているのですが、ダイアログについているキャンセルボタンを押下 すると、印刷がキャンセルされた後もダイアログが表示されたままに なります。 このダイアログを消去させるにはどうしたらよいのでしょうか? よろしくお願いします。 | ||||||||
|
投稿日時: 2008-09-09 16:10
提示して頂いたソースには記載されていませんが 'report' の後始末はどうしていますか?
_________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||
|
投稿日時: 2008-09-09 16:46
>>提示して頂いたソースには記載されていませんが >>'report' の後始末はどうしていますか? 特に何もしていないです・・。 VB.NETもActiveReportも初めてなもので正直「後始末??」と いうレベルです。 Try Try 'フォーム無効化 Form.Enabled = False Form.Cursor = Cursors.WaitCursor Dim report As ActiveReport report.Run() report.Document.Print(False, True, False) @ 'ここに後始末処理? Finally A 'フォーム有効化 Form.Cursor = Cursors.Default Form.Enabled = True End Try Catch ex As Exception B エラー処理 End Try キャンセルすると、@を通らずにA→Bと実行されるのですが @に後始末処理でよいのでしょうか? | ||||||||
|
投稿日時: 2008-09-09 17:19
普通はそれで問題ないはずでしょうけど、とりあえず Document と ActiveReports 自体の Dispose メソッドを実行してみてください。 それと Print メソッド以降に制御が移っているか、あるいは ActiveReports に何かしているコードがないか確認してください。
そこよりむしろ Finally ですね。 もしくは Using ステートメントがお勧めです。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||
|
投稿日時: 2008-09-09 18:41
Bの箇所にdisposeを入れてみましたが、現象は変わりませんでした。
またキャンセルした場合、Aに何か記述しても実行されませんでした。 (元々の処理にはAの箇所には何も記述していません) キャンセルした場合、エラー扱いになってB→Cと遷移するようです。 問題のある箇所が判らないので、省略していた部分も記述してみます。 原因と思しきところがあればご指摘ください。 よろしくお願いします。 Try Dim report As ActiveReport Try 'フォーム無効化 Form.Enabled = False Form.Cursor = Cursors.WaitCursor @ IF Flg = 1 then Dim rep AS RepForm1 '←ActiveReportの帳票レイアウトのクラス report = rep else Dim rep AS RepForm2 '←ActiveReportの帳票レイアウトのクラス report = rep End if 'プリンタ名セット report.Document.Printer.PrinterName = ○○○ 'レポートデータセットに取得データセット report.DataSource = list '← listは出力データ report.Run() report.Document.Print(False, True, False) A Finally B report.Document.dispose report.dispose 'フォーム有効化 Form.Cursor = Cursors.Default Form.Enabled = True End Try Catch ex As Exception C エラー処理 (メッセージを表示しているだけ) End Try | ||||||||
|
投稿日時: 2008-09-09 21:19
解決、といえるかどうか分からないのですが
出力先のプリンタがFinePrintの時だけ、現象が 発生することが分かりました。 普通にプリンタ出力した場合はキャンセルしても ダイアログは残らないです。 FinePrintを使用した時はキャンセルを押さない ように運用してもらうようお願いしてみます。 じゃんぬねっと様、どうもありがとうございました。 |
1