📄 rm_class.pas
字号:
property Brush: TBrush read FBrush write SetBrush;
property ReprintOnOverFlow;
property ShiftWith;
property StretchWith;
property FillColor;
property LeftFrame;
property TopFrame;
property RightFrame;
property BottomFrame;
property ShadowStyle;
property Printable;
property Url;
property OnPreviewClick;
property OnPreviewClickUrl;
end;
{ TRMOutlineView }
TRMOutlineView = class(TRMReportView)
private
FCaption: string;
FPageNo: Integer;
FLevel: Integer;
function GetOutlineText: string;
protected
procedure Prepare; override;
procedure PlaceOnEndPage(aStream: TStream); override;
public
constructor Create; override;
destructor Destroy; override;
procedure DefinePopupMenu(aPopup: TRMCustomMenuItem); override;
procedure LoadFromStream(aStream: TStream); override;
procedure SaveToStream(aStream: TStream); override;
procedure Draw(aCanvas: TCanvas); override;
property OutlineText: string read GetOutlineText;
published
end;
{ TRMSubReportView }
TRMSubReportView = class(TRMReportView)
private
FSubPage: Integer;
FSubReportType: TRMSubReportType;
FCanPrint: Boolean;
function GetPage: TRMReportPage;
function GetReprintLastPage: Boolean;
procedure SetReprintLastPage(Value: Boolean);
protected
procedure Prepare; override;
function GetViewCommon: string; override;
function DrawAsPicture: Boolean; override;
public
class function CanPlaceOnGridView: Boolean; override;
constructor Create; override;
destructor Destroy; override;
procedure DefinePopupMenu(aPopup: TRMCustomMenuItem); override;
procedure LoadFromStream(aStream: TStream); override;
procedure SaveToStream(aStream: TStream); override;
procedure Draw(aCanvas: TCanvas); override;
property SubPage: Integer read FSubPage write FSubPage;
property Page: TRMReportPage read GetPage;
published
property SubReportType: TRMSubReportType read FSubReportType write FSubReportType;
property ReprintLastPage: Boolean read GetReprintLastPage write SetReprintLastPage;
end;
{ TRMCustomBandView }
TRMCustomBandView = class(TRMReportView)
private
FFont: TFont;
FBandType: TRMBandType;
FIsVirtualDataSet: Boolean;
FDataSetName: string;
FLinesPerPage: Integer;
FNewPageCondition: string;
FRangeBegin: TRMRangeBegin;
FRangeEnd: TRMRangeEnd;
FRangeEndCount: Integer;
FmmColumnGap: Integer;
FColumns: Integer;
FmmColumnWidth, FmmColumnOffset: Integer;
FGroupCondition: string;
FChildBandName: string;
FFlags1: LongWord;
FMasterBand: string;
FDataBandName: string;
FOutlineText: string;
FOnAfterPrint: TNotifyEvent;
FOnBeforePrintRecord: TRMBandBeforePrintRecordEvent;
procedure OnNewPageAfterClick(Sender: TObject);
procedure OnPrintIfSubsetEmptyClick(Sender: TObject);
procedure OnPageBreakedClick(Sender: TObject);
procedure OnPrintOnFirstPageClick(Sender: TObject);
procedure OnPrintOnLastPageClick(Sender: TObject);
procedure OnReprintOnNewPageClick(Sender: TObject);
procedure OnAutoAppendBlankClick(Sender: TObject);
procedure OnStretchedClick(Sender: TObject);
procedure OnKeepFooterClick(Sender: TObject);
procedure OnKeepTogetherClick(Sender: TObject);
procedure OnKeepChildClick(Sender: TObject);
procedure SetFont(Value: TFont);
function GetPrintOnFirstPage: Boolean;
procedure SetPrintOnFirstPage(Value: Boolean);
function GetPrintOnLastPage: Boolean;
procedure SetPrintOnLastPage(Value: Boolean);
function GetPrintIfSubsetEmpty: Boolean;
procedure SetPrintIfSubsetEmpty(Value: Boolean);
function GetAutoAppendBlank: Boolean;
procedure SetAutoAppendBlank(Value: Boolean);
function GetAppendBlankOnce: Boolean;
procedure SetAppendBlankOnce(Value: Boolean);
function GetNewPageAfter: Boolean;
procedure SetNewPageAfter(Value: Boolean);
function GetNewPageBefore: Boolean;
procedure SetNewPageBefore(Value: Boolean);
function GetPageBreaked: Boolean;
procedure SetPageBreaked(Value: Boolean);
function GetHideIfEmpty: Boolean;
procedure SetHideIfEmpty(Value: Boolean);
function GetReprintOnNewPage: Boolean;
procedure SetReprintOnNewPage(Value: Boolean);
function GetReprintOnNewColumn: Boolean;
procedure SetReprintOnNewColumn(Value: Boolean);
function GetKeepFooter: Boolean;
procedure SetKeepFooter(Value: Boolean);
function GetKeepTogether: Boolean;
procedure SetKeepTogether(Value: Boolean);
function GetKeepChild: Boolean;
procedure SetKeepChild(Value: Boolean);
function GetPrintatDesignPos: Boolean;
procedure SetPrintatDesignPos(Value: Boolean);
function GetspColumnGap(index: Integer): Integer;
procedure SetspColumnGap(index: Integer; Value: Integer);
function GetColumnGap(index: Integer): Double;
procedure SetColumnGap(index: Integer; Value: Double);
function GetPrintColumnFirst: Boolean;
procedure SetPrintColumnFirst(Value: Boolean);
function GetPrintBeforeSummaryBand: Boolean;
procedure SetPrintBeforeSummaryBand(Value: Boolean);
function GetPrintChildIfInvisible: Boolean;
procedure SetPrintChildIfInvisible(Value: Boolean);
procedure SetChildBandName(Value: string);
function GetAdjustColumns: Boolean;
procedure SetAdjustColumns(Value: Boolean);
function GetAlignToBottom: Boolean;
procedure SetAlignToBottom(Value: Boolean);
procedure SetGroupHeaderBandName(Value: string);
procedure SetDataSetName(Value: string);
procedure SetMasterBand(Value: string);
procedure SetDataBandName(Value: string);
procedure SetGroupCondition(Value: string);
procedure SetOutlineText(Value: string);
function GetPrintIfEmpty: Boolean;
procedure SetPrintIfEmpty(Value: Boolean);
procedure SetNewPageCondition(Value: string);
procedure SetRangeEndCount(Value: Integer);
//xyxb Add
function GetCalcPriority: Boolean;
procedure SetCalcPriority(Value: Boolean);
protected
property AlignToBottom: Boolean read GetAlignToBottom write SetAlignToBottom;
property PrintOnFirstPage: Boolean read GetPrintOnFirstPage write SetPrintOnFirstPage;
property PrintOnLastPage: Boolean read GetPrintOnLastPage write SetPrintOnLastPage;
property PrintIfSubsetEmpty: Boolean read GetPrintIfSubsetEmpty write SetPrintIfSubsetEmpty;
property AutoAppendBlank: Boolean read GetAutoAppendBlank write SetAutoAppendBlank;
property AppendBlankOnce: Boolean read GetAppendBlankOnce write SetAppendBlankOnce;
property LinesPerPage: Integer read FLinesPerPage write FLinesPerPage;
property NewPageCondition: string read FNewPageCondition write SetNewPageCondition;
property NewPageAfter: Boolean read GetNewPageAfter write SetNewPageAfter;
property NewPageBefore: Boolean read GetNewPageBefore write SetNewPageBefore;
property PageBreaked: Boolean read GetPageBreaked write SetPageBreaked;
property AllowSplit: Boolean read GetPageBreaked write SetPageBreaked;
property GroupHeaderBandName: string read FMasterBand write SetGroupHeaderBandName;
property MasterBandName: string read FMasterBand write SetMasterBand; // GroupHeader Band 有的
property DataBandName: string read FDataBandName write SetDataBandName;
property HideIfEmpty: Boolean read GetHideIfEmpty write SetHideIfEmpty;
property ReprintOnNewPage: Boolean read GetReprintOnNewPage write SetReprintOnNewPage;
property ReprintOnEveryPage: Boolean read GetReprintOnNewPage write SetReprintOnNewPage;
property ReprintOnNewColumn: Boolean read GetReprintOnNewColumn write SetReprintOnNewColumn;
property KeepFooter: Boolean read GetKeepFooter write SetKeepFooter;
property KeepTogether: Boolean read GetKeepTogether write SetKeepTogether;
property KeepChild: Boolean read GetKeepChild write SetKeepChild;
property PrintColumnFirst: Boolean read GetPrintColumnFirst write SetPrintColumnFirst;
property Columns: Integer read FColumns write FColumns;
property mmColumnGap: Integer read FmmColumnGap write FmmColumnGap;
property mmColumnWidth: Integer read FmmColumnWidth write FmmColumnWidth;
property mmColumnOffset: Integer read FmmColumnOffset write FmmColumnOffset;
property spColumnGap: Integer index 0 read GetspColumnGap write SetspColumnGap;
property spColumnWidth: Integer index 1 read GetspColumnGap write SetspColumnGap;
property spColumnOffset: Integer index 2 read GetspColumnGap write SetspColumnGap;
property ColumnGap: Double index 0 read GetColumnGap write SetColumnGap;
property ColumnWidth: Double index 1 read GetColumnGap write SetColumnGap;
property ColumnOffset: Double index 2 read GetColumnGap write SetColumnGap;
property GroupCondition: string read FGroupCondition write SetGroupCondition;
property PrintCondition: string read FGroupCondition write SetGroupCondition;
property OutlineText: string read FOutlineText write SetOutlineText;
property PrintAtDesignPos: Boolean read GetPrintatDesignPos write SetPrintatDesignPos;
property DataSetName: string read FDataSetName write SetDataSetName;
property RangeBegin: TRMRangeBegin read FRangeBegin write FRangeBegin;
property RangeEnd: TRMRangeEnd read FRangeEnd write FRangeEnd;
property RangeEndCount: integer read FRangeEndCount write SetRangeEndCount;
property PrintBeforeSummaryBand: Boolean read GetPrintBeforeSummaryBand write SetPrintBeforeSummaryBand;
property ChildBand: string read FChildBandName write SetChildBandName;
property PrintChildIfInvisible: Boolean read GetPrintChildIfInvisible write SetPrintChildIfInvisible;
property PrintIfEmpty: Boolean read GetPrintIfEmpty write SetPrintIfEmpty;
property AdjustColumns: Boolean read GetAdjustColumns write SetAdjustColumns;
//xyxb Add
property CalcPriority: Boolean read GetCalcPriority write SetCalcPriority;
property OnBeforePrintRecord: TRMBandBeforePrintRecordEvent read FOnBeforePrintRecord write FOnBeforePrintRecord;
public
class function CanPlaceOnGridView: Boolean; override;
constructor Create; override;
destructor Destroy; override;
procedure LoadFromStream(aStream: TStream); override;
procedure SaveToStream(aStream: TStream); override;
procedure DefinePopupMenu(aPopup: TRMCustomMenuItem); override;
function GetClipRgn(rt: TRMRgnType): HRGN; override;
procedure Draw(aCanvas: TCanvas); override;
property IsVirtualDataSet: Boolean read FIsVirtualDataSet;
property BandType: TRMBandType read FBandType;
published
property Font: TFont read FFont write SetFont;
// property ParentFont;
property OnAfterPrint: TNotifyEvent read FOnAfterPrint write FOnAfterPrint;
end;
{ TRMBand }
TRMBand = class(TRMCustomBandView) // 打印时用的
private
FPositions: array[TRMDatasetPosition] of Integer;
FLastGroupValue: Variant;
FSaveRangeBegin: TRMRangeBegin;
FSaveRangeEnd: TRMRangeEnd;
FSaveRangeEndCount: Integer;
FCurrentColumn: Integer;
FNowLine: LongInt;
FLevel: Integer;
FFirstPage: Boolean;
FInPageBreakFlag: Boolean;
FLastPageNo: Integer;
FStartPageNo: Integer;
FAggrCount: Integer;
FAggrValues: TRMVariables;
FCrossCurX: Integer;
FNowGroupBand: TRMBand;
FAggrBand: TRMBand;
FDisableBandScript: Boolean;
FBandChild: TRMBand;
FNextGroup, FPrevGroup: TRMBand;
FFirstGroup, FLastGroup: TRMBand;
FHeaderBand, FFooterBand, FDataBand, FLastBand: TRMBand;
FMasterDataBand: TRMBand;
FCalculatedHeight: Integer;
FNeedChangeHeight, FNeedUnStretchObjects: Boolean;
FmmColumnXAdjust: Integer;
FSaveXAdjust, FSaveLastY, FSaveTop, FSaveMaxY: Integer;
//FMaxColumns: Integer;
FMaxY: Integer;
FObjects: TList;
FSubReports: TList;
FKeepPage_FirstTime: Boolean;
FNeedDecKeepPageCount: Boolean;
FOriginalObjectsCount: Integer;
// FCallNewPage, FCallNewColumn: Integer;
procedure MakeOutlineText;
procedure DrawRepeatHeader(aNewColumn: Boolean);
procedure DoAggregate(aDataBand: TRMBand);
procedure InitValues;
procedure StretchObjects;
procedure UnStretchObjects;
function CalcBandHeight: Integer;
function CalcChildBandHeight: Integer;
function CheckSpace(aTop, aHeight: Integer; aAddColumn: Boolean): Boolean;
procedure MakeSpace;
procedure MakeColumns;
procedure PrintObject(t: TRMReportView);
function PrintObjects(aDrawPageBreaked: Boolean): Boolean;
function PrintSubReports: Boolean;
//procedure PrintCrossCell(aParentBand: TRMBand; aCurrentX: Integer);
function CrossCheckPageBreak(aBand: TRMBand; aNewPage: Boolean): Boolean;
procedure ShowCrossBand(aBand: TRMBand);
procedure DoPrintCross(aMasterBand: TRMBand; aBandType: TRMBandType;
aNowLevel: Integer; var aBndStackTop: Integer; var aBndStack: array of TRMBand);
procedure PrintCross;
function HasCross: Boolean;
procedure PrintPageBreak(aNeedNewPage: Boolean);
procedure DoPrint;
function Print: Boolean;
procedure AddAggregateValue(const aStr: string; aValue: Variant);
function GetAggregateValue(const aStr: string): Variant;
protected
function GetPropValue(aObject: TObject; aPropName: string; var aValue: Variant; aArgs: array of Variant): Boolean; override;
procedure Prepare; override;
procedure UnPrepare; override;
public
constructor Create; override;
destructor Destroy; override;
property Objects: TList read FObjects;
property DataSet: TRMDataSet read FDataSet;
property AggrValues: TRMVariables read FAggrValues;
end;
TRMBandReportTitle = class(TRMBand)
private
protected
public
constructor Create; override;
property PageBreaked;
published
property HideIfEmpty;
// property NewPageAfter;
property Stretched;
property AllowSplit;
property ChildBand;
property KeepChild;
property PrintChildIfInvisible;
property OutlineText;
end;
TRMBandReportSummary = class(TRMBand)
private
protected
public
constructor Create; override;
published
property HideIfEmpty;
// property NewPageAfter;
property Stretched;
//property PageBreaked;
property ChildBand;
property KeepChild;
property PrintChildIfInvisible;
property AlignToBottom;
property OutlineText;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -