📄 apchequereport.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 + -