彩票走势图

报表生成器FastReport .Net用户指南:如何创建数据源关系

翻译|行业资讯|编辑:胡涛|2024-01-17 11:24:49.387|阅读 38 次

概述:本文主要介绍在报表生成器FastReport .Net中,如何创建数据源关系,欢迎查阅~

# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>

相关链接:

FastReport .Net是一款全功能的Windows Forms、ASP.NET和MVC报表分析解决方案,使用FastReport .NET可以创建独立于应用程序的.NET报表,同时FastReport .Net支持中文、英语等14种语言,可以让你的产品保证真正的国际性。

FastReport.NET官方版下载

两个数据源之间可以设置关系。关系用于定义 "master-detail"关系。例如,"Categories "表中的一条记录可以在 "Products "表中有多个条目:

fastreport

要创建关系,您需要说明以下内容:

  • Parent table;
  • Child table;
  • 父表中关键列的集合;
  • 子表中关键列的集合。
我们以演示数据库中的 "Categories "表和 "Products "表为例进行说明。它们的结构如下

fastreport

两个表都有 CategoryID 字段,可以在该字段上设置关系。因此,一个类别可能包含多个产品。

如何在 FastReport 中使用相关数据源?有两种方法。

第一种方法可以建立 "master-detail "类型的报告。为此,需要使用两个 "Data "带。主数据带连接到主数据源,详细数据带连接到详细数据源。我们的示例如下:

fastreport

如果运行这样的报告,就会打印出每个类别的产品清单:

fastreport

第二种方法允许从详细数据源引用主数据源。我们将举例说明。假设我们要打印所有产品的列表。为此,我们需要一个与 "Products "表相连的 "Data "带:

fastreport

这样的报告将打印所有类别的所有产品。比方说,我们想在每个产品旁边打印它所属的类别名称。如果不使用关系,这将更加困难。我们所知道的产品类别就是它的 id(由 "Products "表中的 "CategoryID "列表示)。我们要打印的类别名称存储在 "Category "表的 "CategoryName "列中。借助关系,我们可以按以下方式引用类别名称:

[Products.Categories.CategoryName]
对于 "Products"表的当前行,FastReport 将在 "类别 "表中找到相应的父行,并返回 "CategoryName "列的值。

在一般情况下,引用父表字段的方式允许表祖先的数量不受限制:

fastreport

如果我们将上图所示的列拖入报告中,就会得到一个包含文本的 "Text "对象:

fastreport

如果我们运行它,就会看到以下内容:

fastreport

创建关系

要创建关系,请单击 "Data "窗口中的 "Actions "按钮,然后选择 "New relation... "项。您将看到关系编辑器:

fastreport

首先,需要选择父表和子表。然后,在窗口下部选择相关数据列。可以通过一个或多个数据列将表关联起来。列设置完成后,按 "确定 "按钮关闭关系编辑器。

在 "Data "窗口中,选择子数据源并打开列列表,就可以看到创建的关系。在这些列中,可以看到与父数据源的关系:

fastreport

父数据源的数据列可以通过拖放方法插入到报表中。因此,如果我们选择如图所示的列,并将其拖到报告页面上,就会得到一个内容如下的 "Text"对象:

[Products.Categories.CategoryName]
编辑关系

要编辑关系,请打开子数据源的列列表,找到需要的关系并点击工具栏上的 "Eidt..."按钮。这将调用我们之前看过的关系编辑器。

系统变量

有一系列系统变量可在报告中使用:

Variable Description
Date 报告开始的日期和时间。
Page 当前页码。
TotalPages 报告的总页数。要使用此变量,需要启用报告的双通道。您可以在 "报告
PageN 表格中的页码:"Page N"。
PageNofM 表格页码:"Page N of M"。
Row# 组内数据行号。该值在新组开始时重置。
AbsRow# 数据行的绝对数。该值在新组开始时不会重置。
Page# 当前页码。如果将多个准备好的报告合并到一个数据包中,该变量将返回数据包中的当前页码。该变量实际上是一个宏,当在预览窗口中查看组件时,它的值将被替换。这意味着不能在表达式中使用它。
TotalPages# 报告的总页数。如果将多个准备好的报告合并为一个数据包,该变量将返回一个数据包的页数。该变量实际上是一个宏。该变量实际上是一个宏,当在预览窗口中查看组件时,它的值将被替换。这意味着你不能在表达式中使用它。
HierarchyLevel 层次结构报告中的当前层次结构级别(请参阅 "打印层次结构")。顶层等于 1。
HierarchyRow#
层次结构报告中的完整行号,如 "1.2.1"。

本次关于 FastReport .Net 介绍就讲解到这里了,点击此处查看关于用户指南的更多内容。如果您想获取更多产品试用/授权/价格信息,请点击FastReport .Net了解,或者点击咨询。


FastReport技术QQ群:585577353      欢迎进群一起讨论


标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@cahobeh.cn


为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP