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

📄 pjinvoice.pas

📁 GREATIS Print Suite Pro for Delphi (3-7,2005,2006,2007) and C++ Builder (3-6) Set of components for
💻 PAS
📖 第 1 页 / 共 2 页
字号:
(*  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 + -