排名- 动态格间运算-报表设计高级教程
目录

排名

一、报表实例1

先看一张最简单的排名报表:

在快逸报表中,排序功能是如何实现的呢?

二、设计过程1

1、引用数据集demo_订单信息表

2、编辑报表


    (1)A2单元格表达式为:=demo_订单信息表.group(货主城市,false)

(2)B2单元格表达式为:=demo_订单信息表.sum(单价*数量)

(3)C2单元格表达式为:=count(B2[`0]{B2>$B2})+1

该表达式是统计所有订单总价大于当前单元格订单总价的城市个数,然后加1,从而实现对订单总价排名的效果。

3、保存预览

此报表保存为“排名报表1”,预览结果如下:

通常我们在做这种报表的时候是先将订单总价做一个排序,然后再将订单总价编号,将编号做为排名。而快逸报表在这里引入了根坐标表示法,可以轻松实现排序功能。

三、报表实例2

下面我们把这个排名报表复杂化,看一下多级的排名如何实现,也就是下图所示的效果: 

此报表保存为“排名报表2”,它在上一个报表的基础上增加了货主地区分组,统计排名时不光统计总的排名,还要统计每一地区内的排名,该如何做呢?

四、设计要点2


    (1)E2单元格表达式:=count(C2[`0]{C2>$C2})+1

(2)D2单元格表达式:=count(C2[A2]{C2>$C2})+1

该表达式是统计A2单元格扩展后,某一区域内的订单总价大于当前单元格订单总价的城市个数,然后加1,从而实现对订单总价多级排名的效果。

比较D2和E2单元格的表达式,可以看到它们的区别仅仅在于扩展格范围的不同,D2单元格计算的是A2单元格扩展范围内的排名,所以为区内排名;而E2单元格计算的是根格下的扩展区域内的排名,所以为总价排名。

五、小结  

1. 根格

报表左上角的灰色单元格称为报表首格,也称为根格。它用于存储描述整个报表的属性。如下图所示:

根格(报表首格)的书写规则为:`0 ,这里要强调的是 `0而不是‘0。

2. 根坐标表示法

报表中的扩展单元格是逐级扩展的,有主格、附属格的概念,呈树状的结构,而根格则是这棵树的根。如下图所示:

可以看出,单元格逐级扩展后实际形成了以根格(报表首格)为根的一棵树,报表中存在多片独立扩展,那么根上就长出多棵树,每一个可主动扩展的格子都是树上的一个节点,最末一级的不可扩展格则是节点上的叶子。而层次坐标相当于描述任意一个节点或者叶子到达根的路径。
    由于根格是客观存在的,而树上的所有节点都是由根格发展而来,因此前面介绍的层次坐标忽略了根节点的描述,下面我们加上根坐标的描述,把层次坐标重新表示一下:

所以,完整的层次坐标是从根上开始的,而`0 则代表根坐标。