跳到主要内容

表格序号如何自动生成?

场景/描述

关于如何实现表单内表格序号自动生成,每增加一行,就自动生成一个序号,序号按顺序自增,呈现效果如1.2.3.4……该形式。

注:如果是自定义打印中需要打印表格序号,那么可以直接在自定义模版中配置,参照文章:https://exiao.yuque.com/docs/share/86edaa8b-d6b2-4ab1-8c45-a004c59e3f39?# 《Word打印模板--表格行如何设置》

配置过程

方式一. 公式配置(推荐隐藏后进行重计算)

实现逻辑:通过表格内字段自动生成随机码,再整合到随机码集合,利用SEARCH函数来查找随机码在随机码集合中所处的位置,由于随机码固定为36位,那么查询到的位置-1,再除以36,再+1,即可以得到序号。

缺点:实际过程中由于随机码字符过程,所以可能很快就超过多行文字的5000的字符的限制。所以可以采用:

如何解决表格行序号生成方案中,多行文本字符限制问题​

表格·随机码自动生成:RDID()

随机码集合自动生成:CONCAT(表格·随机码)

表格·产品编号自动生成:(SEARCH(表格·随机码,随机码集合)-1)/36+1

image.png

方式二. 代码块配置

var table = qf_field.{表格$$753377AE$$};
var date = new Date();
var year = date.getFullYear();
var month = date.getMonth() + 1;
var day = date.getDate();
month = (month > 9 ? month : "0" + month);
day = ( day >9 ? day : "0" + day);
var today = year + month + day;
for (var i = 0; i < table.length; i++ ){
table[i].序号 = (i+1);
if(i > 98){
table[i].编号 = today + (i+1);
}else if(i > 8){
table[i].编号 = today + "0" +(i+1);
}else{
table[i].编号 = today + "00" +(i+1);
}
}
qf_output={表格: table}

注意:qf_field.{表格$$753377AE$$}请手动替换为应用内表格字段

image.png

image.png

image.png

实现效果

公式配置效果:https://qingflow.com/f/03fce1b5

image.png

代码块配置效果:https://qingflow.com/f/c6516616

image.png