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

📄 quickrpt.pas

📁 delphi7报表打印控件源码 可以设计报表
💻 PAS
📖 第 1 页 / 共 5 页
字号:
    procedure Cancel;
    // export
    procedure ExportComposite(AFilter : TQRExportFilter; expQRPrinter : TQRPrinter);
    procedure ExportToFilter(AFilter : TQRExportFilter);
    procedure EndPage;
    procedure Modify;
    procedure NewColumn;
    procedure NewPage;
    procedure Paint; override;
{$ifdef LLIONPDF}
    procedure PrintToPDF( PDFDocument : TPDFDocument );
    procedure StreamToPDF( PDFDocument: TPDFDocument; ostream : TStream );
{$endif}
    procedure Print;
    procedure PrintBackground;
    procedure PrinterSetup;
    procedure Prepare;
    procedure Preview;
    procedure PreviewModeless;
    procedure PreviewModal;
    procedure ResetPageFooterSize;
    procedure RemoveBand(aBand : TQRCustomBand);
    procedure SetBandValues;
    procedure SetBounds(ALeft, ATop, AWidth, AHeight: Integer); override;
    property Available : boolean read FAvailable;
    property AllDataSets : TList read FAllDataSets write FAllDataSets;
    property BandList : TList read FBandList;
    property Cancelled : boolean read FCancelled;
    property ColumnTopPosition : integer read FColumnTopPosition write FColumnTopPosition;
    property CurrentColumn : integer read FCurrentColumn;
    property CurrentX : integer read FCurrentX write FCurrentX;
    property CurrentY : integer read FCurrentY write FCurrentY;
    property ExportFilter : TQRExportFilter read FExportFilter write SetExportFilter;
    property Exporting : boolean read FExporting;
    property FinalPass : boolean read FFinalPass;
    property HideBands : boolean read FHideBands write SetHideBands;
    property PageNumber : integer read FPageCount;
    property Printer : TQRPrinter read FQRPrinter;
    property QRPrinter : TQRPrinter read FQRPrinter write FQRPrinter;
    property RotateBands : integer read FRotateBands write SetRotateBands;
    property State : TQRState read FState write FState;
    property AfterPrint : TQRAfterPrintEvent read FAfterPrintEvent write FAfterPrintEvent;
    property AfterPreview : TQRAfterPreviewEvent read FAfterPreviewEvent write FAfterPreviewEvent;
    property Bands : TQuickRepBands read FBands write FBands;
    property BeforePrint : TQRReportBeforePrintEvent read FBeforePrintEvent write FBeforePrintEvent;
    property Description : TStrings read FDescription write SetDescription;
    property BackImageControl : string read FBackgroundImage write FBackgroundImage;
    property Font;
    property Functions : TQREvEnvironment read FEnvironment write FEnvironment stored true;
    property OnEndPage : TQRNotifyEvent read FOnEndPageEvent write FOnEndPageEvent;
    property OnNeedData : TQROnNeedDataEvent read FOnNeedDataEvent write FOnNeedDataEvent;
    property OnPreview : TNotifyEvent read FOnPreviewEvent write FOnPreviewEvent;
    property OnStartPage : TQRNotifyEvent read FOnStartPageEvent write FOnStartPageEvent;
    property Options : TQuickReportOptions read FOptions write FOptions;
    property Page : TQRPage read FPage write FPage;
    property PrintIfEmpty : boolean read GetPrintIfEmpty write SetPrintIfEmpty;
    property PrinterSettings : TQuickRepPrinterSettings read FPrinterSettings write FPrinterSettings;
    property ReportTitle : string read FReportTitle write FReportTitle;
    property ShowProgress : boolean read FShowProgress write FShowProgress default true;
    property SnapToGrid : boolean read FSnapToGrid write FSnapToGrid;
    property Units : TQRUnit read GetUnits write SetUnits stored true;
    property Zoom;
    Property PrevFormStyle : TFormStyle read FPrevFormStyle write FPrevFormStyle;
    Property PreviewInitialState : TWindowState read FPreviewInitialState write FPreviewInitialState;
    Property PreviewWidth : integer read GetPreviewWidth write FPreviewWidth default 500;
    Property PreviewHeight : integer read GetPreviewHeight write FPreviewHeight default 500;
    property OnGetPrinterSettings : TQRPrinterEvent read FOnGetPrinterSettings write FOnGetPrinterSettings;
    property OnApplyPrinterSettings : TQRPrinterEvent read FOnApplyPrinterSettings write FOnApplyPrinterSettings;
    // qr4
    Property PrevShowThumbs : boolean read GetPrevShowThumbs write SetPrevShowThumbs default true;
    Property PrevShowSearch : boolean read FPrevShowSearch write FPrevShowSearch default true;
    Property PrevInitialZoom : TQRZoomstate read FPrevInitialZoom write FPrevInitialZoom;
  end;

  TQuickRep = class(TCustomQuickRep)
  private
    function GetDataSet : TDataSet;
    function GetRecordCount : integer;
    function GetRecordNumber : integer;
    procedure SetDataSet(Value : TDataSet);
  protected
    procedure Execute; override;
    procedure Notification(AComponent: TComponent; Operation: TOperation); override;
    procedure SetControllerBands; override;
  public
    constructor CreateNew(AOwner : TComponent; Dummy: Integer = 1); override;
    destructor Destroy; override;
    property RecordCount : integer read GetRecordCount;
    property RecordNumber : integer read GetRecordNumber;
  published
    property AfterPrint;
    property AfterPreview;
    property BackImageControl;
    property Bands : TQuickRepBands read FBands write FBands;
    property BeforePrint;
    property DataSet : TDataSet read GetDataSet write SetDataSet;
    property Description;
    property Font;
    property Functions;
    property OnEndPage;
    property OnNeedData;
    property OnPreview;
    property OnStartPage;
    property Options;
    property Page;
    property PrinterSettings;
    property PrintIfEmpty;
    property ReportTitle;
    property ShowProgress;
    property SnapToGrid;
    property Units;
    property Zoom;
    property OnGetPrinterSettings;
    property OnApplyPrinterSettings;
    Property PrevFormStyle;
    Property PreviewInitialState;
    Property PreviewWidth;
    Property PreviewHeight;
    // QR4
    Property PrevShowThumbs;
    Property PrevShowSearch;
    Property PrevInitialZoom;
  end;

  { TQuickAbstractReport }
  TQuickAbstractRep = class(TCustomQuickRep)
  published
    property AfterPrint;
    property AfterPreview;
    property Bands : TQuickRepBands read FBands write FBands;
    property BeforePrint;
    property Description;
    property Font;
    property Functions;
    property OnEndPage;
    property OnPreview;
    property OnStartPage;
    property Options;
    property Page;
    property PrinterSettings;
    property PrintIfEmpty;
    property ReportTitle;
    property Units;
    property Zoom;
  end;

  { TQRLabelSetup }
  {$hints off}
  TQRLabelSetup = class(TQRUnitBase)
  private
    FTopMargin : extended;
    FSideMargin : extended;
    FVerticalPitch : extended;
    FLabelWidth : extended;
    FLabelHeight : extended;
    FHorizontalPitch : extended;
    FNumberDown : integer;
    FNumberAcross : integer;
    FParent : TCustomQuickRep;
  protected
    function GetValue(Index : integer) : extended;
    function GetInteger(Index : integer) : integer;
    procedure SetValue(Index : integer; Value : extended);
    procedure SetInteger(Index : integer; Value : integer);
  public
    constructor Create(Parent : TCustomQuickRep);
  published
    property TopMargin : extended index 0 read GetValue write SetValue stored false;
    property SideMargin : extended index 1 read GetValue write SetValue stored false;
    property VerticalPitch : extended index 2 read GetValue write SetValue stored false;
    property LabelWidth : extended index 3 read GetValue write SetValue stored false;
    property LabelHeight : extended index 4 read GetValue write SetValue stored false;
    property HorizontalPitch : extended index 5 read GetValue write SetValue stored false;
    property NumberDown : integer index 0 read GetInteger write SetInteger stored false;
    property NumberAcross : integer index 1 read GetInteger write SetInteger stored false;
  end;
  {$hints on}

  TQuickLabelReport = class(TCustomQuickRep)
  private
    FLabelSetup : TQRLabelSetup;
  public
    constructor CreateNew(AOwner : TComponent; Dummy : integer); override;
    destructor Destroy; override;
  published
    property LabelSetup : TQRLabelSetup read FLabelSetup write FLabelSetup;
  end;

  { TQRGroup }
  TQRGroup = class(TQRCustomBand)
  private
    Evaluator : TQREvaluator;
    FExpression : string;
    FFooterBand : TQRBand;
    FMaster : TComponent;
    FReprint : boolean;
    FReprintOnNewPage : boolean;
    GroupValue : TQREvResult;
    HasResult : boolean;
    InGroup : boolean;
    PrintPageNumber : integer;
    procedure SetFooterBand(Value : TQRBand);
    procedure SetMaster(Value : TComponent);
  protected
    property Reprint : boolean read FReprint write FReprint;
    procedure Check;
    procedure NewPageCheck;
    procedure Notification(AComponent: TComponent; Operation: TOperation); override;
    procedure Prepare;
    procedure PrintGroupHeader;
    procedure PrintGroupFooter;
    procedure SetExpression(Value : string);
    procedure SetParent(AParent: TWinControl); override;
    procedure Unprepare;
  public
    constructor Create(AOwner : TComponent); override;
    destructor Destroy; override;
  published
    property Expression : string read FExpression write SetExpression;
    property FooterBand : TQRBand read FFooterBand write SetFooterBand;
    property Master : TComponent read FMaster write SetMaster;
    property ReprintOnNewPage : boolean read FReprintOnNewPage write FReprintOnNewPage;
  end;

  { TQRPrintableSize - Class storing size and positioning information for
    all printable objects }
  TQRPrintableSize = class(TQRUnitBase)
  private
    FHeight : extended;
    FLeft : extended;
    FTop : extended;
    FWidth : extended;
    Parent : TQRPrintable;
    function GetValue(Index : integer): extended;
    procedure SetValue(Index : integer; Value : extended);
  protected
    procedure SetParentSizes; override;
    procedure ReadValues(Reader : TReader); override;
    procedure WriteValues(Writer : TWriter); override;
    procedure FixZoom;
  public
    constructor Create(AParent : TQRPrintable);
  published
    property Height : extended index 0 read GetValue write SetValue stored false;
    property Left : extended index 1 read GetValue write SetValue stored false;
    property Top : extended index 2 read GetValue write SetValue stored false;
    property Width : extended index 3 read GetValue write SetValue stored false;
  end;

  { TQRPrintableEditor }
  TQRPrintableClass = class of TQRPrintable;
  TQRPrintableEditorClass = class of TQRPrintableEditor;

  TQRPrintableEditor = class(TObject)
  private
    FControl : TQRPrintable;
  protected
    function GetColor : TColor; virtual;
    function GetFont : TFont; virtual;
    function GetPrintableClass : TQRPrintableClass; virtual;
    function GetValue : string; virtual;
    function GetGlyphResName : string; virtual;
    function GetControlName : string; virtual;
{$ifndef QRSTANDARD}
    function GetAlignment : TAlignment; virtual;
    procedure SetAlignment(Value : TAlignment); virtual;
{$endif}
    procedure SetColor(Value : TColor); virtual; abstract;
    procedure SetFont(Value : TFont); virtual; abstract;
    procedure SetValue(Value : string); virtual; abstract;
  public
    constructor Create(AControl : TQRPrintable); virtual;
    function ShowEditor : boolean; virtual; abstract;
{$ifndef QRSTANDARD}
    property Alignment : TAlignment read GetAlignment write SetAlignment;
{$endif}
    property Control : TQRPrintable read FControl write FControl;
    property Color : TColor read GetColor write SetColor;
    property Font : TFont read GetFont write SetFont;
    property PrintableClass : TQRPrintableClass read GetPrintableClass;
    property Value : string read GetValue write SetValue;
    property GlyphResName : string read GetGlyphResName;
    property ControlName : string read GetControlName;
  end;

  { TQRPrintable - Base QuickReport printable object }
  TQRPrintable = class(TCustomControl)
  private
    { Private variables and methods }
    AlignUpdating : boolean;
    FAlignment : TAlignment;
    FAlignToBand : boolean;
    ButtonDown : boolean;
    FFrame : TQRFrame;
    FIsPrinting : boolean;
    FParentReport : TCustomQuickRep;
    FPrintFinished : boolean;
    FQRPrinter : TQRPrinter;
    FSize : TQRPrintableSize;
    LoadedTop : integer;
    LoadedWidth : integer;
    LoadedHeight : integer;
    LoadedLeft : integer;
    function GetTransparent : boolean;
    procedure SetTransparent(Value : boolean);
    function GetZoom : integer;
    procedure SetAlignToBand(Value : boolean);
    procedure SetFrame(Value : TQRFrame);
  protected
    function IsEnabled : boolean; virtual;
    function GetEditorClass : TQRPrintableEditorClass; virtual;
    procedure AlignIt; virtual;
    procedure Loaded; override;
    procedure PaintCorners;
    procedure SetParent(AParent: TWinControl); override;
    procedure SetZoom(Value : integer);
    procedure Paint; override;
    procedure Prepare; virtual;
    procedure Print(OfsX, OfsY : integer); virtual;
    procedure QRNotification(Sender : TObject; Operation : TQRNotifyOperation); virtual;
    procedure SetAlignment(Value : TAlignment); virtual;
    procedure UnPrepare; virtual;
    property Alignment : TAlignment read FAlignment write SetAlignment;
    property AlignToBand : boolean read FAlignToBand write SetAlignToBand;
    property IsPrinting : boolean read FIsPrinting write FIsPrinting;
    property PrintFinished : boolean read FPrintFinished write FPrintFinished;
    property QRPrinter : TQRPrinter read FQRPrinter write FQRPrinter;
    property Transparent : boolean read GetTransparent write SetTransparent;
  public
    constructor Create(AOwner: TComponent); override;
    destructor Destroy; override;
    procedure GetExpandedHeight(var newheight : extended ); virtual;
    procedure GetFieldString( var DataStr : string); virtual;
    procedure SetBounds(ALeft, ATop, AWidth, AHeight: Integer); override;
    property ParentReport : TCustomQuickRep read FParentReport write FParentReport;
    property Zoom : integer read GetZoom write SetZoom;
    property EditorClass : TQRPrintableEditorClass read GetEditorClass;
  published
    property Enabled;
    property Frame : TQRFrame read FFrame write SetFrame;
    property Size : TQRPrintableSize read FSize write FSize;
  end;

  { TQRCompositeReport - Component which combines several reports into one }

  TQRCompositeReport = class;

  TQRCompositeWinControl = class(TWinControl)
  protected
    ParentReport : TQRCompositeReport;
    procedure CMPreviewClose(var Message : TCM_QRPreviewClose); Message CM_QRPREVIEWCLOSE;
    procedure CMPrint(var Message : TCM_QRPrint); Message CM_QRPRINT;
  public
    destructor Destroy; override;
  end;

  TQRCompositeReport = class(TComponent)
  private
    FOnAddReports : TNotifyEvent;
    FOnFinished : TNotifyEvent;
    FOptions : TQuickReportOptions;
    FPrinterSettings : TQRCompositePrinterSettings;
    FQRPrinter : TQRPrinter;
    FReports : TList;
    FIndex : integer;
    FReportTitle : string;
    FGenerating : boolean;
    aReport : TQuickRep;
    aWinControl : TQRCompositeWinControl;

⌨️ 快捷键说明

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