FastReport使用交流,FastReport中国社区FastReport联系电话 联系电话:17347785263

FastReport VCL报表开发人员手册:Delphi 面板组件

来源:   发布时间:2021-07-20   浏览:次

FastReport VCL是用于 Delphi、C++ Builder、RAD Studio 和 Lazarus 的报告和文档创建 VCL 库。它提供了可视化模板设计器,可以访问 30 多种格式,并可以部署到云、网站、电子邮件和打印中。

立即点击下载FastReport VCL v6.9最新版

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

联系我们
  • 重庆总部 17347785263
购买
  • sales@evget.com
合作
  • business@evget.com


在线
客服
在线
QQ
电话
咨询
023-68661681
返回
顶部