- PR -

クリスタルレポートの印刷処理について

1
投稿者投稿内容
ケイ
大ベテラン
会議室デビュー日: 2004/04/20
投稿数: 100
投稿日時: 2004-09-30 18:57
いつも参考にさせて頂いています。
ケイと申します。

印刷処理のPrintOutパラメータについて質問があります。

現在Vb6+クリスタルレポート9.2で開発を行っています。

Formにcrviewer9を使用しプレビューを表示し、
ボタンクリックで印刷を行っています。
印刷処理は

Dim mRepo As CRAXDDRT.Report
mRepo.PrintOut false

で行いました。

しかし、印刷ボタンを押下直後に、プレビュー用のFormを
Unload(画面閉じる処理にUnloadを書いている。
印刷ボタン直後画面閉じるボタンをクリック)した場合に、
VBが強制終了してしまいます。

PrintOutのパラメータで、印刷処理が終わるまでVBの処理を待つ。
または、正常終了の値が帰る等といった事はありますか?

印刷処理中かどうかの判断ができれば、
処理中は画面を終了しない等といった処理に変更できないのかと
考えているからです。

ヒント、もしくは実現可能な方法等でもいいので、
教えて下さい。

お願いします。
GTG
常連さん
会議室デビュー日: 2004/08/26
投稿数: 43
投稿日時: 2004-10-04 07:51
ケイ様へ

PrintingStatusオブジェクトのProgressプロパティで印刷状態を確認することができます。
戻り値がcrPrintingInProgress(2)の場合、処理中であると判断することができます。
こんな記述ではどうでしょうか。
Dim myReport As CRAXDRT.Report

myReport.PrintOut false
Do While myReport.PrintingStatus.Progress = crPrintingInProgress
i = i + 1
Loop
Unload MyForm

CRAXDDRT でなく、CRAXDRT を利用しましょう。機能は同じですが・・
ケイ
大ベテラン
会議室デビュー日: 2004/04/20
投稿数: 100
投稿日時: 2004-10-05 09:55
GTG様返信が遅れて申し訳ありません。

確かにmyReport.PrintingStatus.Progress = crPrintingInProgressで
印刷中が判断でしました。

ただ、do whileにすると、処理がそこに移ってしまう為、
印刷処理が終了しない状況になってしまいます。

その為、IF文で印刷処理中はUnloadしないように変更しました。
※いずれは、印刷処理中に閉じるボタンを押下したら、印刷処理後に
画面終了をする処理を考え無くてはいけませんが、今は時間が無い為、
IF文にしました。

また、
>CRAXDDRT でなく、CRAXDRT を利用しましょう。機能は同じですが・
とありますが、これはどのような違いからかお分かりですか?

こちらでCRAXDDRTを使用したのは、参考にしたソースがCRAXDDRTを使用していた為
だったので、CRAXDRTの方がよい理由などが分かるようなホームページまたは、
資料名等教えて頂けますでしょうか?

よろしくお願いします。
GTG
常連さん
会議室デビュー日: 2004/08/26
投稿数: 43
投稿日時: 2004-10-05 11:27
ケイ様へ、

私の勝手な解釈は、RCAPIを利用する場合、CRAXDDRTを利用するものと思っています。
製品版Crystal Reports 9のサンプルコードは、CRAXDDRTを利用しています。
これは、サンプルCRAXDRTの違いは、CRAXDDRTで
GTG
常連さん
会議室デビュー日: 2004/08/26
投稿数: 43
投稿日時: 2004-10-05 12:00
ケイ様へ、

申し訳ございません、書き込み中に誤って送信してしまいました。
改めて、書き直します。

私の勝手な解釈は、RCAPIを利用する場合、CRAXDDRTを利用するものと思っています。
製品版Crystal Reports 9のサンプルは、CRAXDDRTを利用しています。
これは、RDC Creation API機能を利用しているサンプルがあるからだと思っています。
RDC Creation API機能は、空からレポートをデザインすることができ、予めレポートをデザインしたレポートファイルが存在しなくてもレポートを表示することができます。
VBプロジェクト内のデザイナを利用し、且つ、RDC Creation API機能を利用する場合、CRAXDDRT.DLLを利用するものと解釈しています。CRAXDRT.DLLは、単にレポートを表示するような場合に利用するものと解釈しています。
以下のリンクに同じような記述があります。
http://support.businessobjects.com/library/kbase/articles/c2009876.asp
また、以下のリンクには、RDC Creation API機能で利用するメソッド、プロパティの一覧があります。
http://support.businessobjects.com/library/kbase/articles/c2012835.asp
ケイ
大ベテラン
会議室デビュー日: 2004/04/20
投稿数: 100
投稿日時: 2004-10-05 12:54
GTG様返信ありがとうございます。

そうですか、RDC Creation API機能を利用するかどうかで、
変わってくるのですね。

リンクなども教えて頂き本当にありがとうございました。
1

スキルアップ/キャリアアップ(JOB@IT)