21. 序号
很多报表应用场景需要在记录或者字段标识中展示序号,这对于以单元格扩展来形成报表同时填入数据来说,将是一件容易见的事,下面介绍两种最常用到的序号情形。
单组序号
整体排序说的是单纯的为所有字段,或所有记录排出序号,不存在不同分组下令起排序的情形。
以报表样例库典型报表中的序号报表为例,序号报表定义如下图所示:
取得序号有两种方式
- SeqNum()公式
公式会返回当前单元格在复制出的所有单元格中的序号,序号从1开始。需要与依赖关系一起使用。 IndexOf(collection_value, object)公式
collection_value为报表所支持的集合表达式,object为不限类型的对象,公式返回object在collection_value集合中的序号,要注意的是所返回序号,第一个元素的序号是0,第二个元素的序号是1,依此类推,所以在应用其取得排序序号情形下,通常要做加1处理。在此用较为简单的SeqNum()公式来实现。在web端查看,序号报表的行列分别加入了以上两种情形的序号,如下图所示:
各组内序号
在各组内排序的情形,即在不同分组之间要起新的排序。这种情形下,通常用offset公式能够更简易的解决,以报表样例库典型报表的多层交叉汇总表为例,来介绍如何实现对各地区的用户前面添加序号。
1.报表定义如下图所示:
2.定义客户列,在D4单元格,定义要展现的客户和前面的序号,我们可以定义为:=offset('b6')+1 或者 =indexof(cell('C4',{&get( 'ds1', 'REGION')=b4}),C4)+1 两种方法,本例采用更简易的offset公式定义方法来进行实现,如下图所示:
3.在web端查看,报表展现结果如下图所示: