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

FastReport VCL报表开发人员手册:创建表组件

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

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

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

下一个组件是 TfrxIBXTable。它继承自TfrxCustomDataSet标准类。所有基本功能(操作字段列表、主从、基本属性)都已经在基本类中实现了。我们只需要定义特定于特定组件的属性。

  TfrxIBXTable = 类(TfrxCustomTable)
  私人的
    FDatabase:TfrxIBXDatabase;
    FTable:TIBTable;
    过程 SetDatabase(常量值:TfrxIBXDatabase);
  受保护
    过程通知(AComponent:TComponent;操作:TOOperation);覆盖;
    过程集主(常量值:TDataSource);覆盖;
    过程 SetMasterFields(const Value: String); 覆盖;
    过程 SetIndexFieldNames(const Value: String); 覆盖;
    过程 SetIndexName(const Value: String); 覆盖;
    过程 SetTableName(const Value: String); 覆盖;
    函数 GetIndexFieldNames:字符串;覆盖;
    函数 GetIndexName:字符串;覆盖;
    函数 GetTableName:字符串;覆盖;
  上市
    构造函数创建(AOwner:TComponent);覆盖;
    构造函数 DesignCreate(AOwner: TComponent; Flags: Word); 覆盖;
    类函数 GetDescription: String; 覆盖;
    程序 BeforeStartReport;覆盖;
    属性表:TIBTable读取FTable;
  发表
    属性数据库:TfrxIBXDatabase 读 FDatabase 写 SetDatabase;
  结尾;

构造函数 TfrxIBXTable.Create(AOwner: TComponent);
开始
  { 创建组件 – 表 }
  FTable := TIBTable.Create(nil);
  { 从基本类分配到 DataSet 属性的链接——不要忘记这个字符串!}
  数据集:= FTable;
  { 默认分配连接到数据库的链接 }
  设置数据库(无);
  { 之后可以调用基本构造函数}
  遗传;
结尾;

{ 在向报告添加组件时调用此构造函数。如果它已经存在,它会自动将表连接到 TfrxIBXDatabase 组件。}
构造函数 TfrxIBXTable.DesignCreate(AOwner: TComponent; Flags: Word);
无功
  i:整数;
  l:TList;
开始
  遗传;
  l := Report.AllObjects;
  对于 i := 0 到 l.Count - 1 做
    如果 TObject(l[i]) 是 TfrxIBXDatabase 那么
    开始
      SetDatabase(TfrxIBXDatabase(l[i]));
      休息;
    结尾;
结尾;

类函数 TfrxIBXTable.GetDescription: String;
开始
  结果 := 'IBX 表';
结尾;

{ 跟踪 TfrxIBXDatabase 组件删除。我们在 FDatabase 属性中解决了这个组件。否则我们可能会出错。}
程序 TfrxIBXTable.Notification(AComponent: TComponent; Operation: TOOperation);
开始
  遗传;
  如果 (Operation = opRemove) 和 (AComponent = FDatabase) 那么
    设置数据库(无);
结尾;

过程 TfrxIBXTable.SetDatabase(const Value: TfrxIBXDatabase);
开始
  { TfrxIBXDatabase 类型的数据库属性,而不是 TIBDatabase 类型的数据库属性!}
  FDatabase := 值;
  { 如果值 <> nil,将表连接到选定的组件 }
  如果值 <> nil 那么
    FTable.Database := Value.Database
  { 否则,尝试默认连接 DB,在 TfrxIBXComponents 组件中定义 }
  否则如果 IBXComponents <> nil 那么
    FTable.Database := IBXComponents.DefaultDatabase
  { 如果由于某种原因没有 TfrxIBXComponents,则重置为 nil }
  别的
    FTable.Database := nil;
  { 如果连接成功,则应放置 DBConnected 标志 }
  DBConnected := FTable.Database <> nil;
结尾;

函数 TfrxIBXTable.GetIndexFieldNames: String;
开始
  结果:= FTable.IndexFieldNames;
结尾;

函数 TfrxIBXTable.GetIndexName: 字符串;
开始
  结果:= FTable.IndexName;
结尾;

函数 TfrxIBXTable.GetTableName: String;
开始
  结果:= FTable.TableName;
结尾;

过程 TfrxIBXTable.SetIndexFieldNames(const Value: String);
开始
  FTable.IndexFieldNames := 值;
结尾;

过程 TfrxIBXTable.SetIndexName(const Value: String);
开始
  FTable.IndexName := 值;
结尾;

过程 TfrxIBXTable.SetTableName(const Value: String);
开始
  FTable.TableName := 值;
结尾;

过程 TfrxIBXTable.SetMaster(const Value: TDataSource);
开始
  FTable.MasterSource := 值;
结尾;

过程 TfrxIBXTable.SetMasterFields(const Value: String);
开始
  FTable.MasterFields := 值;
  FTable.IndexFieldNames := 值;
结尾;

{ 在某些情况下我们需要实现这个方法 }
程序 TfrxIBXTable.BeforeStartReport;
开始
  设置数据库(FDatabase);
结尾;

如果您对 FastReport 动物,欢迎加入 FastReport QQ 交流群:702295239

还想要更多吗?您可以点击阅读【FastReport报表2021最新资源盘点】,查找需要的教程资源。上是FastReport .NET慧正在网火热销售中!>>查看价格详情

本站文章除注明转载外,均为本站原创或翻译
欢迎任何形式的转载,但请务必注明出处,尊重他人劳动成果
转载请注明:文章转载自:FastReport控件中文网 [https://www.fastreportcn.com/]
本文地址:https://www.fastreportcn.com/post/3163.html

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


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