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

📄 frxclass.pas

📁 报表源码 FastReport 3 is new generation of the report generators components. It consists of report engin
💻 PAS
📖 第 1 页 / 共 5 页
字号:
    procedure FontChanged(Sender:TObject); override;
  public
    constructor Create(AOwner:TComponent); override;
    destructor Destroy; override;
    class function GetDescription:String; override;
    procedure Initialize;
    function ShowModal:TModalResult;
    property DialogForm:TForm read FForm;
    property ModalResult:TModalResult read GetModalResult write SetModalResult;
  published
    property BorderStyle:TFormBorderStyle read FBorderStyle write SetBorderStyle default bsSizeable;
    property Caption:String read FCaption write SetCaption;
    property Color:TColor read FColor write SetColor default clBtnFace;
    property Height;
    property Left;
    property Position:TPosition read FPosition write FPosition default poScreenCenter;
    property Top;
    property Width;
    property WindowState:TWindowState read FWindowState write FWindowState default wsNormal;
    property OnActivate:TfrxNotifyEvent read FOnActivate write FOnActivate;
    property OnClick:TfrxNotifyEvent read FOnClick write FOnClick;
    property OnCloseQuery:TfrxCloseQueryEvent read FOnCloseQuery write FOnCloseQuery;
    property OnDeactivate:TfrxNotifyEvent read FOnDeactivate write FOnDeactivate;
    property OnHide:TfrxNotifyEvent read FOnHide write FOnHide;
    property OnKeyDown:TfrxKeyEvent read FOnKeyDown write FOnKeyDown;
    property OnKeyPress:TfrxKeyPressEvent read FOnKeyPress write FOnKeyPress;
    property OnKeyUp:TfrxKeyEvent read FOnKeyUp write FOnKeyUp;
    property OnShow:TfrxNotifyEvent read FOnShow write FOnShow;
    property OnResize:TfrxNotifyEvent read FOnResize write FOnResize;
  end;

{ Report }

  TfrxEngineOptions = class(TPersistent)
  private
    FConvertNulls:Boolean;
    FDestroyForms:Boolean;
    FDoublePass:Boolean;
    FMaxMemSize:Integer;
    FPrintIfEmpty:Boolean;
    FReportThread:TThread;
    FSilentMode:Boolean;
    FTempDir:String;
    FUseFileCache:Boolean;
  public
    constructor Create;
    procedure Assign(Source:TPersistent); override;
    procedure Clear;
    property ReportThread:TThread read FReportThread write FReportThread;
    property DestroyForms:Boolean read FDestroyForms write FDestroyForms;
  published
    property ConvertNulls:Boolean read FConvertNulls write FConvertNulls default True;
    property DoublePass:Boolean read FDoublePass write FDoublePass default False;
    property MaxMemSize:Integer read FMaxMemSize write FMaxMemSize default 10;
    property PrintIfEmpty:Boolean read FPrintIfEmpty write FPrintIfEmpty default True;
    property SilentMode:Boolean read FSilentMode write FSilentMode default False;
    property TempDir:String read FTempDir write FTempDir;
    property UseFileCache:Boolean read FUseFileCache write FUseFileCache default False;
  end;

  TfrxPrintOptions = class(TPersistent)
  private
    FCopies:Integer;
    FCollate:Boolean;
    FPageNumbers:String;
    FPrinter:String;
    FPrintPages:TfrxPrintPages;
    FReverse:Boolean;
    FShowDialog:Boolean;
  public
    constructor Create;
    procedure Assign(Source:TPersistent); override;
    procedure Clear;
  published
    property Copies:Integer read FCopies write FCopies default 1;
    property Collate:Boolean read FCollate write FCollate default True;
    property PageNumbers:String read FPageNumbers write FPageNumbers;
    property Printer:String read FPrinter write FPrinter;
    property PrintPages:TfrxPrintPages read FPrintPages write FPrintPages default ppAll;
    property Reverse:Boolean read FReverse write FReverse default False;
    property ShowDialog:Boolean read FShowDialog write FShowDialog default True;
  end;

  TfrxPreviewOptions = class(TPersistent)
  private
    FAllowEdit:Boolean;
    FButtons:TfrxPreviewButtons;
    FDoubleBuffered:Boolean;
    FMaximized:Boolean;
    FMDIChild:Boolean;
    FModal:Boolean;
    FOutlineExpand:Boolean;
    FOutlineVisible:Boolean;
    FOutlineWidth:Integer;
    FShowCaptions:Boolean;
    FZoom:Extended;
    FZoomMode:TfrxZoomMode;
  public
    constructor Create;
    procedure Assign(Source:TPersistent); override;
    procedure Clear;
  published
    property AllowEdit:Boolean read FAllowEdit write FAllowEdit default True;
    property Buttons:TfrxPreviewButtons read FButtons write FButtons;
    property DoubleBuffered:Boolean read FDoubleBuffered write FDoubleBuffered default True;
    property Maximized:Boolean read FMaximized write FMaximized default True;
    property MDIChild:Boolean read FMDIChild write FMDIChild default False;
    property Modal:Boolean read FModal write FModal default True;
    property OutlineExpand:Boolean read FOutlineExpand write FOutlineExpand default True;
    property OutlineVisible:Boolean read FOutlineVisible write FOutlineVisible default False;
    property OutlineWidth:Integer read FOutlineWidth write FOutlineWidth default 120;
    property ShowCaptions:Boolean read FShowCaptions write FShowCaptions default False;
    property Zoom:Extended read FZoom write FZoom;
    property ZoomMode:TfrxZoomMode read FZoomMode write FZoomMode default zmDefault;
  end;

  TfrxReportOptions = class(TPersistent)
  private
    FAuthor:String;
    FCompressed:Boolean;
    FCreateDate:TDateTime;
    FDescription:TStrings;
    FInitString:String;
    FName:String;
    FLastChange:TDateTime;
    FPassword:String;
    FPicture:TPicture;
    FVersionBuild:String;
    FVersionMajor:String;
    FVersionMinor:String;
    FVersionRelease:String;
    procedure SetDescription(const Value:TStrings);
    procedure SetPicture(const Value:TPicture);
  public
    constructor Create;
    destructor Destroy; override;
    procedure Assign(Source:TPersistent); override;
    procedure Clear;
    function CheckPassword:Boolean;
  published
    property Author:String read FAuthor write FAuthor;
    property Compressed:Boolean read FCompressed write FCompressed default False;
    property CreateDate:TDateTime read FCreateDate write FCreateDate;
    property Description:TStrings read FDescription write SetDescription;
    property InitString:String read FInitString write FInitString;
    property Name:String read FName write FName;
    property LastChange:TDateTime read FLastChange write FLastChange;
    property Password:String read FPassword write FPassword;
    property Picture:TPicture read FPicture write SetPicture;
    property VersionBuild:String read FVersionBuild write FVersionBuild;
    property VersionMajor:String read FVersionMajor write FVersionMajor;
    property VersionMinor:String read FVersionMinor write FVersionMinor;
    property VersionRelease:String read FVersionRelease write FVersionRelease;
  end;

  TfrxExpressionCache = class(TObject)
  private
    FExpressions:TStringList;
    FMainScript:TfsScript;
    FScript:TfsScript;
  public
    constructor Create(AScript:TfsScript);
    destructor Destroy; override;
    procedure Clear;
    function Calc(const Expression:String; var ErrorMsg:String;
      AScript:TfsScript):Variant;
  end;

  TfrxDataSetItem = class(TCollectionItem)
  private
    FDataSet:TfrxDataSet;
    FDataSetName:String;
    procedure SetDataSet(const Value:TfrxDataSet);
    procedure SetDataSetName(const Value:String);
    function GetDataSetName:String;
  published
    property DataSet:TfrxDataSet read FDataSet write SetDataSet;
    property DataSetName:String read GetDataSetName write SetDataSetName;
  end;

  TfrxReportDataSets = class(TCollection)
  private
    FReport:TfrxReport;
    function GetItem(Index:Integer):TfrxDataSetItem;
  public
    constructor Create(AReport:TfrxReport);
    procedure Initialize;
    procedure Finalize;
    procedure Add(ds:TfrxDataSet);
    function Find(ds:TfrxDataSet):TfrxDataSetItem; overload;
    function Find(const Name:String):TfrxDataSetItem; overload;
    property Items[Index:Integer]:TfrxDataSetItem read GetItem; default;
  end;

  TfrxStyleItem = class(TCollectionItem)
  private
    FName:String;
    FColor:TColor;
    FFont:TFont;
    FFrame:TfrxFrame;
    procedure SetFont(const Value:TFont);
    procedure SetFrame(const Value:TfrxFrame);
    procedure SetName(const Value:String);
  public
    constructor Create(Collection:TCollection); override;
    destructor Destroy; override;
    procedure Assign(Source:TPersistent); override;
    procedure CreateUniqueName;
  published
    property Name:String read FName write SetName;
    property Color:TColor read FColor write FColor;
    property Font:TFont read FFont write SetFont;
    property Frame:TfrxFrame read FFrame write SetFrame;
  end;

  TfrxStyles = class(TCollection)
  private
    FName:String;
    FReport:TfrxReport;
    function GetItem(Index:Integer):TfrxStyleItem;
  public
    constructor Create(AReport:TfrxReport);
    function Add:TfrxStyleItem;
    function Find(const Name:String):TfrxStyleItem;
    procedure Apply;
    procedure GetList(List:TStrings);
    procedure LoadFromFile(const FileName:String);
    procedure LoadFromStream(Stream:TStream);
    procedure LoadFromXMLItem(Item:TfrxXMLItem);
    procedure SaveToFile(const FileName:String);
    procedure SaveToStream(Stream:TStream);
    procedure SaveToXMLItem(Item:TfrxXMLItem);
    property Items[Index:Integer]:TfrxStyleItem read GetItem; default;
    property Name:String read FName write FName;
  end;

  TfrxStyleSheet = class(TObject)
  private
    FItems:TList;
    function GetItems(Index:Integer):TfrxStyles;
  public
    constructor Create;
    destructor Destroy; override;
    procedure Clear;
    procedure Delete(Index:Integer);
    procedure GetList(List:TStrings);
    procedure LoadFromFile(const FileName:String);
    procedure LoadFromStream(Stream:TStream);
    procedure SaveToFile(const FileName:String);
    procedure SaveToStream(Stream:TStream);
    function Add:TfrxStyles;
    function Count:Integer;
    function Find(const Name:String):TfrxStyles;
    function IndexOf(const Name:String):Integer;
    property Items[Index:Integer]:TfrxStyles read GetItems; default;
  end;

   IfrxReport = interface(IUnknown)
   ['{F70CC9CD-3606-4056-AC6E-270D3A0A640B}']
    procedure ShowPreparedReport; stdcall;
    procedure ShowReport(ClearLastReport:Boolean = True); stdcall;
    function Print:Boolean; stdcall;
    procedure DesignReport; stdcall;
   end;

  TfrxReport = class(TfrxComponent, IfrxReport)
  private
    FCurObject:String;
    FDataSet:TfrxDataSet;
    FDataSetName:String;
    FDataSets:TfrxReportDatasets;
    FDesigner:TfrxCustomDesigner;
    FDotMatrixReport:Boolean;
    FDrawText:Pointer;
    FEnabledDataSets:TfrxReportDataSets;
    FEngine:TfrxCustomEngine;
    FEngineOptions:TfrxEngineOptions;
    FErrors:TStrings;
    FExpressionCache:TfrxExpressionCache;
    FFileName:String;
    FIniFile:String;
    FLoadStream:TStream;
    FLocalValue:TfsCustomVariable;
    FModified:Boolean;
    FOldStyleProgress:Boolean;
    FPreviewPages:TfrxCustomPreviewPages;
    FParentForm:TForm;
    FPreview:TfrxCustomPreview;
    FPreviewForm:TForm;
    FPreviewOptions:TfrxPreviewOptions;
    FPrintOptions:TfrxPrintOptions;
    FProgress:TfrxProgress;
    FReloading:Boolean;
    FReportOptions:TfrxReportOptions;
    FScript:TfsScript;
    FScriptLanguage:String;
    FScriptText:TStrings;
    FShowProgress:Boolean;
    FStoreInDFM:Boolean;
    FStyles:TfrxStyles;
    FSysVariables:TStrings;
    FTerminated:Boolean;
    FTimer:TTimer;
    FVariables:TfrxVariables;
    FXMLSerializer:TObject;

    FOnAfterPrint:TfrxBeforePrintEvent;
    FOnBeforePrint:TfrxBeforePrintEvent;
    FOnBeginDoc:TNotifyEvent;
    FOnClickObject:TfrxClickObjectEvent;
    FOnEndDoc:TNotifyEvent;
    FOnGetValue:TfrxGetValueEvent;
    FOnManualBuild:TfrxManualBuildEvent;
    FOnMouseOverObject:TfrxMouseOverObjectEvent;
    FOnPrintReport:TNotifyEvent;
    FOnAfterPrintReport:TNotifyEvent;
    FOnProgressStart:TfrxProgressEvent;
    FOnProgress:TfrxProgressEvent;
    FOnProgressStop:TfrxProgressEvent;
    FOnRunDialogs:TfrxRunDialogsEvent;
    FOnStartReport:TfrxNotifyEvent;
    FOnStopReport:TfrxNotifyEvent;
    FOnUserFunction:TfrxUserFunctionEvent;

    function CallMethod(Instance:TObject; ClassType:TClass;
      const MethodName:String; var Params:Variant):Variant;
    function DoGetValue(const Expr:String; var Value:Variant):Boolean;
    function GetScriptValue(Instance:TObject; ClassType:TClass;
      const MethodName:String; var Params:Variant):Variant;
    function SetScriptValue(Instance:TObject; ClassType:TClass;
      const MethodName:String; var Params:Variant):Variant;
    function DoUserFunction(Instance:TObject; ClassType:TClass;
      const MethodName:String; var Params:Variant):Variant;
    function GetDataSetName:String;
    function GetLocalValue:Variant;
    function GetPages(Index:Integer):TfrxPage;
    function GetPagesCount:Integer;
    procedure DoClear;
    procedure DoLoadFromStream;
    procedure OnTimer(Sender:TObject);
    procedure ReadDatasets(Reader:TReader);
    procedure ReadStyle(Reader:TReader);
    procedure ReadVariables(Reader:TReader);

⌨️ 快捷键说明

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