📄 pjinvoice.pas
字号:
(* GREATIS PRINT SUITE PRO *)
(* unit version 1.85.003 *)
(* Copyright (C) 2001-2007 Greatis Software *)
(* http://www.greatis.com/delphicb/printsuite/ *)
(* http://www.greatis.com/delphicb/printsuite/faq/ *)
(* http://www.greatis.com/bteam.html *)
unit PJInvoice;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Printers, PSJob;
type
TCustomInvoicePrintJob = class(TCustomPrintJob)
private
{ Private declarations }
FPages: TList;
FLogo: TPicture;
FCompanyNameFont: TFont;
FInvoiceHeaderFont: TFont;
FCompanyAddressFont: TFont;
FCustomerAddressFont: TFont;
FDetailsHeaderFont: TFont;
FDetailsFont: TFont;
FTotalFont: TFont;
FInvoiceFooterFont: TFont;
FCompanyName: string;
FInvoiceHeader: TStrings;
FCompanyAddress: TStrings;
FCustomerAddress: TStrings;
FDetailsHeader: TStrings;
FDetails: TStrings;
FTotal: TStrings;
FInvoiceFooter: TStrings;
FCompanyNameSeparator: Boolean;
FInvoiceHeaderSeparator: Boolean;
FCompanyAddressSeparator: Boolean;
FCustomerAddressSeparator: Boolean;
FDetailsHeaderSeparator: Boolean;
FDetailsSeparator: Boolean;
FTotalSeparator: Boolean;
FTabSize: Integer;
procedure SetLogo(const Value: TPicture);
procedure SetCompanyNameFont(const Value: TFont);
procedure SetInvoiceHeaderFont(const Value: TFont);
procedure SetCompanyAddressFont(const Value: TFont);
procedure SetCustomerAddressFont(const Value: TFont);
procedure SetDetailsHeaderFont(const Value: TFont);
procedure SetDetailsFont(const Value: TFont);
procedure SetTotalFont(const Value: TFont);
procedure SetInvoiceFooterFont(const Value: TFont);
procedure SetCompanyName(const Value: string);
procedure SetInvoiceHeader(const Value: TStrings);
procedure SetCompanyAddress(const Value: TStrings);
procedure SetCustomerAddress(const Value: TStrings);
procedure SetDetailsHeader(const Value: TStrings);
procedure SetDetails(const Value: TStrings);
procedure SetTotal(const Value: TStrings);
procedure SetInvoiceFooter(const Value: TStrings);
procedure SetCompanyNameSeparator(const Value: Boolean);
procedure SetInvoiceHeaderSeparator(const Value: Boolean);
procedure SetCompanyAddressSeparator(const Value: Boolean);
procedure SetCustomerAddressSeparator(const Value: Boolean);
procedure SetDetailsHeaderSeparator(const Value: Boolean);
procedure SetDetailsSeparator(const Value: Boolean);
procedure SetTotalSeparator(const Value: Boolean);
procedure SetTabSize(const Value: Integer);
function GetNormalText(Strings: TStrings): string;
protected
{ Protected declarations }
procedure Loaded; override;
property Logo: TPicture read FLogo write SetLogo;
property CompanyNameFont: TFont read FCompanyNameFont write SetCompanyNameFont;
property InvoiceHeaderFont: TFont read FInvoiceHeaderFont write SetInvoiceHeaderFont;
property CompanyAddressFont: TFont read FCompanyAddressFont write SetCompanyAddressFont;
property CustomerAddressFont: TFont read FCustomerAddressFont write SetCustomerAddressFont;
property DetailsHeaderFont: TFont read FDetailsHeaderFont write SetDetailsHeaderFont;
property DetailsFont: TFont read FDetailsFont write SetDetailsFont;
property TotalFont: TFont read FTotalFont write SetTotalFont;
property InvoiceFooterFont: TFont read FInvoiceFooterFont write SetInvoiceFooterFont;
property CompanyName: string read FCompanyName write SetCompanyName;
property InvoiceHeader: TStrings read FInvoiceHeader write SetInvoiceHeader;
property CompanyAddress: TStrings read FCompanyAddress write SetCompanyAddress;
property CustomerAddress: TStrings read FCustomerAddress write SetCustomerAddress;
property DetailsHeader: TStrings read FDetailsHeader write SetDetailsHeader;
property Details: TStrings read FDetails write SetDetails;
property Total: TStrings read FTotal write SetTotal;
property InvoiceFooter: TStrings read FInvoiceFooter write SetInvoiceFooter;
property CompanyNameSeparator: Boolean read FCompanyNameSeparator write SetCompanyNameSeparator default False;
property InvoiceHeaderSeparator: Boolean read FInvoiceHeaderSeparator write SetInvoiceHeaderSeparator default False;
property CompanyAddressSeparator: Boolean read FCompanyAddressSeparator write SetCompanyAddressSeparator default False;
property CustomerAddressSeparator: Boolean read FCustomerAddressSeparator write SetCustomerAddressSeparator default False;
property DetailsHeaderSeparator: Boolean read FDetailsHeaderSeparator write SetDetailsHeaderSeparator default False;
property DetailsSeparator: Boolean read FDetailsSeparator write SetDetailsSeparator default False;
property TotalSeparator: Boolean read FTotalSeparator write SetTotalSeparator default False;
property TabSize: Integer read FTabSize write SetTabSize default 25;
public
{ Public declarations }
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
procedure DrawArea(TheCanvas: TCanvas; PageIndex: Integer; TheRect: TRect; Area: TDrawArea; Target: TDrawTarget); override;
procedure Update; override;
published
{ Published declarations }
end;
TInvoicePrintJob = class(TCustomInvoicePrintJob)
private
{ Private declarations }
protected
{ Protected declarations }
public
{ Public declarations }
published
{ Published declarations }
// TCustomInvoicePrintJob properties
property Logo;
property CompanyNameFont;
property InvoiceHeaderFont;
property CompanyAddressFont;
property CustomerAddressFont;
property DetailsHeaderFont;
property DetailsFont;
property TotalFont;
property InvoiceFooterFont;
property CompanyName;
property InvoiceHeader;
property CompanyAddress;
property CustomerAddress;
property DetailsHeader;
property Details;
property Total;
property InvoiceFooter;
property CompanyNameSeparator;
property InvoiceHeaderSeparator;
property CompanyAddressSeparator;
property CustomerAddressSeparator;
property DetailsHeaderSeparator;
property DetailsSeparator;
property TotalSeparator;
property TabSize;
// TCustomPrintJob properties
property Title;
property Margins;
property MarginsUnits;
property MarginsError;
property Header;
property HeaderUnits;
property Footer;
property FooterUnits;
property PageMode;
property PageWidth;
property PageHeight;
property PageUnits;
property Orientation;
property Options;
property RelativeCoords;
property DefaultDrawing;
property OnCreate;
property OnDestroy;
property OnDraw;
property OnPrinterSetupChange;
property OnStartPrint;
property OnEndPrint;
property OnPrintProgress;
property OnStartPrintPage;
property OnEndPrintPage;
property OnUpdate;
end;
procedure Register;
implementation
const
brkDetails = $10000;
brkFooter = $20000;
procedure TCustomInvoicePrintJob.SetLogo(const Value: TPicture);
begin
FLogo.Assign(Value);
Update;
end;
procedure TCustomInvoicePrintJob.SetCompanyNameFont(const Value: TFont);
begin
FCompanyNameFont.Assign(Value);
Update;
end;
procedure TCustomInvoicePrintJob.SetInvoiceHeaderFont(const Value: TFont);
begin
FInvoiceHeaderFont.Assign(Value);
Update;
end;
procedure TCustomInvoicePrintJob.SetCompanyAddressFont(const Value: TFont);
begin
FCompanyAddressFont.Assign(Value);
Update;
end;
procedure TCustomInvoicePrintJob.SetCustomerAddressFont(const Value: TFont);
begin
FCustomerAddressFont.Assign(Value);
Update;
end;
procedure TCustomInvoicePrintJob.SetDetailsHeaderFont(const Value: TFont);
begin
FDetailsHeaderFont.Assign(Value);
Update;
end;
procedure TCustomInvoicePrintJob.SetDetailsFont(const Value: TFont);
begin
FDetailsFont.Assign(Value);
Update;
end;
procedure TCustomInvoicePrintJob.SetTotalFont(const Value: TFont);
begin
FTotalFont.Assign(Value);
Update;
end;
procedure TCustomInvoicePrintJob.SetInvoiceFooterFont(const Value: TFont);
begin
FInvoiceFooterFont.Assign(Value);
Update;
end;
procedure TCustomInvoicePrintJob.SetCompanyName(const Value: string);
begin
if FCompanyName<>Value then
begin
FCompanyName:=Value;
Update;
end;
end;
procedure TCustomInvoicePrintJob.SetInvoiceHeader(const Value: TStrings);
begin
FInvoiceHeader.Assign(Value);
Update;
end;
procedure TCustomInvoicePrintJob.SetCompanyAddress(const Value: TStrings);
begin
FCompanyAddress.Assign(Value);
Update;
end;
procedure TCustomInvoicePrintJob.SetCustomerAddress(const Value: TStrings);
begin
FCustomerAddress.Assign(Value);
Update;
end;
procedure TCustomInvoicePrintJob.SetDetailsHeader(const Value: TStrings);
begin
FDetailsHeader.Assign(Value);
Update;
end;
procedure TCustomInvoicePrintJob.SetDetails(const Value: TStrings);
begin
FDetails.Assign(Value);
Update;
end;
procedure TCustomInvoicePrintJob.SetTotal(const Value: TStrings);
begin
FTotal.Assign(Value);
Update;
end;
procedure TCustomInvoicePrintJob.SetInvoiceFooter(const Value: TStrings);
begin
FInvoiceFooter.Assign(Value);
Update;
end;
procedure TCustomInvoicePrintJob.SetCompanyNameSeparator(const Value: Boolean);
begin
if FCompanyNameSeparator<>Value then
begin
FCompanyNameSeparator:=Value;
Update;
end;
end;
procedure TCustomInvoicePrintJob.SetInvoiceHeaderSeparator(const Value: Boolean);
begin
if FInvoiceHeaderSeparator<>Value then
begin
FInvoiceHeaderSeparator:=Value;
Update;
end;
end;
procedure TCustomInvoicePrintJob.SetCompanyAddressSeparator(const Value: Boolean);
begin
if FCompanyAddressSeparator<>Value then
begin
FCompanyAddressSeparator:=Value;
Update;
end;
end;
procedure TCustomInvoicePrintJob.SetCustomerAddressSeparator(const Value: Boolean);
begin
if FCustomerAddressSeparator<>Value then
begin
FCustomerAddressSeparator:=Value;
Update;
end;
end;
procedure TCustomInvoicePrintJob.SetDetailsHeaderSeparator(const Value: Boolean);
begin
if FDetailsHeaderSeparator<>Value then
begin
FDetailsHeaderSeparator:=Value;
Update;
end;
end;
procedure TCustomInvoicePrintJob.SetDetailsSeparator(const Value: Boolean);
begin
if FDetailsSeparator<>Value then
begin
FDetailsSeparator:=Value;
Update;
end;
end;
procedure TCustomInvoicePrintJob.SetTotalSeparator(const Value: Boolean);
begin
if FTotalSeparator<>Value then
begin
FTotalSeparator:=Value;
Update;
end;
end;
procedure TCustomInvoicePrintJob.SetTabSize(const Value: Integer);
begin
if FTabSize<>Value then
begin
FTabSize:=Value;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -