目录

交叉报表,体会横向扩展

一、报表实例

制作“产品销量统计表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字段的汇总值。