QuickReport プレビュー画面の印刷ボタン

解決


花子  2008-01-16 18:09:52  No: 29346  IP: 192.*.*.*

QuickReportのプレビュー画面で「印刷」「印刷設定」ボタンが
無効(Disable)になってしまいます。

困ったことに、印刷データに関係なく無効になったり有効に
なったりしてしまいます。

どなたが原因がわかるかた教えていただけないでしょうか?
よろしくおねがいします。

編集 削除
HOta  2008-01-17 07:27:56  No: 29347  IP: 192.*.*.*

すべての表示が、終わっていないのではないですか?時間がかかっている。

編集 削除
花子  2008-01-17 10:33:47  No: 29348  IP: 192.*.*.*

HOta様  ご返答ありがとうございます。

原因はよくわかりませんが、全ての表示が完了
(ステータスバーのパーセンテージが100%)になっても無効のままでした。
不思議なことにデバッグでステップしながらゆっくりと流すと有効になりました。

さらに不思議なことに、かなりスペックの悪いマシンでやると間違いなく
有効になるという現象でした。

恥ずかしながら、初心者なので力ずくで解決してしまいました。

もともとのロジック>>>
(呼出元フォーム)
QuickRepフォーム.Quickrep1.PreviewModal;

修正後のロジック>>>
(呼出元フォーム)
プレビュー完了変数 := False
QuickRepフォーム.Quickrep1.PreviewModal;  
while プレビュー完了変数 = False do
  sleep(100);  

(QuickRepのフォーム)
procedure QuickRepフォーム.ページフッターAfterPrint(Sender: TQRCustomBand;
  BandPrinted: Boolean); //ページフッター印刷後イベント
begin
  if 総ページ数変数 = QuickRep1.PageNumber then
    プレビュー完了変数 := True;
end;
  
かなり強引ですが、これで回避することができました。

HOta様  ありがとうございました。

編集 削除
花子  2008-01-17 10:33:48  No: 29349  IP: 192.*.*.*

HOta様  ご返答ありがとうございます。

原因はよくわかりませんが、全ての表示が完了
(ステータスバーのパーセンテージが100%)になっても無効のままでした。
不思議なことにデバッグでステップしながらゆっくりと流すと有効になりました。

さらに不思議なことに、かなりスペックの悪いマシンでやると間違いなく
有効になるという現象でした。

恥ずかしながら、初心者なので力ずくで解決してしまいました。

もともとのロジック>>>
(呼出元フォーム)
QuickRepフォーム.Quickrep1.PreviewModal;

修正後のロジック>>>
(呼出元フォーム)
プレビュー完了変数 := False
QuickRepフォーム.Quickrep1.PreviewModal;  
while プレビュー完了変数 = False do
  sleep(100);  

(QuickRepのフォーム)
procedure QuickRepフォーム.ページフッターAfterPrint(Sender: TQRCustomBand;
  BandPrinted: Boolean); //ページフッター印刷後イベント
begin
  if 総ページ数変数 = QuickRep1.PageNumber then
    プレビュー完了変数 := True;
end;
  
かなり強引ですが、これで回避することができました。

HOta様  ありがとうございました。

編集 削除
花子  2008-01-17 10:35:15  No: 29350  IP: 192.*.*.*

すみません。変更後のソースは

QuickRepフォーム.Quickrep1.PreviewModal;  

ではなく

QuickRepフォーム.Quickrep1.Preview;  

です。

編集 削除