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

📄 fr_class.pas

📁 航空人身保险信息管理系统使用SQL和DELHPI开发
💻 PAS
📖 第 1 页 / 共 5 页
字号:
    procedure Draw(Canvas: TCanvas); override;    procedure LoadFromStream(Stream: TStream); override;    procedure SaveToStream(Stream: TStream); override;    procedure SaveToFR3Stream(Stream: TStream); override;    procedure DefinePopupMenu(Popup: TPopupMenu); override;    procedure DefineProperties; override;    function GetClipRgn(rt: TfrRgnType): HRGN; override;    property BandType: TfrBandType read GetBandType write SetBandType;    property DataSet: String read FormatStr write FormatStr;    property GroupCondition: String read FormatStr write FormatStr;  end;   TfrSubReportView = class(TfrView)  public    SubPage: Integer;    constructor Create; override;    procedure Draw(Canvas: TCanvas); override;    procedure LoadFromStream(Stream: TStream); override;    procedure SaveToStream(Stream: TStream); override;    procedure SaveToFR3Stream(Stream: TStream); override;    procedure DefinePopupMenu(Popup: TPopupMenu); override;  end;  TfrPictureView = class(TfrView)  private    procedure P1Click(Sender: TObject);    procedure P2Click(Sender: TObject);  protected    procedure SetPropValue(Index: String; Value: Variant); override;    function GetPropValue(Index: String): Variant; override;    function DoMethod(MethodName: String; Par1, Par2, Par3: Variant): Variant; override;    procedure GetBlob(b: TfrTField); override;  public    Picture: TPicture;    BlobType: Byte;    constructor Create; override;    destructor Destroy; override;    procedure Draw(Canvas: TCanvas); override;    procedure LoadFromStream(Stream: TStream); override;    procedure SaveToStream(Stream: TStream); override;    procedure SaveToFR3Stream(Stream: TStream); override;    procedure DefinePopupMenu(Popup: TPopupMenu); override;    procedure DefineProperties; override;    procedure ShowEditor; override;  end;  TfrLineView = class(TfrStretcheable)  public    constructor Create; override;    procedure Draw(Canvas: TCanvas); override;    function CalcHeight: Integer; override;    function MinHeight: Integer; override;    function LostSpace: Integer; override;    function GetClipRgn(rt: TfrRgnType): HRGN; override;    procedure DefineProperties; override;    procedure SaveToFR3Stream(Stream: TStream); override;  end;  TfrBand = class(TObject)  private    Parent: TfrPage;    View: TfrBandView;    Flags: Word;    Next, Prev: TfrBand;    NextGroup, PrevGroup: TfrBand;    FirstGroup, LastGroup: TfrBand;    Child: TfrBand;    AggrBand: TfrBand;    SubIndex, MaxY: Integer;    EOFReached: Boolean;    EOFArr: Array[0..31] of Boolean;    Positions: Array[TfrDatasetPosition] of Integer;    LastGroupValue: Variant;    HeaderBand, FooterBand, DataBand, LastBand: TfrBand;    Values: TfrVariables;    Count: Integer;    DisableInit: Boolean;    CalculatedHeight: Integer;    CurColumn: Integer;    SaveXAdjust: Integer;    SaveCurY: Boolean;    MaxColumns: Integer;    DisableBandScript: Boolean;    procedure InitDataSet(Desc: string);    procedure FreeDataSet;    function CalcHeight: Integer;    procedure StretchObjects(MaxHeight: Integer);    procedure UnStretchObjects;    procedure DrawObject(t: TfrView);    procedure PrepareSubReports;    procedure DoSubReports;    function DrawObjects: Boolean;    procedure DrawCrossCell(Parnt: TfrBand; CurX: Integer);    procedure DrawCross;    function CheckPageBreak(y, dy: Integer; PBreak: Boolean): Boolean;    procedure DrawPageBreak;    function HasCross: Boolean;    function DoCalcHeight: Integer;    procedure DoDraw;    function Draw: Boolean;    procedure InitValues;    procedure DoAggregate;    function ExtractField(const s: String; FieldNo: Integer): String;    procedure AddAggregateValue(s: String; v: Variant);    function GetAggregateValue(s: string): Variant;  public    x, y, dx, dy, maxdy: Integer;    Typ: TfrBandType;    Name: String;    PrintIfSubsetEmpty, NewPageAfter, Stretched, PageBreak,    PrintChildIfInvisible, Visible: Boolean;    Objects: TList;    Memo, Script: TStringList;    DataSet: TfrDataSet;    IsVirtualDS: Boolean;    VCDataSet: TfrDataSet;    IsVirtualVCDS: Boolean;    GroupCondition: String;    CallNewPage, CallNewColumn: Integer;    constructor Create(ATyp: TfrBandType; AParent: TfrPage);    destructor Destroy; override;  end;   TfrPage = class(TfrObject)  private    Bands: Array[TfrBandType] of TfrBand;    Skip, InitFlag: Boolean;    CurColumn, LastStaticColumnY, XAdjust: Integer;    List: TList;    Mode: TfrPageMode;    PlayFrom: Integer;    LastBand: TfrBand;    ColPos, CurPos: Integer;    WasBand: TfrBand;    DisableRepeatHeader: Boolean;    procedure InitPage;    procedure DonePage;    procedure TossObjects;    procedure PrepareObjects;    procedure FormPage;    procedure AddRecord(b: TfrBand; rt: TfrBandRecType);    procedure ClearRecList;    function PlayRecList: Boolean;    procedure DrawPageFooters;    function BandExists(b: TfrBand): Boolean;    procedure AfterPrint;    procedure LoadFromStream(Stream: TStream);    procedure SaveToStream(Stream: TStream);    procedure ShowBand(b: TfrBand);    function LeftOffset: Integer;    procedure DoScript(Script: TStrings);    procedure DialogFormActivate(Sender: TObject);    procedure ResetPosition(b: TfrBand; ResetTo: Integer);  protected    procedure SetPropValue(Index: string; Value: Variant); override;    function GetPropValue(Index: string): Variant; override;  public    pgSize, pgWidth, pgHeight: Integer;    pgMargins: TRect;    pgOr: TPrinterOrientation;    pgBin: Integer;    PrintToPrevPage, UseMargins: WordBool;    PrnInfo: TfrPrnInfo;    ColCount, ColWidth, ColGap: Integer;    PageType: TfrPageType;    Objects: TList;    CurY, CurBottomY: Integer;    Name: String;    // dialog properties    BorderStyle: Byte;    Caption: String;    Color: TColor;    Left, Top, Width, Height: Integer;    Position: Byte;    Form: TForm;    Script: TStringList;    Visible: Boolean;    PageNumber: Integer;    constructor Create(ASize, AWidth, AHeight, ABin: Integer;      AOr: TPrinterOrientation); virtual;    destructor Destroy; override;    procedure DefineProperties; override;    procedure CreateUniqueName;    function TopMargin: Integer;    function BottomMargin: Integer;    function LeftMargin: Integer;    function RightMargin: Integer;    procedure Clear;    procedure Delete(Index: Integer);    function FindObjectByID(ID: Integer): Integer;    function FindObject(Name: String): TfrView;    procedure ChangePaper(ASize, AWidth, AHeight, ABin: Integer; AOr: TPrinterOrientation);    procedure ShowBandByName(s: string);    procedure ShowBandByType(bt: TfrBandType);    procedure NewPage;    procedure NewColumn(Band: TfrBand);    procedure ScriptEditor(Sender: TObject);  end;   TfrPages = class(TObject)  private    FPages: TList;    Parent: TfrReport;    function GetCount: Integer;    function GetPages(Index: Integer): TfrPage;    procedure RefreshObjects;  public    constructor Create(AParent: TfrReport);    destructor Destroy; override;    procedure Clear;    procedure Add;    procedure Delete(Index: Integer);    procedure Move(OldIndex, NewIndex: Integer);    procedure LoadFromStream(Stream: TStream);    procedure SaveToStream(Stream: TStream);    property Pages[Index: Integer]: TfrPage read GetPages; default;    property Count: Integer read GetCount;  end;  TfrEMFPages = class(TObject)  private    FPages: TList;    Parent: TfrReport;    function GetCount: Integer;    function GetPages(Index: Integer): PfrPageInfo;    procedure ExportData(Index: Integer);  public    constructor Create(AParent: TfrReport);    destructor Destroy; override;    procedure Clear;    procedure Draw(Index: Integer; Canvas: TCanvas; DrawRect: TRect);    procedure Add(APage: TfrPage);    procedure AddFrom(Report: TfrReport);    procedure Insert(Index: Integer; APage: TfrPage);    procedure Delete(Index: Integer);    procedure LoadFromStream(AStream: TStream);    procedure SaveToStream(AStream: TStream);    function DoClick(Index: Integer; pt: TPoint; Click: Boolean; var Cursor: TCursor): Boolean;    property Pages[Index: Integer]: PfrPageInfo read GetPages; default;    property Count: Integer read GetCount;    property List: TList read FPages write FPages;    procedure PageToObjects(Index: Integer);    procedure ObjectsToPage(Index: Integer);  end;   PfrCacheItem = ^TfrCacheItem;  TfrCacheItem = record    DataSet: TfrTDataSet;    DataField: String;  end;  TfrDataDictionary = class(TObject)  private    Cache: TStringList;    function GetValue(VarName: String): Variant;    function GetRealFieldName(ItemName: string): String;    function GetRealDataSetName(ItemName: String): String;    function GetRealDataSourceName(ItemName: string): String;    function GetAliasName(ItemName: string): String;    procedure AddCacheItem(VarName: String; DataSet: TfrTDataSet; DataField: String);    procedure ClearCache;  public    Variables: TfrVariables;    FieldAliases: TfrVariables;    BandDatasources: TfrVariables;    DisabledDatasets: TStringList;    constructor Create;    destructor Destroy; override;    procedure Clear;    procedure LoadFromStream(Stream: TStream);    procedure SaveToStream(Stream: TStream);    procedure LoadFromFile(FName: String);    procedure SaveToFile(FName: String);    procedure ExtractFieldName(ComplexName: string;      var DSName, FieldName: String);    function IsVariable(VarName: String): Boolean;    function DatasetEnabled(DatasetName: String): Boolean;    procedure GetDatasetList(List: Tstrings);    procedure GetFieldList(DSName: String; List: TStrings);    procedure GetBandDatasourceList(List: TStrings);    procedure GetCategoryList(List: Tstrings);    procedure GetVariablesList(Category: string; List: TStrings);    property Value[Index: String]: Variant read GetValue;    property RealDataSetName[Index: String]: String read GetRealDataSetName;    property RealDataSourceName[Index: String]: String read GetRealDataSourceName;    property RealFieldName[Index: String]: String read GetRealFieldName;    property AliasName[Index: String]: String read GetAliasName;  end;  TfrReport = class(TComponent)  private    FPages: TfrPages;    FEMFPages: TfrEMFPages;    FDictionary: TfrDataDictionary;    FDataset: TfrDataset;    FGrayedButtons: Boolean;    FReportType: TfrReportType;    FTitle: String;    FShowProgress: Boolean;    FModalPreview: Boolean;    FModifyPrepared: Boolean;    FStoreInDFM: Boolean;    FPreview: TfrPreview;    FPreviewButtons: TfrPreviewButtons;    FInitialZoom: TfrPreviewZoom;    FOnBeginDoc: TBeginDocEvent;    FOnEndDoc: TEndDocEvent;    FOnBeginPage: TBeginPageEvent;    FOnEndPage: TEndPageEvent;    FOnBeginBand: TBeginBandEvent;    FOnEndBand: TEndBandEvent;    FOnGetValue: TDetailEvent;    FOnEnterRect: TEnterRectEvent;    FOnProgress: TProgressEvent;    FOnFunction: TFunctionEvent;    FOnBeginColumn: TBeginColumnEvent;    FOnPrintColumn: TPrintColumnEvent;    FOnManualBuild: TManualBuildEvent;    FObjectClick: TObjectClickEvent;    FMouseOverObject: TMouseOverObjectEvent;    FOnPrintReportEvent: TPrintReportEvent;    FCurrentFilter: TfrExportFilter;    FPageNumbers: String;    FCopies: Integer;    FCollate: Boolean;    FPrintPages: TfrPrintPages;    FCurPage: TfrPage;    _DoublePass: Boolean;    FMDIPreview: Boolean;    FDefaultCopies: Integer;    FDefaultCollate: Boolean;    FPrnName: String;    FDFMStream: TStream;    FPrintIfEmpty: Boolean;    FShowPrintDialog: Boolean;    FOnCrossBeginDoc: TBeginDocEvent;    FOnCustomizeObject: TNotifyEvent;    FRebuildPrinter : Boolean;    function FormatValue(V: Variant; Format: Integer;      const FormatStr: String): String;    procedure BuildBeforeModal(Sender: TObject);    procedure ExportBeforeModal(Sender: TObject);    procedure PrintBeforeModal(Sender: TObject);    function DoPrepareReport: Boolean;    procedure DoBuildReport; virtual;    procedure SetPrinterTo(PrnName: String);    procedure GetIntrpValue(const Name: string; var Value: Variant);    procedure GetIntrpFunction(const Name: String; p1, p2, p3: Variant;      var Val: Variant);    procedure ClearAttribs;  protected    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: TfrPrintPages); virtual;    procedure Loaded; override;  public    CanRebuild: Boolean;            // true, if report can be rebuilded    Terminated: Boolean;    PrintToDefault, DoublePass: WordBool;    FinalPass: Boolean;    FileName: String;    Modified, ComponentModified: Boolean;    MixVariablesAndDBFields: Boolean;{$IFDEF 1CScript}    Script : TStringList;{$ENDIF}    FR3Stream: Boolean;    ReportComment, ReportName, ReportAutor : String;    ReportCreateDate, ReportLastChange : TDateTime;    ReportVersionMajor : String;    ReportVersionMinor : String;    ReportVersionRelease : String;    ReportVersionBuild : String;    ReportPasswordProtected : Boolean;    ReportPassword : String;    ReportGeneratorVersion : Byte;    constructor Create(AOwner: TComponent); override;    destructor Destroy; override;    procedure Clear;    // internal events used through report building    property OnCrossBeginDoc: TBeginDocEvent read FOnCrossBeginDoc write FOnCrossBeginDoc;    procedure InternalOnEnterRect(Memo: TStringList; View: TfrView);    procedure InternalOnExportData(View: TfrView);    procedure InternalOnExportText(DrawRect: TRect; x, y: Integer;      const text: String; FrameTyp: Integer; View: TfrView);    procedure InternalOnGetValue(ParName: String; var ParValue: String);    procedure InternalOnProgress(Percent: Integer);    procedure InternalOnBeginColumn(Band: TfrBand);    procedure InternalOnPrintColumn(ColNo: Integer; var ColWidth: Integer);    procedure FillQueryParams;    procedure GetVariableValue(const s: String; var v: Variant);{$IFDEF 1CScript}    procedure GetVariableV(const s: String; var v: Variant);{$ENDIF}    procedure OnGetParsFunction(const name: string; p1, p2, p3: Variant;                                var val: Variant);    function FindObject(Name: string): TfrView;    // load/save methods    procedure LoadFromStream(Stream: TStream);    procedure SaveToStream(Stream: TStream);    function LoadFromFile(FName: String): Boolean;    procedure SaveToFile(FName: string);

⌨️ 快捷键说明

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