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

📄 frxclass.pas

📁 Fastreport最新版本的补丁
💻 PAS
📖 第 1 页 / 共 5 页
字号:
    class function GetDescription: String; override;
  published
    property BrushStyle;
    property Color;
    property Cursor;
    property Curve: Integer read FCurve write FCurve default 0;
    property Frame;
    property Shape: TfrxShapeKind read FShape write FShape default skRectangle;
    property TagStr;
    property URL;
  end;

{$IFDEF FR_COM}
  TfrxSubreport = class(TfrxView, IfrxSubreport)
{$ELSE}
  TfrxSubreport = class(TfrxView)
{$ENDIF}
  private
    FPage: TfrxReportPage;
    FPrintOnParent: Boolean;
    procedure SetPage(const Value: TfrxReportPage);
{$IFDEF FR_COM}
    function Get_Page(out Value: IfrxReportPage): HResult; stdcall;
    function Set_Page(const Value: IfrxReportPage): HResult; stdcall;
    function Get_PrintOnparent(out Value: WordBool): HResult; stdcall;
    function Set_PrintOnparent(Value: WordBool): HResult; stdcall;
{$ENDIF}
  public
    constructor Create(AOwner: TComponent); override;
    destructor Destroy; override;
    procedure Draw(Canvas: TCanvas; ScaleX, ScaleY, OffsetX, OffsetY: Extended); override;
    class function GetDescription: String; override;
  published
    property Page: TfrxReportPage read FPage write SetPage;
    property PrintOnParent: Boolean read FPrintOnParent write FPrintOnParent
      default False;
  end;


{ Bands }
  TfrxChild = class;

{$IFDEF FR_COM}
  TfrxBand = class(TfrxReportComponent, IfrxBand)
{$ELSE}
  TfrxBand = class(TfrxReportComponent)
{$ENDIF}
  private
    FAllowSplit: Boolean;
    FChild: TfrxChild;
    FKeepChild: Boolean;
    FOnAfterCalcHeight: TfrxNotifyEvent;
    FOutlineText: String;
    FOverflow: Boolean;
    FStartNewPage: Boolean;
    FStretched: Boolean;
    FPrintChildIfInvisible: Boolean;
    FVertical: Boolean;
    function GetBandName: String;
    procedure SetChild(Value: TfrxChild);
  protected
    procedure Notification(AComponent: TComponent; Operation: TOperation); override;
    procedure SetLeft(Value: Extended); override;
    procedure SetTop(Value: Extended); override;
    procedure SetHeight(Value: Extended); override;
{$IFDEF FR_COM}
  { IfrxBand }
    function IfrxBand.Get_AllowSplit = IfrxBand_Get_AllowSplit;
    function IfrxBand.Set_AllowSplit = IfrxBand_Set_AllowSplit;
    function IfrxBand.Get_KeepChild = IfrxBand_Get_KeepChild;
    function IfrxBand.Set_KeepChild = IfrxBand_Set_KeepChild;
    function IfrxBand.Get_OutlineText = IfrxBand_Get_OutlineText;
    function IfrxBand.Set_OutlineText = IfrxBand_Set_OutlineText;
    function IfrxBand.Get_Overflow = IfrxBand_Get_Overflow;
    function IfrxBand.Set_Overflow = IfrxBand_Set_Overflow;
    function IfrxBand.Get_StartNewPage = IfrxBand_Get_StartNewPage;
    function IfrxBand.Set_StartNewPage = IfrxBand_Set_StartNewPage;
    function IfrxBand.Get_Stretched = IfrxBand_Get_Stretched;
    function IfrxBand.Set_Stretched = IfrxBand_Set_Stretched;
    function IfrxBand.Get_PrintChildIfInvisible = IfrxBand_Get_PrintChildIfInvisible;
    function IfrxBand.Set_PrintChildIfInvisible = IfrxBand_Set_PrintChildIfInvisible;
    function IfrxBand.Get_Vertical = IfrxBand_Get_Vertical;
    function IfrxBand.Set_Vertical = IfrxBand_Set_Vertical;
    function IfrxBand.Get_BandName = IfrxBand_Get_BandName;

    function IfrxBand_Get_AllowSplit(out Value: WordBool): HResult; stdcall;
    function IfrxBand_Set_AllowSplit(Value: WordBool): HResult; stdcall;
    function IfrxBand_Get_KeepChild(out Value: WordBool): HResult; stdcall;
    function IfrxBand_Set_KeepChild(Value: WordBool): HResult; stdcall;
    function IfrxBand_Get_OutlineText(out Value: WideString): HResult; stdcall;
    function IfrxBand_Set_OutlineText(const Value: WideString): HResult; stdcall;
    function IfrxBand_Get_Overflow(out Value: WordBool): HResult; stdcall;
    function IfrxBand_Set_Overflow(Value: WordBool): HResult; stdcall;
    function IfrxBand_Get_StartNewPage(out Value: WordBool): HResult; stdcall;
    function IfrxBand_Set_StartNewPage(Value: WordBool): HResult; stdcall;
    function IfrxBand_Get_Stretched(out Value: WordBool): HResult; stdcall;
    function IfrxBand_Set_Stretched(Value: WordBool): HResult; stdcall;
    function IfrxBand_Get_PrintChildIfInvisible(out Value: WordBool): HResult; stdcall;
    function IfrxBand_Set_PrintChildIfInvisible(Value: WordBool): HResult; stdcall;
    function IfrxBand_Get_Vertical(out Value: WordBool): HResult; stdcall;
    function IfrxBand_Set_Vertical(Value: WordBool): HResult; stdcall;
    function IfrxBand_Get_BandName(out Value: WideString): HResult; stdcall;
    function Get_Child(out Value: IfrxChild): HResult; stdcall;
    function Set_Child(const Value: IfrxChild): HResult; stdcall;
{$ENDIF}
  public
    FSubBands: TList;                    { list of subbands }
    FHeader, FFooter, FGroup: TfrxBand;  { h./f./g. bands   }
    FLineN: Integer;                     { used for Line#   }
    FLineThrough: Integer;               { used for LineThrough#   }
    FOriginalObjectsCount: Integer;      { used for TfrxSubReport.PrintOnParent }
    FHasVBands: Boolean;                 { whether the band should show vbands }
    FStretchedHeight: Extended;
    constructor Create(AOwner: TComponent); override;
    destructor Destroy; override;
    function BandNumber: Integer;
    procedure Draw(Canvas: TCanvas; ScaleX, ScaleY, OffsetX, OffsetY: Extended); override;
    class function GetDescription: String; override;
    property AllowSplit: Boolean read FAllowSplit write FAllowSplit default False;
    property BandName: String read GetBandName;
    property Child: TfrxChild read FChild write SetChild;
    property KeepChild: Boolean read FKeepChild write FKeepChild default False;
    property OutlineText: String read FOutlineText write FOutlineText;
    property Overflow: Boolean read FOverflow write FOverflow;
    property PrintChildIfInvisible: Boolean read FPrintChildIfInvisible
      write FPrintChildIfInvisible default False;
    property StartNewPage: Boolean read FStartNewPage write FStartNewPage default False;
    property Stretched: Boolean read FStretched write FStretched default False;
  published
    property Font;
    property Height;
    property Left;
    property ParentFont;
    property Restrictions;
    property Top;
    property Vertical: Boolean read FVertical write FVertical default False;
    property Visible;
    property Width;
    property OnAfterCalcHeight: TfrxNotifyEvent read FOnAfterCalcHeight
      write FOnAfterCalcHeight;
    property OnAfterPrint;
    property OnBeforePrint;
  end;

  TfrxBandClass = class of TfrxBand;

{$IFDEF FR_COM}
  TfrxDataBand = class(TfrxBand, IfrxDataBand)
{$ELSE}
  TfrxDataBand = class(TfrxBand)
{$ENDIF}
  private
    FColumnGap: Extended;
    FColumnWidth: Extended;
    FColumns: Integer;
    FCurColumn: Integer;
    FDataSet: TfrxDataSet;
    FDataSetName: String;
    FFooterAfterEach: Boolean;
    FKeepFooter: Boolean;
    FKeepHeader: Boolean;
    FKeepTogether: Boolean;
    FPrintIfDetailEmpty: Boolean;
    FRowCount: Integer;
    FOnMasterDetail: TfrxNotifyEvent;
    FVirtualDataSet: TfrxUserDataSet;
    procedure SetCurColumn(Value: Integer);
    procedure SetRowCount(const Value: Integer);
    procedure SetDataSet(const Value: TfrxDataSet);
    procedure SetDataSetName(const Value: String);
    function GetDataSetName: String;
  protected
    procedure Notification(AComponent: TComponent; Operation: TOperation); override;
{$IFDEF FR_COM}
  {IfrxDataBand}
    function Get_ColumnGap(out Value: Double): HResult; stdcall;
    function Set_ColumnGap(Value: Double): HResult; stdcall;
    function Get_ColumnWidth(out Value: Double): HResult; stdcall;
    function Set_ColumnWidth(Value: Double): HResult; stdcall;
    function Get_ColumnsCount(out Value: Integer): HResult; stdcall;
    function Set_ColumnsCount(Value: Integer): HResult; stdcall;
    function Get_CurrentColumn(out Value: Integer): HResult; stdcall;
    function Set_CurrentColumn(Value: Integer): HResult; stdcall;
    function Get_DataSet(out Value: IfrxDataSet): HResult; stdcall;
    function Set_DataSet(const Value: IfrxDataSet): HResult; stdcall;
    function Get_FooterAfterEach(out Value: WordBool): HResult; stdcall;
    function Set_FooterAfterEach(Value: WordBool): HResult; stdcall;
    function Get_KeepFooter(out Value: WordBool): HResult; stdcall;
    function Set_KeepFooter(Value: WordBool): HResult; stdcall;
    function Get_KeepHeader(out Value: WordBool): HResult; stdcall;
    function Set_KeepHeader(Value: WordBool): HResult; stdcall;
    function Get_KeepTogether(out Value: WordBool): HResult; stdcall;
    function Set_KeepTogether(Value: WordBool): HResult; stdcall;
    function Get_PrintIfDetailEmpty(out Value: WordBool): HResult; stdcall;
    function Set_PrintIfDetailEmpty(Value: WordBool): HResult; stdcall;
    function Get_RowCount(out Value: Integer): HResult; stdcall;
    function Set_RowCount(Value: Integer): HResult; stdcall;
    function ResetDataSet: HResult; stdcall;
{$ENDIF}
  public
    FMaxY: Extended;                             { used for columns }
    constructor Create(AOwner: TComponent); override;
    destructor Destroy; override;
    class function GetDescription: String; override;
    property CurColumn: Integer read FCurColumn write SetCurColumn;
    property VirtualDataSet: TfrxUserDataSet read FVirtualDataSet;
  published
    property AllowSplit;
    property Child;
    property Columns: Integer read FColumns write FColumns default 0;
    property ColumnWidth: Extended read FColumnWidth write FColumnWidth;
    property ColumnGap: Extended read FColumnGap write FColumnGap;
    property DataSet: TfrxDataSet read FDataSet write SetDataSet;
    property DataSetName: String read GetDataSetName write SetDataSetName;
    property FooterAfterEach: Boolean read FFooterAfterEach write FFooterAfterEach default False;
    property KeepChild;
    property KeepFooter: Boolean read FKeepFooter write FKeepFooter default False;
    property KeepHeader: Boolean read FKeepHeader write FKeepHeader default False;
    property KeepTogether: Boolean read FKeepTogether write FKeepTogether default False;
    property OutlineText;
    property PrintChildIfInvisible;
    property PrintIfDetailEmpty: Boolean read FPrintIfDetailEmpty
      write FPrintIfDetailEmpty default False;
    property RowCount: Integer read FRowCount write SetRowCount;
    property StartNewPage;
    property Stretched;
    property OnMasterDetail: TfrxNotifyEvent read FOnMasterDetail write FOnMasterDetail;
  end;

{$IFDEF FR_COM}
  TfrxHeader = class(TfrxBand, IfrxHeader)
{$ELSE}
  TfrxHeader = class(TfrxBand)
{$ENDIF}
  private
    FReprintOnNewPage: Boolean;
{$IFDEF FR_COM}
    function Get_ReprintOnNewPage(out Value: WordBool): HResult; stdcall;
    function Set_ReprintOnNewPage(Value: WordBool): HResult; stdcall;
{$ENDIF}
  published
    property AllowSplit;
    property Child;
    property KeepChild;
    property PrintChildIfInvisible;
    property ReprintOnNewPage: Boolean read FReprintOnNewPage write FReprintOnNewPage default False;
    property StartNewPage;
    property Stretched;
  end;

{$IFDEF FR_COM}
  TfrxFooter = class(TfrxBand, IfrxFooter)
{$ELSE}
  TfrxFooter = class(TfrxBand)
{$ENDIF}
  private
  public
  published
    property AllowSplit;
    property Child;
    property KeepChild;
    property PrintChildIfInvisible;
    property Stretched;
  end;

{$IFDEF FR_COM}
  TfrxMasterData = class(TfrxDataBand, IfrxMasterData)
{$ELSE}
  TfrxMasterData = class(TfrxDataBand)
{$ENDIF}
  private
  public
  published
  end;

{$IFDEF FR_COM}
  TfrxDetailData = class(TfrxDataBand, IfrxDetailData)
{$ELSE}
  TfrxDetailData = class(TfrxDataBand)
{$ENDIF}
  private
  public
  published
  end;

{$IFDEF FR_COM}
  TfrxSubdetailData = class(TfrxDataBand, IfrxSubdetailData)
{$ELSE}
  TfrxSubdetailData = class(TfrxDataBand)
{$ENDIF}
  private
  public
  published
  end;

{$IFDEF FR_COM}
  TfrxDataBand4 = class(TfrxDataBand, IfrxDataBand4)
{$ELSE}
  TfrxDataBand4 = class(TfrxDataBand)
{$ENDIF}
  private
  public
  published
  end;

{$IFDEF FR_COM}
  TfrxDataBand5 = class(TfrxDataBand, IfrxDataBand6)
{$ELSE}
  TfrxDataBand5 = class(

⌨️ 快捷键说明

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