李。Ray 发表于 2023-12-4 16:13:02

自动生成连续编号

痛点:1、本地版自动编号,如果不勾选保存后生成的话,新建打开关闭后,再新建的表单编号会自动增加,不连续;
2、勾选保存后生成的话不能直观看见表单编号,要保存后才能看见;
3、云端版本自动生成的编号不连续。
启发:由论坛分享获得启发:分享:同一日期中的多个记录需要顺序号的方法-云表数字化管理社区 - Powered by Discuz! (iyunbiao.com)

先看效果:选择不同的表单类别:出货或者退货后,表单编号发生变化。
当天有表单时序号+1

当天无表单时从01号开始

设置数据接口:表单编号最大值

设置填表公式:值变化——表单类别值变化(根据自身表单设置)
注意:值变化需要值发生变化才会执行公式,所以在模板中先设置好默认值。然后再用填表公式新建打开表单后赋值一个新值。
赋值公式:
IF(   日期( 文本转数值(取子串(数据源.表单编号,3,4)) , 文本转数值(取子串(数据源.表单编号,7,2)) , 文本转数值(取子串(数据源.表单编号,9,2)) ) = 系统变量.当前日期   , 取左子串( 数据源.表单编号 ,10 )+   IF(取右子串(数据源.表单编号,2)   >=9 , 数值转文本(文本转数值( 取右子串(数据源.表单编号,2 ) )+ 1),"0" +数值转文本(文本转数值( 取右子串(数据源.表单编号,2 ) )+ 1)),    汉字首字母(数据源.表单类别,true) + 年份值( 系统变量.当前日期 )+   IF(月份值( 系统变量.当前日期 ) >= 10,月份值( 系统变量.当前日期 ), "0"+ 月份值( 系统变量.当前日期 ))   +   IF(日期值( 系统变量.当前日期 ) >= 10,日期值( 系统变量.当前日期 ), "0"+ 日期值( 系统变量.当前日期 ))   +"01"   )
特别提示:在执行条件中添加“明细数据=常量.空”时,才执行公式,这样表单中有数据并且保存后,再打开这个公式就不执行了。







双飞剑 发表于 2023-12-5 03:14:58

分段理解:

IF
(
日期( 文本转数值(取子串(数据源.表单编号,3,4)) , 文本转数值(取子串(数据源.表单编号,7,2)) , 文本转数值(取子串(数据源.表单编号,9,2)) ) = 系统变量.当前日期   ,

取左子串( 数据源.表单编号 ,10 )+ IF(取右子串(数据源.表单编号,2)   >=9 , 数值转文本(文本转数值( 取右子串(数据源.表单编号,2 ) )+ 1),"0" +数值转文本(文本转数值( 取右子串(数据源.表单编号,2 ) )+ 1)),   

汉字首字母(数据源.表单类别,true) + 年份值( 系统变量.当前日期 )+   IF(月份值( 系统变量.当前日期 ) >= 10,月份值( 系统变量.当前日期 ), "0"+ 月份值( 系统变量.当前日期 ))   +   IF(日期值( 系统变量.当前日期 ) >= 10,日期值( 系统变量.当前日期 ), "0"+ 日期值( 系统变量.当前日期 ))   +"01"   
)

李根 发表于 2023-12-5 09:37:03

点赞

长宁 发表于 2023-12-22 10:19:26

页: [1]
查看完整版本: 自动生成连续编号