- PR -

CrystalReportについて

1
投稿者投稿内容
クニモニ
常連さん
会議室デビュー日: 2003/06/17
投稿数: 22
投稿日時: 2003-06-17 21:33
はじめまして。
現在CrystalReportを使った帳票作成の作業を行っています。
その中で、印刷開始時及び印刷終了時に処理を行う必要が生じました。
もしCrystalReport内で、印刷開始直前、印刷中、印刷後の処理を行う方法がありましたら、ご指導お願いします。
行いたい処理は、印刷開始直前、印刷中、印刷後のそれぞれの時点でデータベース内のテーブルレコードのフラグを変更したいというものです。

勉強不足ゆえご迷惑をおかけしますが、なにとぞよろしくお願いします。
クニモニ
常連さん
会議室デビュー日: 2003/06/17
投稿数: 22
投稿日時: 2003-06-17 21:37
度々申し訳ありません。
もう一つ悩んでいる点があります。
式エディタを使用して表示方法の操作を行いたいのですが、外部で作成した関数を式エディタの中で呼び出すことは可能なのでしょうか?

よい方法がありましたらよろしくお願いします。
bubunya
大ベテラン
会議室デビュー日: 2003/01/16
投稿数: 124
投稿日時: 2003-06-26 00:25
印刷開始中は難しいですが、自分で印刷ボタンを作成して PrintToPrinter を呼び出すようにすれば、直前直後にはやりたい事を呼び出すことが可能ですよね。

製品版の Crystal Reports であれば、外部関数は、UFL という形式で作成すれば利用することが可能です。VS.NET についてる奴は UFL を利用することは可能ですが作成できるかどうかはわかりません。

で、この UFL の関数は、印刷中も呼び出されるはずですので、何らかの処理を行うことは不可能ではありません。ただし、通常の表示か印刷か関係無しに実行されるので、パラメータなどを使ってそれを判断できるようにしないといけませんし、なおかつオーバーヘッドも大きいかと思います。よっぽど複雑で大きなレポートでなければ印刷時間なんか少し (スプールに出力するだけです) ですし、UFL から DB への書き込むことは不可能では無いとは思いますが、手間とオーバーヘッドが大きいだけでメリットは無いと思います。
クニモニ
常連さん
会議室デビュー日: 2003/06/17
投稿数: 22
投稿日時: 2003-06-26 11:15
お返事ありがとうございます。
PrintToPrinterに関しては私も検討してみたのですが、今回実装したい処理というのがプリンタがレポートを印刷中の時、プリンタが印刷を終了した時にフラグを更新したいというものなのです。
PrintToPrinterを使ってみたところ、印刷されたかされないかに関わらず次の処理に進んでしまいました。
CrystalReportViewrではPrintDocumentのEndPrintイベントのようなものは取得できないのでしょうか?
bubunya
大ベテラン
会議室デビュー日: 2003/01/16
投稿数: 124
投稿日時: 2003-06-26 11:44
スプールに出力したら後はスプール任せなので無理でしょうね。

PrintDocument の EndPrint って使ったこと無いのですが、本当に印刷されているかチェックしているんですか?
クニモニ
常連さん
会議室デビュー日: 2003/06/17
投稿数: 22
投稿日時: 2003-06-26 13:32
それもまだ確認しておりませんが、リファレンスでは最後のページが印刷された後に通知とありました。
やはりCrystalReportで細かい制御処理を行うのは無理なのかもしれませんね。
どうもありがとうございました。
1

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