FastReport VCL/FMX示例:Delphi/Lazarus中的两级数据(主-从) 表

FastReport多级 告的结构可以比作一棵树——树干、大树枝、从它们长出的细树枝,等等直到叶子——或者与公司结构进行比较:部门、分部、员工。它们通常被称为主从或主从,由几个表组成。一张表包含主要实体的列表;与第一个表绑定的另一个表包含一个从属实体列表,其中包含对第一个表的引用,指定第二个表中的某个实体从属于第一个表中的哪个实体,依此类推。

在这篇文章中,想告诉你 FastReport 如此强大的多级 告。他们的结构可以比作一棵树——树干、大树枝、从它们长出的细树枝,等等直到叶子——或者与公司结构进行比较:部门、分部、员工。它们通常被称为主从或主从,由几个表组成。一张表包含主要实体的列表;与第一个表绑定的另一个表包含一个从属实体列表,其中包含对第一个表的引用,指定第二个表中的某个实体从属于第一个表中的哪个实体,依此类推。

FastReport 最多支持六层嵌套(通过使用 Nested 表对象可能会更多,但这将在后面描述)。在实际应用中,很少需要打印具有大量数据嵌套的 告;通常,1-3 级就足够了。

构建主从 表的示例

让我们考虑创建一个两级 告。它将包含来自 Customer 和 Orders 表的数据。第一个表是客户列表;第二个是客户的订单清单。这些表包含以下类型的数据:

顾客:

CustNo Company
1221 Kauai Dive Shoppe
1231 Unisco
1351 Sight Diver

订单:

订单无客户无销售日期

1003 1351 12.04.1988
1023 1221 01.07.1988
1052 1351 06.01.1989
1055 1351 04.02.1989
1062
1981 2060 139 1989

如您所见,第二个表包含所有公司发出的所有订单的列表。要获取特定公司的订单列表,应从表中选择数据,其中字段 CustNo 等于所选公司的编 。使用这些数据构建的 告将如下所示:

1221       考艾岛潜水专柜
    1023        1988年7月1日
    1123        1993年8月24日
1231       联合船代
    1060        1989年2月28日
1351       视觉潜水员
    1003        1988年4月12日
    1052        1989年6月1日
    1055        1989年2月4日

现在我们开始做 告。我们在 Delphi 中创建了一个新项目,并为表单设置了两个 TTable 组件、一个 TDataSource 组件、两个 TfrxDBDataSet 组件和一个 TfrxReport 组件。

FastReport VCL/FMX示例:Delphi/Lazarus中的两级数据(主-从) 表

将数据从基础连接到 表对象

我们设置组件如下:

Table1 :
 DatabaseName =  ‘DBDEMOS’
 TableName =  ‘Customer.db’
 Table2 :
 DatabaseName =  ‘DBDEMOS’
 TableName =  ‘Orders.db’
 DataSource1 : DataSet = Table1 frxDBDataSet1 : DataSet = Table1 UserName = ‘Customers’ frxDBDataSet2 : DataSet = Table2 UserName = ‘订单’ 
在 表设计器中,我们在 Report|Data… 窗口中连接我们的数据源。

FastReport VCL/FMX示例:Delphi/Lazarus中的两级数据(主-从) 表
将第一级数据(主)和第二级数据(详细信息)带添加到页面。从数据面板(在右侧),我们将表字段拉到各自的波段(主和细节)。它看起来像这样:

FastReport VCL/FMX示例:Delphi/Lazarus中的两级数据(主-从) 表
注意 – 第一级数据带必须位于上方!如果位于2级数据带以下,FastReport会在开始上 时提示错误。

启动后,我们将看到每个客户的订单列表都是相同的,并且包含订单表中的所有记录。这是因为我们没有打开 Orders 表中的记录过滤。

当 表启动时,FastReport 将执行以下操作。它将从主表 (Customer) 中选择下一个记录并将过滤器设置为从属表 (Orders)。只有满足条件 Orders.CustNo = Customer.CustNo 的录音才会留在表中。也就是说,对于每个客户,只会显示该客户的订单:

FastReport VCL/FMX示例:Delphi/Lazarus中的两级数据(主-从) 表
同样,您最多可以构建具有六个数据级别的 告。


如果您对 FastReport  表工具感兴趣,欢迎加入 FastReport QQ 交流群:599154289

标签:

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年10月2日
下一篇 2021年10月2日

相关推荐

发表回复

登录后才能评论