最新历史版本 :每页序号重新开始 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

1. 概述编辑

1.1 应用场景

直接使用 seq( ) 的方法,分页预览会使序号承接上一页的序号继续递增。

例如,第一页显示了 55 行,第二页序号直接从 56 开始。如下图所示:

6.jpg

希望分页预览报表时,每一页的序号计数重新从 1 开始计算。如下图所示:

动图1.gif

1.2 实现思路

注:本方案仅适用于分页预览。

1)原有序号虽然是递增的,但是保证了每一行都是唯一性的。

2)在原有序号的基础,判断当前序号在本页内的位置,每页即可重新得到从 1 开始的序号。

2. 示例编辑

2.1 新建模板

新建一张普通报表。如下图所示:

新建普通报表.jpg

2.2 准备数据

新建数据库查询 ds1 ,输入 SQL 查询语句:SELECT * FROM 订单明细 。如下图所示:

6.png

2.3 设计报表

1)C1~H1 单元格输入文本,C2~H2 单元格拖入相应的数据列,设计报表样式。如下图所示:

7.png

2)批量选中 C2~H2 单元格,点击右侧的「单元格元素」,数据设置为「列表」。如下图所示:

8.png

3)A2 单元格插入公式为:seq()A2 单元格的左父格自定义为 C2 单元格。如下图所示:

9.png

4) B1 单元格输入文本,B2 单元格插入公式:if(COUNT({A2})=1,1,inarray(A2,{A2})),设计报表样式。如下图所示:

注:当一页只有一行时,{A2} 获取到的是一个值,不会当成数组来处理,而 inarray 第二个参数必须是数组,所以需要 if 条件判断。

公式说明如下表所示:

公式
说明
{A2} 当前页中 A2 单元格扩展出来的所有值
COUNT({A2})当前页中 A2 单元格扩展出来的所有值的个数
inarray(A2,{A2})返回当前 A2 单元格的值在当前页中 A2 单元格扩展出来的所有值的数组中的位置
if(COUNT({A2})=1,1,inarray(A2,{A2}))如果当前页中 A2 单元格只扩展出一个值,返回1;否则返回当前 A2 单元格的值在当前页中 A2 单元格扩展出来的所有值的数组中的位置

10.png

5)B2 单元格的左父格自定义为 C2 单元格。如下图所示:

11.png

6)设置第一行重复标题行。如下图所示:

12.png

7)隐藏 A 列。如下图所示:

13.png

2.4 效果预览

1)PC 端

保存模板,选择「分页预览」,效果如下图所示:

动图1.gif

2)移动端

APP 效果与 HTML5 效果相同,如下图所示:

移动端动图.gif

3. 模板下载编辑

点击下载已完成模板:每页序号重新开始.cpt