横向分片报表- 分片报表-复杂报表设计教程
目录

横向分片报表

报表样例

通过本示例,在之前已经学习的报表示例【分片报表】的基础上,进一步了解横向分片报表的制作方法。

制作如下图所示的带有横向分片的多源分片报表:

报表特点:

报表中的数据一共来源于三个数据集。

第一个数据集ds1从产品自带演示数据库中的“演示_订单表”和“演示_订单明细表”取数,与报表示例【分片报表】中的差别是,数据集中增加了一个“演示_订单明细表”的“产品ID”字段,数据集sql语法如下:

第二个数据集ds2从产品自带演示数据库中的“演示_雇员表”取数,与报表示例【分片报表】中相同,数据集sql语法如下:

第三个数据集ds3从产品自带演示数据库中的“演示_产品表”和“演示_产品类别表”取数,比报表示例【分片报表】进一步新增的数据集,数据集sql语法如下:

制作方法

首先绘制出报表的纵向分片部分,具体方法请参见前面的报表示例:分片报表。完成后,报表如下:

接着绘制横向分片中的右侧分片部分,在D2单元格输入“产品类别”,然后选择单元格快捷公式向导的“分组”将数据集ds3中的字段“类别名称”拖入D3单元格,并且使用设计器工具栏的“扩展”功能设置D3的扩展方向为向右扩展:

下面分别在D4、D5单元格设置计算数据集ds1的销售额字段汇总值的表达式,表达式使用数据集函数Sum,并且函数中设置数据过滤条件,具体如下:

为了让不同分片视觉上更容易区分,还可以分别为不同分片的单元格设置背景色:

详细了解单元格公式向导的使用,请参考:单元格向导

详细了解设计工具栏“扩展”功能的使用,请参考:扩展

功能点说明

横向分片

分片报表可以在纵向上、或者横向上、或者横纵双向上同时划分成多个区域,每个区域独立扩展或者其中一个扩展区域为另一个扩展区域的子扩展区域,也可能是扩展区域和静态区域的混合。例如本示例报表中,纵向上存在上下两片独立扩展的行表头(即左表头),横向上也存在左右两片独立扩展的列表头(即上表头)。纵向、横向分片区域的数据之间通常都需要进行关联计算。

想要全面的了解分片报表中涉及的单元格扩展,可以参考:扩展模型

Sum()

D4单元格中设置的表达式为:=ds1.Sum(销售额, 产品ID in ds3.select(产品ID))

它的结果是年月为B4时、属于D3这个类别下的产品的销售额之和,可以看出,这个表达式既和上表头D3格有关联,又和左表头B4格有关联。

D5单元格中设置的表达式为:=ds1.Sum(销售额, 雇员ID==B5&&产品ID in ds3.select(产品ID))

它的结果是B5格的销售人员对属于D3这个类别下的产品的销售额之和,可以看出,这个表达式既和上表头D3格有关联,又和左表头B5格有关联。

因此,这里是利用了Sum函数可以设置条件表达式,来实现横向分片的汇总单元格数据分别与上表头和左表头的关联计算。

详细了解Sum()函数,请参考:Sum()