⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 apchequereport.pas

📁 功能全面的商业财会系统源码,清晰,很有参考价值.扩展性强.
💻 PAS
字号:
unit APChequeReport;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  ExtCtrls, StdCtrls, DB, quickrpt, Qrctrls;

type
  TrptAPCheque = class(TForm)
    QuickReport: TQuickRep;
    QRSubDetail1: TQRSubDetail;
    Footer: TQRBand;
    Header: TQRBand;
    Master: TQRBand;
    txtVendorName: TQRDBText;
    lblHVendorName: TQRLabel;
    lblChequeNo: TQRLabel;
    lblHChequeNo: TQRLabel;
    txtAddressLine1: TQRDBText;
    txtAddressLine2: TQRDBText;
    txtCityStateZip: TQRDBText;
    txtCountry: TQRDBText;
    txtChequeDate: TQRDBText;
    txtChequeAmount: TQRDBText;
    txtChequeAmount1: TQRDBText;
    lblHChequeAmount1: TQRLabel;
    lblHChequeDate: TQRLabel;
    lblHChequeAmount: TQRLabel;
    txtInvoiceNo: TQRDBText;
    txtInvoiceDate: TQRDBText;
    txtPaymentAmount: TQRDBText;
    totILines: TQRExpr;
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure HeaderBeforePrint(Sender: TQRCustomBand;
      var PrintBand: Boolean);
    procedure MasterBeforePrint(Sender: TQRCustomBand;
      var PrintBand: Boolean);
    procedure QuickReportBeforePrint(Sender: TCustomQuickRep;
      var PrintReport: Boolean);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  rptAPCheque: TrptAPCheque;

implementation

uses APChequesPrintForm;

{$R *.DFM}

var
  intChequesPrinted: integer;

procedure TrptAPCheque.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
  Action := caFree;
end;

procedure TrptAPCheque.HeaderBeforePrint(Sender: TQRCustomBand;
  var PrintBand: Boolean);
begin
  if totILines.value.intResult > 0 then PrintBand := true   //Only print header on page overflow.
  else                                  PrintBand := false;
  if PrintBand = true then frmAPChequesPrint.NextChequeNo := frmAPChequesPrint.NextChequeNo + 1;
end;

procedure TrptAPCheque.MasterBeforePrint(Sender: TQRCustomBand;
  var PrintBand: Boolean);
begin
  if intChequesPrinted >0 then QuickReport.NewPage;   //Force new page for each new invoice after the 1st one. Delphi 4 (QR 3.0) gives Access Violation if you use ForceNewPage property of band.
  inc(intChequesPrinted);

  try
    frmAPChequesPrint.tblAPCheq.Edit;
    frmAPChequesPrint.tblAPCheqChequeNo.value := frmAPChequesPrint.NextChequeNo;
    frmAPChequesPrint.tblAPCheq.Post;
    frmAPChequesPrint.NextChequeNo := frmAPChequesPrint.NextChequeNo + 1;
  except raise; end;
  lblChequeNo.caption := frmAPChequesPrint.tblAPCheqChequeNo.AsString;
  lblHChequeNo.caption := frmAPChequesPrint.tblAPCheqChequeNo.AsString;

  if frmAPChequesPrint.qryAPCheqAddressLine2.value = '' then begin
    txtCityStateZip.top := 213;
    txtCountry.top := 230;
  end else begin
    txtCityStateZip.top := 230;
    txtCountry.top := 247;
  end;
end;

procedure TrptAPCheque.QuickReportBeforePrint(Sender: TCustomQuickRep;
  var PrintReport: Boolean);
begin
  intChequesPrinted := 0;
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -