有时,我们必须以不同的格式处理来自不同来源的数据。对于分析师和报表开发人员来说,这可能是一个令人头疼的问题。毕竟,你必须以某种方式组合数据。幸运的是,在FastReport.Net的报表中,您可以创建许多数据连接。而且,数据源可以完全不同 – 文本文件,数据库。多亏了这一点,我们将能够在一份报表中整合数据。 在本文中,我们将介绍在报表中创建两个数据源以及从中链接表以创建包含主表和从属表的报表的方法。只有两个表和两个文件。第一个是csv格式,第二个是json。
为FastReport.Net报表设计器提供了插件。它们是添加新功能的扩展。这些可以是数据源的附加连接器或报表的其他控件。在我们的示例中,我们需要连接到JSON。因此,我们将添加一个带有连接器的插件到JSON文件的数据源。
插件
要获得JSON格式的插件连接器,我们需要构建相应的项目。它位于这里:
C:\ Program Files(x86)\ FastReports \ FastReport.Net \ Extras \ Connections \ FastReport.Json
您只需要恢复一个NuGet Newtonsoft.Json包并构建一个项目。在Debug或Release文件夹中,您将找到两个库:FastReport.Json.dll和Newtonsoft.Json.dll。第一个是报表设计器的插件。
如何添加插件
运行报表设计器。在文件菜单中,我们找到选项。在报表设计器选项中,转到“plugin”选项卡:
并添加我们创建的插件。要使用它,您需要重新启动报表设计器。
我们开始创建一个演示报表。使用按钮创建新数据源:
在数据源创建向导的新窗口中,单击“New connection”按钮…
在连接设置窗口中,选择连接类型。从这个特定列表中,我们选择要添加的新连接。我们使用插件添加它们。现在我们对标准连接器 – CSV数据库感兴趣。选择它并设置数据文件的路径:
如您所见,此窗口中有一些更重要的连接设置。在下面的窗口中,您可以看到表格的外观。单击“确定”,然后继续执行数据源向导的下一步。在这里,您只需要使用标记标记表并完成源的创建。
让我们创建第二个数据源。这次我们选择连接类型–JSON数据库。
从这里的设置我们只有文件选择。此外,与第一种情况一样,选择表并完成数据源的创建。
所以,我们有两个表 – 订单和客户。在Orders表中,有一个指向Customers的外部链接。
我们的任务是提出客户名称和每个客户的订单列表。通过这种方式,您可以获得客户的订单分组。此类报表称为Master-Detail。要实现我们的计划,您需要在表之间创建关系。在“Data”窗口中,单击“Actions”按钮。在下拉列表中,选择New Relation …:
在关系编辑窗口中,我们设置父表,该表具有一对多的关系。我们还设置了子表。下一步是设置通信列。简而言之,我们选择父表中的外键和子表中的主键:
您可以看到这些表与数据树中的此特征元素相关:
Customers元素已添加到Orders表中,可以通过单击加号来打开它。这意味着Orders表具有详细的Customers表。可以有很多这样的细节表,没有限制。
准备好数据; 您可以创建报表模板。将所需字段从Customers表拖到“Data”区域。对于我们的示例,CompanyName字段就足够了。然后我们右键单击“Data”区域,并从上下文菜单中选择“Add Detail Data Band/添加详细数据带”。
因此,我们添加从属频带“Data”。将所需字段从Orders表拖到添加的band。
添加详细数据带。
我们制作报告模板并在预览模式下运行报表:
结果,我们获得了从完全不同的数据源获得的逻辑相关表。因此,您不需要将数据转换为单一格式,这将极大地便于向经常使用各种数据的人员开发报表。