交叉报表
教学视频
目标
要实现的效果如下图所示:
这个交叉表中,使用了示例数据库中的orders表,将这个表中的产品类型作为横向维度,产品所在区域作为纵向维度制作了一张交叉报表。
实现
1.创建数据集
创建一个连接到示例数据库的数据源,取其中的orders表作为数据集,报表中保留五行六列,效果如下图:
2.绑定字段到单元格
将A1、A2、A3、B1、B2、B3合并为一个单元格,将C1、D1、E1、F1四个单元格合并为一个单元格,将C2、D2、E2单元格合并为一个单元格,将F2、F3单元格合并为一个单元格,将A4、A5单元格合并为一个单元格,并将所有单元格边线设置为黑色。
将deliver_type、product_category字段分别绑定到C1和C2单元格中,并将它们的迭代方向改为向右迭代;area字段绑定到A4单元格,province字段绑定到B4单元格;将sale和amount字段分别绑定到C4和D4单元格,设置它们的聚合方式为求和,并将它们的上父格设置为C2,绑定好字段的单元格效果如下图所示:
接下来在C3、D3、E3、F2、B5分别填入字符单价、数量、总价、小计以及合计:,并设置好单元格的颜色,效果如下图:
4.设置表达式
选中E4单元格,在其中输入如下表达式:
if(C4 && D4){
return C4*D4;
}
上面的表达式中,首先判断C4和D4单元格是不是都有值,如果是,那么就返回C4与D4单元格值的乘积。
之所以先判断,是因为C4和D4单元格的值可能为空。
选中C5、D5和E5单元格,分别输入表达式SUM(C4)、SUM(D4)和SUM(E4)。
选中F4和F5单元格,分别输入表达式SUM(E4)和SUM(F4),同时为了能正确计算F4单元格表达式,我们还需要配置F4单元格的左父格为B4。
最后配置好各个单元格的颜色,并在A1单元格添加斜表头,并设置好行、列锁定及前三行为重复表头行,设置好的效果如下图:
保存预览,就可以看到我们想要的效果。