交叉报表,体会横向扩展
一、报表实例
制作“产品销量统计表1”,汇总各地区不同产品的销售数量。
二、设计过程
第1步:新建报表
第2步:定义数据集
demo_产品销量:select 城市,地区,产品名称,销售数量 from DEMO_SALESDAY
1. 选择主表DEMO_SALESDAY
2. 勾选数据表字段:城市、地区、产品名称、销售数量
引用数据集"demo_产品销量":
第3步:编辑报表
1. 设置B1单元格的表达式:=demo_产品销量.Group(产品名称,false),设置扩展方向为横向扩展
2. 设置A2单元格的表达式:=demo_产品销量.Group(地区,false),设置扩展方向为纵向扩展
3. 设置B2单元格的表达式:=demo_产品销量.Sum(销售数量)
在快捷公式栏点选“汇总”-“求和”后,左键点住“销售数量”,拖拽到B2。
4. 在A1单元格输入:地区,产品名称,并设置单元格斜线框。
选中A1单元格,点击【编辑】-【边框设置】图标,选择“单元格斜线”:
直接在单元格里输入分类字段,字段间用逗号隔开(注意:逗号为英文输入状态的逗号)。然后将A1单元格调到一个合适的高度,否则单元格高度太低会看不到斜线效果。
5. 美化外观
美化外观包括调整表格大小、字体颜色及大小、背景色、增加边框等。
第4步:保存预览
此报表保存为“产品销量统计表1”,预览效果如下图所示:
第5步:打印导出
三、小结
1. 扩展方向
扩展方式可被设置为:默认扩展、纵向扩展、横向扩展、不可扩展。
- 默认扩展:此时该单元格会按默认方向进行扩展。如果该单元格不跟随其它单元格扩展,则默认扩展方向为纵向;如果该单元格跟随其它单元格扩展,则以其主格的扩展方向为该单元格的扩展方向。
- 纵向扩展:此时该单元格会纵向进行扩展。
- 横向扩展:此时该单元格会横向进行扩展。
- 不可扩展:此时该单元格不会扩展。如果该单元格的数据值表达式为集合表达式,在报表展现时将该集合的所有值在该单元格列出,用逗号隔开。
当单元格为可扩展单元格时,可以默认扩展方向,也可以为扩展单元格设置一个扩展方向。一个扩展格只能有一个扩展方向。
2. 默认扩展属性
运算结果为集合的函数,我们称为集合函数。集合函数包括:Group(),Select(),list(),query(),call(),to()等。
计算结果为集合的表达式称为集合表达式;计算结果为单值的表达式称为单值表达式。
(1) 单元格的表达式为单值表达式时,该单元格默认为是不可扩展的。
(2) 单元格的表达式为集合表达式时,该单元格默认为是可扩展的。
(3) 可扩展单元格不跟随其它单元格扩展时,该单元格默认为纵向扩展。
(4) 可扩展单元格跟随其它单元格横向扩展时,该单元格默认为横向扩展。
(5) 可扩展单元格跟随其它单元格纵向扩展时,该单元格默认为纵向扩展。
3. 左主格和上主格
单元格进行纵向扩展时,我们称该单元格为其附属格的左主格;单元格进行横向扩展时,我们称该单元格为其附属格的上主格。
跟随扩展可以同时基于横、纵两个方向。一个单元格可以既有左主格又有上主格。
如本例中的B2单元格,既有左主格A2,又有上主格B1。
4. 交叉扩展
同一报表中可能同时有纵向扩展格和横向扩展格,如果它们的子格有重叠部分,则这些子格就既有左主格又有上主格,在扩展时会被既向下又向右复制,形成一片矩形单元格区域,从而做到交叉扩展。
本例中B2单元格既跟随A2纵向扩展,又跟随B1横向扩展,实现交叉扩展。
四、函数说明
Sum() 数据集函数
函数说明: 从数据集当前记录行集中,检索出符合条件的记录集合,算出给定字段或表达式的汇总值
语法: datasetName.Sum(selectExp{,filterExp{,rootGroupExp}})
参数说明:
selectExp 需求和的字段或表达式
filterExp 条件表达式
rootGroupExp 是否root数据集表达式,为true,从数据集里取数,为false, 则从本单元格主格的结果集里取数
返回值: 实数
示例:
例1:ds1.Sum(quantity) 返回数据集ds1当前行集中,quantity字段的汇总值。
例2:ds1.Sum(quantity,productid=="1") 从数据集ds1当前行集中,检索出productid=="1"的记录集,求得其quantity字段的汇总值。