多源关联的交叉报表
一、报表实例
制作如下图所示的“各地产品销售额”报表,其中的数据来自三个数据集。
二、设计过程
1、引用数据集demo_duoyuan1, demo_cate, demo_product
2、编辑报表
(1)A3单元格表达式:=demo_duoyuan1.Group(地区,false,地区!=null)
(2)B3单元格表达式:=demo_duoyuan1.Group(城市,false)
(3)C2单元格表达式:=demo_product.Group(类别,false,类别!=null),显示值:demo_cate.select1(类别名称,类别ID==value())
(4)C3单元格表达式:=demo_duoyuan1.Sum(数量*单价,产品ID in demo_product.select(产品ID)),显示格式:#
(5)设置报表不分页
(6)美化外观
C3格中的表达式为:=demo_duoyuan1.Sum(数量*单价,产品ID in demo_product.select(产品ID))。其含义是:C2类别的产品在B3城市的销售额。可以看出,这个表达式既和B3格有关联,又和C2格有关联,将两个数据集联系在一起。
3、保存预览
此报表保存为“各地产品销售额”,预览结果如下:
三、小结
本节报表中的数据来自三个不同的数据集,通过C3单元格的表达式关联起来,构成多源关联的交叉报表。
本节介绍了另外一种多源报表的关联方式,即通过Sum()数据集函数,它和select1()函数的共同特点是参数中存在条件表达式,可以将不同的数据集联系到一起。下面我们做一下介绍。
四、函数说明
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字段的汇总值。
课后练习:
制作如下图所示的多源关联交叉报表: