[印刷]ダイアログボックスで、デルファイReportMachineポイントの利用者「OK」または「キャンセル」かどうかを確認する方法

最近、印刷機能を実行するときにするとき、バッチ印刷最初のものは排除した場合ReportMachineは、お客様が印刷を中止することを意味し、TrueにShowPrintDialogの場合には、顧客(以下、RMと呼ばれる)、問題が発生しますが、 1によるトラブル1の多くをキャンセルするので、私たちは、ユーザポイントプリンタウィンドウをキャンセルするかどうかを判断するために持っている「ボタンを。」

ビューのプロパティの観点から、唯一の記事ダウンイベント中に見つかりませ有用な特性はありません。原理はRMプロパティで印刷イベントを生成した後の変数を変更、Falseにグローバル変数の定義である変数またはFalseには継続それ以外の場合は、ユーザーが最終的に、印刷されませんが、終了することができますについて説明している場合、PrintReport実行裁判官の後に、この変数はTrueです印刷。RM XE10でOnBeginPrintPageイベントを判断することができましたが、D7は、このイベントなしで、PrintReportEvent下にあっBeforePrintBandは、試すことができ、私はあなたの参照のためXE10コード、同じ原理D7を作りました

TPubData1.RMReport1BeginPrintPage手順(aCanvas:のTCanvas; aPrintRect:TRect;
  aScaleX、aScaleY:ダブル);
始める
  GV_PrintDoc:=真; // Trueに、この変数は、ユーザが印刷決定するという意味
の端を、

TForm_ExpressBill.ActionPrintExecute手順(送信者:TObjectを);
VARの
  VTMP:文字列;
開始
  継承され;
 PubData1.RMReport1.ShowPrintDialogを:=真; //設定ウィンドウを印刷する前たびにプリンタをポップアップする必要が
  しようとし
    ないQueryListで
    始まる
      まず、
      しばらくはしないでくださいEofカーソル//バッチ印刷が開始
      開始
        //負荷印刷形式、PubData1.RMReport1.LoadFromBlobField(TBlobField(QueryFormat.FieldByName( 'PFormat')))
        =真; PubData1.RMReport1.DoublePass
        IF PubData1.RMReport1.PrepareReport次いで//生成
        開始を

          PubData1.RMReport1.PrintReport; //印刷を開始しますが、プリンタの設定ウィンドウが最初にポップアップ表示されます

          ないGV_PrintDocが、その後//ここがキーである場合、この変数は決定し、ユーザが決定するために指していない場合は、ここでは印刷されませんが終了し
            ブレーク;
          PubData1.RMReport1.ShowPrintDialogを:= Falseの; //ユーザーが最初の印刷を選択するので、その後、戻っていませんポップアップのウィンドウ設定
        終了、
        次;
      END;
    終了;
    MessageDlg(「明示リストは、すべてのプリンタに送信されました!」、mtInformation、[MBOK]、0);
  以外
    ON E:例外ん
    開始
      MessageDlgを(「単一の印刷失敗の理由を表現!である:「+#10 +#13 e.Message、mtWarning、[MBOK]、0)であり;
    END;
  END;
  GV_PrintDoc:=偽;
END;

おすすめ

転載: blog.csdn.net/victor_yang/article/details/87912266