交叉扩展时,如果纵向扩展格或横向扩展格是多层扩展,就实现了多层交叉扩展。 # 报表样例 通过本示例,可以了解单元格的多层交叉扩展。 制作如下图所示的多层交叉报表: ![](/uploads/projects/7.11_online/uploads/sjjc/images/m_f676a604c939b53ab13510a5a5aa1296_r.png) # 报表特点 - 交叉报表的行表头或者列表头存在多层扩展,例如本示例报表中,行表头有年、月两层分组扩展,列表头有地区、城市两层分组扩展 - 交叉单元格跟随行列表头进行多层交叉扩展,并求出销售额汇总值 # 制作方法 ## 第一步 新建数据集 报表中的数据来自产品自带演示数据库中的“演示_订单表”和“演示_订单明细表”,使用复杂sql数据集建立数据集ds1,数据集sql语法如下:select demo_orders.订单ID,demo_orders.货主地区,demo_orders.货主城市,year(demo_orders.订购日期) as 年份,month(demo_orders.订购日期) as 月份 ,demo_orderdetails.单价*demo_orderdetails.数量 as 销售额 from demo_orders,demo_orderdetails where demo_orders.订单ID=demo_orderdetails.订单ID and demo_orders.货主地区 in ('华南','西南') and year(demo_orders.订购日期) <1998 ![](/uploads/projects/7.11_online/uploads/sjjc/images/m_90bec2aa9173cf8687dde5c23d69e15b_r.png) ## 第二步 制作表样 绘制出报表基本结构: ![](/uploads/projects/7.11_online/uploads/sjjc/images/m_012c2c2c9033d6b5746412dbecbe6c38_r.png) ## 第三步 定义单元格表达式 1)快捷公式选择【分组】,将“地区”字段拖拽至C2单元格,“城市”字段拖拽至C3单元格,“年份”字段拖拽至A4单元格,“月份”字段拖拽至B4单元格。 2)快捷公式选择【分组】--【求和】,将“销售额”字段拖拽至C4单元格。 生成的取数表达式如下: C2:`=ds1.Group(年份,false)+"年"` C3:`=ds1.Group(月份,false)+"月"` A4:`=ds1.Group(货主地区,false)` B4:`=ds1.Group(货主城市,false)` C4:`=ds1.Sum(销售额)` >计算销售额汇总值的C4单元格左侧的A4、B4单元格表达式均返回多个值,因此他们都会向下扩展。由于多层扩展时,扩展次序是从主到次的,即先扩展主格,然后扩展其附属格,再扩展其二级附属格,依此类推。因此,在纵向上,先扩展A4,然后再扩展B4,最后C4跟随B4扩展。同理,在横向上,先扩展C2,然后再扩展C3,最后C4跟随C3扩展。最终报表展现时,销售金额就是按照最后一层的“城市”和“月份”进行的汇总求和。 ## 第四步 设置横向扩展 选中C2和C3单元格,在右侧属性栏【扩展】中,设置【扩展方式】为“横向扩展”。 ![](/uploads/projects/7.11_online/uploads/sjjc/images/m_7612c105ec9f756697376184271e1718_r.png) ## 第五步 设置报表不分页 点击【报表属性】的【分页方式】,设置为“不分页”。 ![](/uploads/projects/7.11_online/uploads/sjjc/images/m_40b470482018523822c283f31d0ec870_r.png) ## 第六步 保存预览 点击预览按钮,保存并查看报表。 预览页面如下图所示: ![](/uploads/projects/7.11_online/uploads/sjjc/images/m_970fa5b5e9e9ca3aacc0e9c31efc90f1_r.png)