(一)背景介绍
在进行报表设计时,其实很多的报表都属于【主子报表】的类型和其变化应用的范畴,是非常典型的一类报表样式。
如果非要给主子报表下一个定义的话,我们可以理解为一条主要信息和它关联的若干条次要信息组成的报表。
比如订单信息(基本信息+购买商品列表)、提货单(提货信息+货物详细清单),主子报表其实还有很多其他的叫法,比如【主从报表】、【父子报表】、【主从明细报表】等等。
接下来我们将针对【主子报表】这一类型和变化应用推出一些列的实现文章,深入、彻底的剖析其设计精髓,并能够根据自己所遇到的报表需求,选择合适的实现方法,并介绍Wyn Enterprise的最佳实践。
(二)用例介绍
在接下来的【主子报表】这一系列文章中,我们将通过同一个需求、同一个数据结构,分别演示通过不同的方法实现【主子报表】。
所要演示的是一个大家都熟悉的【订单】+【订单明细】典型需求,我们要根据用户需求去查询单笔订单、或者多笔订单的信息。
示例数据存放在【Wyn Enterprise主子报表示例数据.xlsx】文件中,里面包含两个数据表,【订单】和【订单明细】表,如下图所示:
Wyn Enterprise主子报表示例数据.xlsx
订单表:包含订单编号、订购日期、客户名称、邮寄地址等基本信息。
:
订单明细表:包含每笔订单所购买的所有商品信息,商品名称、单价、数量。
(三)实现步骤
在该系列第一篇文章中,我们将以【查询单笔订单和订单所购买商品信息】的报表为例,介绍最为基础的【主从报表】设计思路。
第1步:创建数据源连接
在用户门户中,创建一个新的数据源连接。
然后选择Excel数据源类型
为报表数据源起名为【主子报表示例数据源】,并选择【Wyn Enterprise主子报表示例数据.xlsx】文件作为数据源
设置完成之后,点击保存按钮,然后返回到用户门户界面中。
第2步:创建报表
从用户门户中创建新的报表,在报表模板选择界面选择【空白RDL报表】类型。
第3步:创建数据集在报表设计器右侧的【数据绑定】选项卡中,选择新建数据集。
首先我们创建【订单信息】数据集,该数据集根据用户输入的订单编号,返回该笔(仅有一笔)订单在【订单】表中对应的行。
数据集对应的详细设置如下:
数据集名称:订单信息
查询语句:
- select * from 订单 where 订单编号 = @订单编号
查询参数:订单编号
点击确定按钮之后,返回到报表设计界面,你会看到新添加的【订单信息】数据集和【订单编号】报表参数。
注意:
在数据集对话框中,你添加查询参数之后,如果只设置了查询参数的名称,没有设置数值,将自动添加一个与查询参数同名的报表参数,这样可以节省你单独创建报表参数的时间。
按照同样的方法,我们继续新建【订单明细】数据集,对应的设置如下:
数据集名称:订单明细
查询语句:
- select * from 订单明细 where 订单编号 =@订单编号
查询参数名称:订单编号
查询参数数值:=Parameters!订单编号.Value
点击确定按钮之后,返回到报表设计界面,你会看到新添加的【订单明细】数据集。
这样我们就添加好需要的两个数据集,以及供用户输入查询条件的报表参数,如下图所示:
第4步,添加表格并绑定数据字段
首先,我们添加一个表格用于显示【订单信息】数据集的数据,需要注意的是,该表格包含一行标题和三行明细(通过鼠标右键添加)。
其中,蓝色方框的单元格绑定了【订单信息】数据集的数据字段。
其中使用到的表达式包括:
- =[客户省份] & [客户城市] & [客户地址]
接着,按照同样的方法添加另外一个表格,该表格将用于显示【订单明细】数据集中的数据,对应的报表结构和数据绑定关系如下图:
其中使用到的表达式包括:
- =[订单单价] * [购买数量]
- ="商品数量:" & Sum([购买数量])
- ="订单总额:" & Format(Sum([订单单价] * [购买数量]),"n2")
第5步:预览报表
点击设计器顶部的【预览】按钮,然后在查询参数面板中输入【D0001】,然后点击【预览报表】按钮,我们便能查询出订单编号为 D0001 的信息,得到以下报表结果。