FastReport VCL是用于 Delphi、C++ Builder、RAD Studio 和 Lazarus 的报告和文档创建 VCL 库。它提供了可视化模板设计器,可以访问 30 多种格式,并可以部署到云、网站、电子邮件和打印中。
TfrxIBXComponents是我们应该创建的第一个组件;注册引擎时(在Delphi环境下)会放入FastReport组件面板中。只要将此组件放入项目中,Delphi 就会自动将我们引擎单元的链接添加到“使用”列表中。应该在该组件中再分配一项任务,即在其中定义DefaultDatabase属性,该属性指的是与数据库的现有连接。默认情况下,所有TfrxIBXTable和TfrxIBXQuery组件都将引用此连接。有必要从TfrxDBComponents类继承组件:
TfrxDBComponents = class(TComponent) public function GetDescription: String; virtual; abstract; end;
描述应仅由一个函数返回,例如“IBX 组件”。TfrxIBXComponents组件实现如下:
type TfrxIBXComponents = class(TfrxDBComponents) private FDefaultDatabase: TIBDatabase; FOldComponents: TfrxIBXComponents; public constructor Create(AOwner: TComponent); override; destructor Destroy; override; function GetDescription: String; override; published property DefaultDatabase: TIBDatabase read FDefaultDatabase write FDefaultDatabase; end; var IBXComponents: TfrxIBXComponents; constructor TfrxIBXComponents.Create(AOwner: TComponent); begin inherited; FOldComponents := IBXComponents; IBXComponents := Self; end; destructor TfrxIBXComponents.Destroy; begin if IBXComponents = Self then IBXComponents := FOldComponents; inherited; end; function TfrxIBXComponents.GetDescription: String; begin Result := 'IBX'; end;
我们定义了 IBXComponents 全局变量,它将引用TfrxIBXComponents组件复制。如果您多次将组件放入项目中(尽管这是毫无意义的),您仍然可以保存到前一个组件的链接并在删除组件后恢复它。
可以将项目中已存在的连接到 DB 的链接放置到DefaultDatabase属性中。我们将编写的方式TfrxIBXTable,TfrxIBXQuery组件允许它们默认使用此连接(实际上,这就是我们需要 IBXComponents 全局变量的目的)。
如果您对 FastReport 感兴趣,欢迎加入 FastReport QQ 交流群:702295239
还想要更多吗?您可以点击阅读【FastReport报表2021最新资源盘点】,查找需要的教程资源。上是FastReport .NET慧正在网火热销售中!>>查看价格详情
欢迎任何形式的转载,但请务必注明出处,尊重他人劳动成果
转载请注明:文章转载自:FastReport控件中文网 [https://www.fastreportcn.com/]
本文地址:https://www.fastreportcn.com/post/3154.html