FastReport VCL是用于 Delphi、C++ Builder、RAD Studio 和 Lazarus 的报告和文档创建 VCL 库。它提供了可视化模板设计器,可以访问 30 多种格式,并可以部署到云、网站、电子邮件和打印中。
TfrxComponent 是所有 FastReport 组件的基类。这种类型的对象具有参数,例如坐标、大小、字体、可见性和从属对象的列表。这些还包括允许在流中保存/恢复对象方法的状态。
TfrxComponent = 类(TComponent) 受保护 过程 SetParent(AParent: TfrxComponent); 虚拟的; 过程 SetLeft(值:扩展);虚拟的; procedure SetTop(Value: Extended); virtual; procedure SetWidth(Value: Extended); virtual; procedure SetHeight(Value: Extended); virtual; procedure SetFont(Value: TFont); virtual; procedure SetParentFont(Value: Boolean); virtual; procedure SetVisible(Value: Boolean); virtual; procedure FontChanged(Sender: TObject); virtual; public constructor Create(AOwner: TComponent); override; procedure Assign(Source: TPersistent); override; procedure Clear; virtual; procedure CreateUniqueName; procedure LoadFromStream(Stream: TStream); virtual; procedure SaveToStream(Stream: TStream); virtual; procedure SetBounds(ALeft, ATop, AWidth, AHeight: Extended); function FindObject(const AName: String): TfrxComponent; class function GetDescription: String; virtual; property Objects: TList readonly; property AllObjects: TList readonly; property Parent: TfrxComponent; property Page: TfrxPage readonly; property Report: TfrxReport readonly; property IsDesigning: Boolean; property IsLoading: Boolean; property IsPrinting: Boolean; property BaseName: String; property Left: Extended; property Top: Extended; property Width: Extended; property Height: Extended; property AbsLeft: Extended readonly; property AbsTop: Extended readonly; property Font: TFont; property ParentFont: Boolean; property Restrictions: TfrxRestrictions; property Visible: Boolean; end;
- Clear – 清除对象内容并删除其所有子对象。
- CreateUniqueName – 为放置在报告中的对象创建唯一名称。
- LoadFromStream – 从流中加载对象内容及其所有子对象。
- SaveToStream – 将对象保存到流中。
- SetBounds – 设置对象坐标和大小
- FindObject – 在子对象中搜索具有指定名称的对象。
- GetDescription – 返回对象的描述。
修改相应属性时会调用以下方法。如果需要额外的处理,你可以覆盖它们:
- SetParent
- SetLeft
- SetTop
- SetWidth
- SetHeight
- SetFont
- SetParentFont
- SetVisible
- FontChanged
TfrxComponent类中定义了以下属性:
- Objects – 子对象列表;
- AllObjects – 所有从属对象的列表;
- Parent – 链接到父对象;
- Page – 报告页面的链接,该对象属于哪个对象;
- Report – 报告链接,属于哪个对象;
- IsDesigning – “真”,如果设计器正在运行;
- IsLoading – “真”,如果对象正在从流中加载;
- IsPrinting – “真”,如果正在打印对象;
- BaseName– 对象基本名称。该值用于CreateUniqueName方法;
- Left – 对象 X 坐标(相对于父对象);
- Top - 对象 Y 坐标(相对于父对象);
- Width – 物体宽度;
- Height – 物体高度;
- AbsLeft – X 对象绝对坐标;
- AbsTop – Y 对象绝对坐标;
- Font – 对象字体;
- ParentFont – 如果“True”,则使用父对象字体设置;
- Restrictions – 一组标志,用于限制一个或另一个对象操作;
- Visible – 对象可见性。
下一个基本类是TfrxReportComponent. 这种类型的对象可以放入报表设计中。这个类包含Draw了对象绘制以及方法BeforePrint/ GetData/AfterPrint方法,这是所谓的报告上运行。
TfrxReportComponent = class(TfrxComponent) public procedure Draw(Canvas: TCanvas; ScaleX, ScaleY, OffsetX, OffsetY: Extended); virtual; abstract; procedure BeforePrint; virtual; procedure GetData; virtual; procedure AfterPrint; virtual; function GetComponentText: String; virtual; property OnAfterPrint: TfrxNotifyEvent; property OnBeforePrint: TfrxNotifyEvent; end;
绘制对象时调用 Draw 方法。参数如下:
- Canvas – canvas;
- Scale – 按 X 轴和 Y 轴缩放;
- Offset - 相对于画布边缘偏移。
BeforePrint方法在对象处理之前(在报告构建过程中)被调用。此方法保存对象状态。
GetData 调用方法将数据加载到对象中。
AfterPrint在对象处理后调用。此方法恢复对象状态。
TfrxDialogComponent class 是编写非可视化组件的基础类,可以放在报表中的对话形式。
TfrxDialogComponent = class(TfrxReportComponent) public property Bitmap: TBitmap; property Component: TComponent; published property Left; property Top; end;
TfrxDialogControl类是编写通用控件的基础类,可以放在报表中的对话窗体上。此类包含大多数常见控件共享的大量常规属性和事件。
TfrxDialogControl = class(TfrxReportComponent) protected procedure InitControl(AControl: TControl); public property Caption: String; property Color: TColor; property Control: TControl; property OnClick: TfrxNotifyEvent; property OnDblClick: TfrxNotifyEvent; property OnEnter: TfrxNotifyEvent; property OnExit: TfrxNotifyEvent; property OnKeyDown: TfrxKeyEvent; property OnKeyPress: TfrxKeyPressEvent; property OnKeyUp: TfrxKeyEvent; property OnMouseDown: TfrxMouseEvent; property OnMouseMove: TfrxMouseMoveEvent; property OnMouseUp: TfrxMouseEvent; published property Left; property Top; property Width; property Height; property Font; property ParentFont; property Enabled: Boolean; property Visible; end;
在编写您自己的自定义控件元素时,您应该从此类继承,将所需的属性转移到“已发布”部分,然后为您的公共控件指定新属性。控制元素的编写将在下一章详细讨论。
TfrxViewclass 是大多数组件的基本类,可以放在报表设计页面上。这种类型的对象具有框架和填充等参数,也可以连接到数据源。大多数 FastReport 标准对象都是从这个类继承而来的。
TfrxView = class(TfrxReportComponent) protected FX, FY, FX1, FY1, FDX, FDY, FFrameWidth: Integer; FScaleX, FScaleY: Extended; FCanvas: TCanvas; procedure BeginDraw(Canvas: TCanvas; ScaleX, ScaleY, OffsetX, OffsetY: Extended); virtual; procedure DrawBackground; procedure DrawFrame; procedure DrawLine(x, y, x1, y1, w: Integer); public function IsDataField: Boolean; property BrushStyle: TBrushStyle; property Color: TColor; property DataField: String; property DataSet: TfrxDataSet; property Frame: TfrxFrame; published property Align: TfrxAlign; property Printable: Boolean; property ShiftMode: TfrxShiftMode; property TagStr: String; property Left; property Top; property Width; property Height; property Restrictions; property Visible; property OnAfterPrint; property OnBeforePrint; end;
此类中定义了以下方法:
- BeginDraw- 从方法中调用Draw方法并计算整数值坐标和绘图区域大小。计算值表示为FX,FY,FX1,FY1,FDX,和FDY变量。FFrameWidth还计算框架宽度(放置在 中);
- DrawBackground - 绘制对象背景;
- DrawFrame - 绘制对象框架;
- DrawLine – 绘制具有指定坐标和宽度的线;
- IsDataField如果DataSet和DataField属性包含非空值,则返回“True” 。
调用BeginDraw方法后可以参考以下属性:
- FX, FY, FX1, FY1, FDX, FDY,FFrameWidth是根据Scale和Offset参数计算的对象框坐标、大小和宽度;
- FScaleX,FScaleY是尺度,它们是Draw方法中 ScaleX 和 ScaleY 参数的副本;
- FCanvas是画布,它是Draw方法中 Canvas 参数的副本。
在此类中定义了以下属性,这些属性对于大多数报表对象是通用的:
- BrushStyle – 对象填充样式;
- Color – 对象填充颜色;
- DataField - 数据字段名称,连接到哪个对象;
- DataSet - 数据源;
- Frame – 对象框架;
- Align - 对象相对于其父对象对齐;
- Printable – 定义是否应打印给定对象;
- ShiftMode 当可拉伸对象放置在给定对象上时,是对象移动模式;
- TagStr - 用户信息存储字段。
TfrxStretcheable class 是编写组件的基本类,它根据放置在其中的数据修改它们的高度。
TfrxStretcheable = class(TfrxView) public function CalcHeight: Extended; virtual; 功能 DrawPart:扩展;虚拟的; 程序初始化部分;虚拟的; 发表 属性 StretchMode: TfrxStretchMode; 结尾;
给定类的对象可以被拉伸,也可以在对象在输出页面上找不到空间的情况下“细分”成碎片。同时,对象被零散地显示,直到显示其所有数据。等
中定义了以下方法:
- CalcHeight 是根据其中的数据计算并返回对象高度;
- InitPart 在对象分解之前调用;
- DrawPart 重绘块放置在对象中的下一个数据。“返回值”是无法显示数据的未使用空间的值。
如果您对 FastReport 动物,欢迎加入 FastReport QQ 交流群:702295239
还想要更多吗?您可以点击阅读【FastReport报表2021最新资源盘点】,查找需要的教程资源。上是FastReport .NET慧正在网火热销售中!>>查看价格详情
欢迎任何形式的转载,但请务必注明出处,尊重他人劳动成果
转载请注明:文章转载自:FastReport控件中文网 [https://www.fastreportcn.com/]
本文地址:https://www.fastreportcn.com/post/3124.html