📄 rm_class.pas.~2~
字号:
procedure GetVariablesList(const Category: string; List: TStrings);
property Value[const Index: string]: Variant read GetValue;
property RealDataSetName[const Index: string]: string read GetRealDataSetName;
property RealDataSourceName[const Index: string]: string read GetRealDataSourceName;
property RealFieldName[const Index: string]: string read GetRealFieldName;
property AliasName[const Index: string]: string read GetAliasName;
property DisabledDatasets: TStringList read FDisabledDatasets;
end;
TRMReportSaveEvent = procedure(var Saved: Boolean) of object;
TRMReportInfo = class(TPersistent)
private
FTitle: string;
FAuthor: string;
FCompany: string;
FCopyRight: string;
FComment: string;
public
procedure Clear;
procedure Assign(Source: TPersistent); override;
property Title: string read FTitle write FTitle;
property Author: string read FAuthor write FAuthor;
property Company: string read FCompany write FCompany;
property CopyRight: string read FCopyRight write FCopyRight;
property Comment: string read FComment write FComment;
end;
{ TRMSaveReportOptions }
TRMSaveReportOptions = class(TPersistent)
private
FAutoLoadSaveSetting: Boolean;
FUseRegistry: Boolean;
FIniFileName: string;
FRegistryPath: string;
protected
public
constructor Create;
procedure Assign(Source: TPersistent); override;
procedure LoadReportSetting(aReport: TRMReport; aReportName: string);
procedure SaveReportSetting(aReport: TRMReport; aReportName: string);
published
property AutoLoadSaveSetting: Boolean read FAutoLoadSaveSetting write FAutoLoadSaveSetting default False;
property UseRegistry: Boolean read FUseRegistry write FUseRegistry default False;
property IniFileName: string read FIniFileName write FIniFileName;
property RegistryPath: string read FRegistryPath write FRegistryPath;
end;
{ TRMReport }
TRMReport = class(TComponent)
private
FVariables: TRMVariables;
FPrintOffsetLeft, FPrintOffsetTop: Integer;
FDefaultDictionaryFile: string;
FPrintBackColor: Boolean;
FReportInfo: TRMReportInfo;
FPreviewInitialDir: string;
FPages: TRMPages;
FEMFPages: TRMEMFPages;
FDictionary: TRMDataDictionary;
FDataset: TRMDataset;
FReportType: TRMReportType;
FShowProgress: Boolean;
FModalPreview: Boolean;
FModifyPrepared: Boolean;
FStoreInDFM: Boolean;
FPreview: TRMPreview;
FPreviewButtons: TRMPreviewButtons;
FInitialZoom: TRMPreviewZoom;
FOnBeginDoc: TRMBeginDocEvent;
FOnEndDoc: TRMEndDocEvent;
FOnBeginPage: TRMBeginPageEvent;
FOnEndPage: TRMEndPageEvent;
FOnEndPrintPage: TRMEndPrintPageEvent;
FOnBeginBand: TRMBeginBandEvent;
FOnCrossBeginDoc: TRMBeginDocEvent;
FOnCrossEndDoc: TRMEndDocEvent;
FOnEndBand: TRMEndBandEvent;
FOnGetValue: TRMDetailEvent;
FOnEnterRect: TRMEnterRectEvent;
FOnAfterPrint: TRMAfterPrintEvent;
FOnProgress: TRMProgressEvent;
FOnFunction: TRMFunctionEvent;
FOnBeginColumn: TRMBeginColumnEvent;
FOnPrintColumn: TRMPrintColumnEvent;
FOnManualBuild: TRMManualBuildEvent;
FObjectClick: TRMObjectClickEvent;
FMouseOverObject: TRMMouseOverObjectEvent;
FOnPrintReportEvent: TRMPrintReportEvent;
FOnBeforePrintBand: TRMBeforePrintBandEvent;
FOnCustomizeObject: TNotifyEvent;
FCurrentFilter: TRMExportFilter;
FPageNumbers: string;
FCopies: Integer;
FCollate: Boolean;
FPrintPages: TRMPrintPages;
FCurPage: TRMPage;
_DoublePass: Boolean;
FMDIPreview: Boolean;
FDefaultCopies: Integer;
FDefaultCollate: Boolean;
FPrinterName: string;
FDFMStream: TStream;
FPrintIfEmpty: Boolean;
FShowPrintDialog: Boolean;
FOnAfterPreviewPageSetup: TNotifyEvent;
FSaveReportOptions: TRMSaveReportOptions;
FOnLoadReportSetting: TRMLoadSaveReportSetting;
FOnSaveReportSetting: TRMLoadSaveReportSetting;
procedure BuildBeforeModal(Sender: TObject);
procedure ExportBeforeModal(Sender: TObject);
procedure PrintBeforeModal(Sender: TObject);
function DoPrepareReport: Boolean;
procedure DoBuildReport; virtual;
procedure GetIntrpValue(const Name: string; var Value: Variant);
procedure GetIntrpFunction(const Name: string; p: array of Variant; var Val: Variant);
function GetTitle: string;
procedure SetTitle(Value: string);
protected
UseScale: Boolean;
Scale: Integer;
PageSize, PageWidth, PageHeight: Integer;
FDefaultDataSetOwner: TComponent;
FOnSaveReport: TRMReportSaveEvent;
HVersion, LVersion: Byte;
FFlag_Taoda: Boolean;
procedure CalcScaleXY;
procedure SetPrinterTo(PrnName: string);
procedure DefineProperties(Filer: TFiler); override;
procedure ReadBinaryData(Stream: TStream);
procedure WriteBinaryData(Stream: TStream);
procedure Notification(AComponent: TComponent; Operation: TOperation); override;
procedure DoPrintReport(PageNumbers: string; Copies: Integer; //打印报表
Collate: Boolean; PrintPages: TRMPrintPages); virtual;
procedure Loaded; override;
property OnAfterPreviewPageSetup: TNotifyEvent read FOnAfterPreviewPageSetup write FOnAfterPreviewPageSetup;
public
CanRebuild: Boolean; // true, if report can be rebuilded
Terminated: Boolean;
DoublePass: WordBool;
FinalPass: Boolean;
FileName: string;
Modified, ComponentModified: Boolean;
MixVariablesAndDBFields: Boolean;
Taoda: Boolean;
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
procedure Clear;
// internal events used through report building
procedure InternalOnEnterRect(Memo: TStringList; View: TRMView);
procedure InternalOnAfterPrint(const View: TRMView);
procedure InternalOnExportData(View: TRMView);
procedure InternalOnExportText(DrawRect: TRect; x, y: Integer;
const text: string; FrameTyp: Integer; View: TRMView);
procedure InternalOnGetValue(ParName: string; var ParValue: string);
// procedure InternalOnGetDataFieldValue(aDataSet: TDataSet; aFieldName: string; var ParValue: string);
procedure InternalOnProgress(Percent: Integer);
procedure InternalOnBeginColumn(Band: TRMBand);
procedure InternalOnPrintColumn(ColNo: Integer; var ColWidth: Integer);
procedure InternalOnBeforePrintBand(Band: TRMBand; var PrintBand: Boolean);
procedure GetVariableValue(const s: string; var v: Variant);
procedure OnGetParsFunction(const name: string; p: array of Variant; var val: Variant);
function FindObject(Name: string): TRMView;
// load/save methods
procedure LoadFromStream(Stream: TStream);
procedure SaveToStream(Stream: TStream);
function LoadFromFile(FName: string): Boolean;
procedure SaveToFile(FName: string);
procedure LoadFromDB(Table: TDataSet; DocN: Integer);
procedure SaveToDB(Table: TDataSet; DocN: Integer);
procedure SaveToBlobField(Blob: TField);
procedure LoadFromBlobField(Blob: TField);
procedure SaveToMemoField(aField: TField);
procedure LoadFromMemoField(aField: TField);
procedure SaveToAnsiString(var aStr: AnsiString);
procedure LoadFromAnsiString(const aStr: AnsiString);
procedure LoadFromResourceName(Instance: THandle; const ResName: string);
procedure LoadFromResourceID(Instance: THandle; ResID: Integer);
procedure LoadTemplate(fname: string; comm: TStrings; Bmp: TBitmap; Load: Boolean);
procedure SaveTemplate(var fname: string; comm: TStrings; Bmp: TBitmap);
procedure LoadPreparedReport(FName: string);
procedure SavePreparedReport(FName: string);
// report manipulation methods
procedure NewReport;
function DesignReport: TModalResult;
function PrepareReport: Boolean;
procedure ExportTo(aFilter: TRMExportFilter; aFileName: string);
procedure ShowReport;
procedure PrintReport;
function EditPreparedReport(PageIndex: Integer): Boolean;
function DesignPreviewedReport: Boolean;
procedure ShowPreparedReport;
procedure PrintPreparedReportDlg;
procedure PrintPreparedReport(aPageNumbers: string; aCopies: Integer;
aCollate: Boolean; aPrintPages: TRMPrintPages);
function ChangePrinter(OldIndex, NewIndex: Integer): Boolean;
property Variables: TRMVariables read FVariables;
property PrinterName: string read FPrinterName write FPrinterName;
property Pages: TRMPages read FPages;
property EMFPages: TRMEMFPages read FEMFPages write FEMFPages;
property Dictionary: TRMDataDictionary read FDictionary write FDictionary;
property OnCrossBeginDoc: TRMBeginDocEvent read FOnCrossBeginDoc write FOnCrossBeginDoc;
property OnCrossEndDoc: TRMEndDocEvent read FOnCrossEndDoc write FOnCrossEndDoc;
property ReportInfo: TRMReportInfo read FReportInfo;
property PrintBackColor: Boolean read FPrintBackColor write FPrintBackColor;
property PrintOffsetLeft: Integer read FPrintOffsetLeft write FPrintOffsetLeft;
property PrintOffsetTop: Integer read FPrintOffsetTop write FPrintOffsetTop;
property Title: string read GetTitle write SetTitle;
published
property SaveReportOptions: TRMSaveReportOptions read FSaveReportOptions write FSaveReportOptions;
property DefaultDictionaryFile: string read FDefaultDictionaryFile write FDefaultDictionaryFile;
property PreviewInitialDir: string read FPreviewInitialDir write FPreviewInitialDir;
property Dataset: TRMDataset read FDataset write FDataset;
property DefaultCopies: Integer read FDefaultCopies write FDefaultCopies default 1;
property DefaultCollate: Boolean read FDefaultCollate write FDefaultCollate default True;
property InitialZoom: TRMPreviewZoom read FInitialZoom write FInitialZoom;
property MDIPreview: Boolean read FMDIPreview write FMDIPreview default False;
property ModalPreview: Boolean read FModalPreview write FModalPreview default True;
property ModifyPrepared: Boolean read FModifyPrepared write FModifyPrepared;
property Preview: TRMPreview read FPreview write FPreview;
property PreviewButtons: TRMPreviewButtons read FPreviewButtons write FPreviewButtons;
property PrintIfEmpty: Boolean read FPrintIfEmpty write FPrintIfEmpty default True;
property ReportType: TRMReportType read FReportType write FReportType default rtSimple;
property ShowProgress: Boolean read FShowProgress write FShowProgress default True;
property StoreInDFM: Boolean read FStoreInDFM write FStoreInDFM default False;
property ShowPrintDialog: Boolean read FShowPrintDialog write FShowPrintDialog default True;
property OnBeginDoc: TRMBeginDocEvent read FOnBeginDoc write FOnBeginDoc;
property OnEndDoc: TRMEndDocEvent read FOnEndDoc write FOnEndDoc;
property OnBeginPage: TRMBeginPageEvent read FOnBeginPage write FOnBeginPage;
property OnEndPage: TRMEndPageEvent read FOnEndPage write FOnEndPage;
property OnEndPrintPage: TRMEndPrintPageEvent read FOnEndPrintPage write FOnEndPrintPage;
property OnBeginBand: TRMBeginBandEvent read FOnBeginBand write FOnBeginBand;
property OnEndBand: TRMEndBandEvent read FOnEndBand write FOnEndBand;
property OnGetValue: TRMDetailEvent read FOnGetValue write FOnGetValue;
property OnBeforePrint: TRMEnterRectEvent read FOnEnterRect write FOnEnterRect;
property OnAfterPrint: TRMAfterPrintEvent read FOnAfterPrint write FOnAfterPrint;
property OnUserFunction: TRMFunctionEvent read FOnFunction write FOnFunction;
property OnProgress: TRMProgressEvent read FOnProgress write FOnProgress;
property OnBeginColumn: TRMBeginColumnEvent read FOnBeginColumn write FOnBeginColumn;
property OnPrintColumn: TRMPrintColumnEvent read FOnPrintColumn write FOnPrintColumn;
property OnManualBuild: TRMManualBuildEvent read FOnManualBuild write FOnManualBuild;
property OnObjectClick: TRMObjectClickEvent read FObjectClick write FObjectClick;
property OnMouseOverObject: TRMMouseOverObjectEvent read FMouseOverObject write FMouseOverObject;
property OnPrintReport: TRMPrintReportEvent read FOnPrintReportEvent write FOnPrintReportEvent;
property OnBeforePrintBand: TRMBeforePrintBandEvent read FOnBeforePrintBand write FOnBeforePrintBand;
property OnCustomizeObject: TNotifyEvent read FOnCustomizeObject write FOnCustomizeObject;
property OnLoadReportSetting: TRMLoadSaveReportSetting read FOnLoadReportSetting write FOnLoadReportSetting;
property OnSaveReportSetting: TRMLoadSaveReportSetting read FOnSaveReportSetting write FOnSaveReportSetting;
end;
TRMCompositeMode = (rmReportPerReport, rmPagePerPage);
{ TRMCompositeReport }
TRMCompositeReport = class(TRMReport)
private
FReports: TList;
FMode: TRMCompositeMode;
procedure DoBuildReport; override;
procedure OnClearEMFPagesEvnet(Sender: TObject);
procedure _BuildReports;
procedure SetMode(Value: TRMCompositeMode);
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
property Reports: TList read FReports;
published
property CompositeMode: TRMCompositeMode read FMode write SetMode default rmReportPerReport;
end;
{ TRMNewCompositeReport }
TRMNewCompositeReport = class(TRMReport)
private
FReport: TRMReport;
FReports: TList;
procedure OnClearEMFPagesEvnet(Sender: TObject);
procedure _BuildReports;
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
procedure ShowReport;
procedure PrintReport;
property Reports: TList read FReports;
published
end;
{ TRMReportDesigner }
TRMReportDesigner = class(TForm)
private
protected
AutoSave: Boolean;
PreviewDesign: Boolean;
FirstInstance: Boolean;
Modify_flag: Boolean;
EMFPageIndex: Integer;
function GetDesignerPage: TWinControl; virtual; abstract;
function GetModified: Boolean; virtual; abstract;
procedure SetModified(Value: Boolean); virtual; abstract;
public
Page: TRMPage;
procedure RegisterObject(ButtonBmp: TBitmap; const ButtonHint: string; ButtonTag: Integer; IsControl: Boolean); virtual; abstract;
procedure RegisterTool(MenuCaption: string; ButtonBmp: TBitmap; OnClick: TNotifyEvent); virtual; abstract;
constructor CreateDesigner(AFirstInstance: Boolean); virtual;
procedure BeforeChange; virtual; abstract;
procedure AfterChange; virtual; abstract;
procedure RedrawPage; virtual; abstract;
procedure SelectObject(ObjName: string); virtual; abstract;
function InsertDBField: string; virtual; abstract;
function InsertExpression: string; virtual; abstract;
property Modified: Boolean read GetModified write SetModified;
end;
{ TRMObjEditorForm }
TRMObjEditorForm = class(TForm)
public
function ShowEditor(View: TRMView): TModalResult; virtual;
end;
{ TRMExportFilter }
TRMExportFilter = class(TComponent)
protected
FileName: string;
Stream: TStream;
Lines: TList;
FShowDialog: Boolean;
FOnBeforeExport: TRMBeforeExportEvent;
FOnAfterExport: TRMAfterExportEvent;
procedure ClearLines;
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
function ShowModal: Word; virtual;
procedure OnBeginDoc; virtual;
procedure OnEndDoc; virtual;
procedure OnBeginPage; virtual;
procedure OnEndPage; virtual;
procedure OnData(x, y: Integer; View: TRMView); virtual;
procedure OnText(DrawRect: TRect; x, y: Integer;
const text: string; FrameTyp: Integer; View: TRMView); virtual;
published
property ShowDialog: Boolean read FShowDialog write FShowDialog default True;
property OnBeforeExport: TRMBeforeExportEvent read FOnBeforeExport write FOnBeforeExport;
property OnAfterExport: TRMAfterExportEvent read FOnAfterExport write FOnAfterExport;
end;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -