在数字化业务管理中,自增编号是管理数据的关键,广泛用于订单、合同、项目编号等场景,助力企业信息管理与业务推进。下面详细介绍自增编号的设置方法。
1、自增函数介绍:INCREAMENT()
1.1 函数基本原理与机制
INCREAMENT()函数是自增编号的核心,从 1 开始,每次执行加 1 。语法为INCREMENT([重置方式],[自增通道]),同名通道独立计数。
1.2 函数参数详解:定制编号规则的 “魔法棒”
自增函数可设置两个参数 “重置方式” & “自增通道”:
- 重置方式:决定编号 “归零” 周期。 是必填项。
- 选 “A” 时,“自增通道” 不变则编号累加;
- 选 “D”,编号每日清零重计,适用于按日周期管理业务;
- 选 “M”,每月 1 日重启编号,适用于按月周期管理业务。
- 选 “Y”,每年 1 月 1 日编号重新开始。
- “自增通道” :只要该参数变化,编号就从 1 开始。可以用数值、文本、空格、符号命名,也能选择数据的字段值用于通道命名。例如:
- “任意文本”
- {物料清单表.物料类型},可以在物料表中按照不同的物料类型(实际是基于被关联表的数据id)单独编号
- 注意:增加空格也会识别为不同通道,示例如下:
- '1'
- '01'(01且后面不加空格)
- '01 '(01后面加一个空格)
- '01 '(01后面加两个空格)
1.3 函数基础用法演示
1.3.1 函数仅设置“重置方式”
- 触发器配置
当满足触发动作(如创建数据之后)及触发条件后,在目标表格的指定字段(如 “自增编号” 字段)设置按照函数表达式赋值编号。
- 在数据中的执行结果
仅设置 “重置方式” 为默认的 “A” 时,每次触发操作,“自增编号” 字段的值会在原有基础上加 1 。
1.3.2 函数设置“重置方式+自增通道”
- 触发器配置
在前面仅设置“重置方式”的基础上,设置“重置方式+自增通道”。
- 在数据中的执行结果
当 “自增通道” 对应的内容发生变化时,编号会重新从 1 开始自增。
2、编号应用升级:5 种编号结构的配置
以下以合同管理为例,介绍不同结构编号的配置方法。
2.1 前缀+固定N位流水号
在企业的合同管理工作中,“前缀 + 固定 N 位编号” 的结构极为常见。一家科技企业的合同编号格式为 “HB000045”,其中 “HB” 是代表企业或业务板块的前缀,后面紧跟固定 6 位流水号。
这种编号结构简洁明了,易于识别和管理。其执行效果如图:
下面我们通过触发器来配置自动生成编号。
2.1.1 配置触发方式、条件
基于【合同表】创建名为 “自动生成合同编号” 的触发器,选择 “创建数据之后” 作为触发方式。
由于希望每次创建合同都能自动生成编号,所以无需设置额外的触发条件,确保每一份新合同都能及时获得唯一编号。
2.1.2 配置执行操作
- 选择执行操作
- 设置执行操作
在 “要修改的字段” 中,对 “合同编号” 字段设置函数表达式。
2.1.3 相关函数简介
设置的表达式为:CONCAT('HB',PAD(TEXT(INCREMENT('A')),6,'0','LEFT'))
- CONCAT函数:如同一个 “文本拼接大师”,能够将多个不同类型的文本、日期、数字变量或常量无缝连接在一起。例如在编号设置中,它将前缀 “HB” 与后续生成的流水号文本连接起来,形成完整的合同编号。
- PAD函数:负责将文本填充至指定长度。在这个案例中,为了确保流水号始终保持 6 位固定长度,使用 “0” 在左侧填充,保证编号格式的一致性和规范性。
- TEXT函数:它的作用是将各种类型的变量转化为文本形式,以便CONCAT函数进行连接操作。在这里,将INCREMENT自增函数生成的数值结果转化为文本,为编号的生成提供了统一的数据格式。
2.1.4 创建数据,检验触发器执行结果
点击保存,之后返回创建的表格里面,创建数据,就可以自动生成合同编号了,如下图:
2.2 变量前缀+按公司自增的固定N位流水号
在涉及众多供应商或客户的大型企业里,为精细化管理合同编号,常按不同供应商或客户单独编号。像大型零售企业与众多供应商合作,就为每个供应商的合同编号独立自增,便于区分和统计业务。
但这样可能导致流水号重复,所以要给不同供应商设置变量前缀来确保编号唯一。执行后效果如图:
下面我们通过触发器来配置自动生成编号。
2.2.1 配置触发方式、条件
与前一种编号结构类似,基于【合同表】创建 “自动生成合同编号” 触发器,选择 “创建数据之后” 触发,不设置额外触发条件,确保合同创建时编号生成的及时性。配置如下:
2.2.2 配置执行操作
- 选择执行操作
- 设置执行操作
对 “合同编号” 字段设置表达式,为方便调取不同采购商的缩写作为前缀,调整了表格结构,将 “采购方” 设置为关联字段,关联【采购商名单】,并显示出文本类型的 “缩写” 字段(即{当前数据.缩写}
) 。
本案例配置中:
- 为方便调取不同采购商的缩写作为前缀,调整了表格结构,将 “采购方” 设置为关联字段,关联【采购商名单】,并显示出文本类型的 “缩写” 字段(即{当前数据.缩写}) 。
- 在INCREMENT函数中增加 “自增通道” 为{当前数据.缩写},当 “采购方” 字段值发生变化时,自增通道随之改变,从而实现每个采购方的合同编号单独自增,满足企业对不同供应商合同的精细化管理需求。
2.3 变量前缀+时间戳+固定N位流水号
在一些对合同信息追溯要求较高的行业,如金融、法律等,“变量前缀 + 时间戳 + 固定 N 位流水号” 的编号结构备受青睐。这种编号包含了合同类型、时间等丰富信息,方便进行精准的业务追溯和数据分析。
例如,合同编号格式为 “EC20250508 - 685161010”,其中 “EC” 代表电子合同类型,“20250508” 表示合同签订的年月日,“685161” 是时间戳后 6 位,“010” 为流水号。
其结构为“合同类型代码(2 位)+ 年份(4 位)+ 月份(2 位)+ 日期(2 位)+ 时间戳后 6 位 + 流水号(3 位)”。
效果如图:
下面我们通过触发器来配置自动生成编号。
2.3.1 配置触发方式、条件
基于【合同表】创建 “合同编号:前缀 + 时间戳 + 固定 N 位流水号” 触发器,选择 “创建数据之后” 触发,不设置触发条件。配置如下:
2.3.2 配置执行操作
- 选择执行操作
- 设置执行操作
首先,设置临时变量 “合同前缀”,利用IF函数判断合同类型;
然后,对 “合同编号” 字段设置表达式进行赋值。
这一表达式综合运用多个函数,将合同类型、当前日期、时间戳信息与自增流水号有机结合,生成信息丰富、唯一且有序的合同编号。
2.3.3 相关函数简介
除了前面介绍过的函数,还有几个关键函数在这个编号结构中发挥着重要作用:
- YEAR函数:能精准提取指定日期中的年份,以 4 位数值形式返回。在编号生成中,用于获取合同创建年份,如YEAR(2025-05-08)返回 “2025”,为编号增添时间维度信息。
- MONTH/DAY函数:分别用于获取日期中的月份和日。由于这两个函数返回的月、日数值可能为个位数,所以借助PAD函数填充为 2 位,确保编号格式统一。例如MONTH(2025-05-08)返回 “5” ,经PAD函数处理后变为 “05”。
- TIMESTAMP函数:将日期转换为 UNIX 时间戳,即从 “1970 - 01 - 01 08:00:00 GMT” 起计算的秒数。在本案例中,使用RIGHT函数截取时间戳后 6 位,为编号提供精确到秒级的时间标识,增强编号的唯一性和时间追溯性。
- RIGHT函数:从文本右侧开始,按照指定的字符数截取文本内容。在编号生成中,用于截取时间戳后 6 位,获取关键时间信息。
- IF函数:根据设定的条件进行判断,条件成立时执行表达式 1,否则执行表达式 2。本案例中依据合同类型确定编号前缀,实现了编号的智能化生成。
2.4 前缀+从X号开始自增的固定N位流水号
在某些特殊业务场景下,编号可能不需要从 1 开始,而是从特定的数字 X 开始自增。
例如,一家企业承接了一个大型项目,该项目的子合同编号需要从 50 开始编号,以与其他项目进行区分。执行后效果如图:
在这种情况下,通过在INCREMENT函数后加上特定数值来实现。表达式配置如下:
这种编号方式为企业在处理特殊业务时提供了灵活的编号解决方案,确保编号体系与业务实际需求紧密契合。
通过上面的讲解,大家已经能够运用CONCAT函数和INCREMENT函数两个函数自动生成各种编号了,为你👏👏👏。