报表样例

通过本示例,进一步了解横向分片报表的制作方法。

在之前已经学习的报表示例【纵向分片报表】的基础上,在报表右侧增加一个横向扩展格,预览效果如下图所示: 横向分片报表 - 图1

报表特点

  • 报表纵向、横向均有分片区域,例如上图的示例报表中,除了纵向的上下两处分片区域,横向上也出现了左右两片区域。

  • 横向上右侧分片的上表头是按照产品类别进行分组,分组数据来自一个单独的数据集。

制作方法

第一步 打开报表

将上节中的“纵向分片报表”另存为“横向分片报表”,点击【修改】按钮,打开“纵向分片报表”。

第二步 定义数据集

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

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

横向分片报表 - 图2

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

横向分片报表 - 图3

第三个数据集ds3从产品自带演示数据库中的“演示产品表”和“演示产品类别表”取数,比报表示例【纵向分片报表】进一步新增的数据集,数据集sql语法如下:select demo_product.产品ID,demo_categories.类别名称 from demo_product,demo_categories where demo_categories.类别ID=demo_product.类别 横向分片报表 - 图4

第三步 定义分片3单元格表达式

D3单元格表达式为:=ds3.Group(类别名称,false)

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

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

横向分片报表 - 图5

第四步 保存预览

点击预览按钮,保存并预览报表。

预览界面: 横向分片报表 - 图6

功能点说明

横向分片

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

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函数可以设置条件表达式,来实现横向分片的汇总单元格数据分别与上表头和左表头的关联计算。