FastReport使用交流,FastReport中国社区FastReport联系电话 联系电话:023-68661681

如何制作Master-Detail主从报表,加快数据查询&减少数据冗余

来源:   发布时间:2019-09-18   浏览:270次

各种电子文档有时似乎是无限的。然而,在实践中,通常不能使用过多类型的文档。

在电子报告中,最常见的文档类型是一个简单的列表。然后,有复杂的列表。复杂列表可以有许多变体,但主要的是“Main” - “subordinate”类型的报告。这种类型的本质是在一对多方案中数据实体之间存在依赖关系。也就是说,主表中的一条记录可以对应于下级中的几条记录。在实践中,它看起来像这样:

如何制作Master-Detail主从报表,加快数据查询&减少数据冗余

主表中的条目包含类别的名称、简要说明和图片。每个类别都包含特定产品。此示例仅显示一个依赖项“Main” - “subordinate”。但是从属表也可以有它的从属表,然后它已经是第二个连接的主要表。这种分层依赖性可以是任意多个。现在,在实践中,让我们考虑如何创建这样的报告。

首先,我们需要一个数据源,其中将有两个逻辑相关的表,如上例所示。

将数据源添加到报表中。在我们的例子中,将有两个相关的表:

客户和订单。

在数据“Data”窗口中,它看起来像这样:

如何制作Master-Detail主从报表,加快数据查询&减少数据冗余

现在我们需要链接这些表。为此,请单击数据窗口中的操作“Actions”按钮。下拉列表将打开:

如何制作Master-Detail主从报表,加快数据查询&减少数据冗余

您需要选择新关系“New Relation”项。在关系编辑表单中,我们需要定义主表和从属表,以及它们应该链接的字段:

如何制作Master-Detail主从报表,加快数据查询&减少数据冗余

主表是“customer”,其主键是CustNo。从属表是“orders1”,它的外键CustNo。成功创建连接后,我们将在数据窗口中看到它:

如何制作Master-Detail主从报表,加快数据查询&减少数据冗余

如您所见,orders1表中显示了一条指向客户的链接。如果您打开它,我们将看到customer表中的所有相同字段。

我们已经准备好了数据,现在您需要创建一个报告模板。

默认情况下,空白报告中提供单个波段数据。让我们从客户表中添加一些字段:customer.Company、customer.Addr1、customer.Phone、customer.Contact。我们将放置这些字段,以便获得某张公司名片卡:

如何制作Master-Detail主从报表,加快数据查询&减少数据冗余

右键单击波段标题数据“Data”:

如何制作Master-Detail主从报表,加快数据查询&减少数据冗余

并选择添加详细数据段“Add detailed data band”选项。单击配置数据段Configure bands...链接

如何制作Master-Detail主从报表,加快数据查询&减少数据冗余

并为Data2频段添加标题区。为此,请使用鼠标选择Data2波段,然后单击添加“Add”按钮。在下拉列表中,选择标题Header。

之后,您可以将orders1表中的字段添加到详细的数据“Data”区域:orders1.OrderNo、orders1.SaleDate、orders1.AmountPaid。同时将自动添加列标题。格式化标题,我们的模板几乎准备就绪:

如何制作Master-Detail主从报表,加快数据查询&减少数据冗余

双击“Data”频段的标题:

如何制作Master-Detail主从报表,加快数据查询&减少数据冗余

我们选择客户表作为数据源。现在让我们对详细的数据“Data”频段做同样的事情:

如何制作Master-Detail主从报表,加快数据查询&减少数据冗余

现在我们的报告已准备就绪。让我们看看我们得到了什么:

如何制作Master-Detail主从报表,加快数据查询&减少数据冗余



产品介绍 | 下载试用 | 优惠活动 | 在线客服


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

相关产品: FastReport.Net,


联系我们
  • 重庆总部 023-68661681 400-700-1020
  • 北京公司 010-56705895
购买
  • sales@evget.com
合作
  • business@evget.com