流水号_帮助文档_流水号规则

两种实现方法:自动生成固定格式的流水号(前缀+日期+流水号)

表单设计中经常涉及流水号的制作问题,简道云提供了一个递增的函数RECNO()来满足该需求。

需要说明的是,RECNO()函数的触发机制是:每一次打开表单,都会累计1。就算是打开表单后什么都没填关闭了,这个数字也是永久性加1的,因此会造成跳号的问题。


下面就分别介绍下这两种编号的实现方法,大家可以根据需要自行选择。

方法1:RECNO()

流水号的格式为:字母-年月日-4位流水号,如JDY-

用到的函数:

  • RECNO():累加器,从1开始表单每打开一次,累计加1
  • CONCATENATE(A,B,C):把ABC连接起来
  • RIGHT(‘’+A,4):将A补足为4位数,如补足为,依然不变位。补位的0的个数与需要几位数保持一致,如需要补足为6位数,则公式修改为RIGHT(‘’+A,6)
  • TEXT(TODAY(),‘yyyyMMdd’):用文本格式表示今天的日期,如

这个流水号分成3段,第一段是字母,第二段是日期,第三段是递增序列。前两段不多说了,通过前几个案例的学习,相信大家已经完全掌握。重点讲解第三段。

RECNO()产生的序号是1,2,3,4,5,…,9,,,…,,,…,这样的数字,为了统一位数为4位流水号,利用RIGHT函数补足,RIGHT(‘’+RECNO(),4)。就是在RECNO()产生的数字前面加4个0,然后取这个生成的字符串的后4位即可。变成;变成,变成。 如果需要6位数,公式写成RIGHT(‘’+RECNO(),6)

所以整体函数如下:CONCATENATE(&#;JDY-&#;,TEXT(TODAY(),&#;yyyyMMdd&#;),&#;-&#;,RIGHT(&#;&#;+RECNO(),4))

方法2:MAPX()

用到的函数:

  • CONCATENATE(A,B,C):把ABC连接起来
  • RIGHT(‘’+A,4):将A补足为4位数,如补足为,依然不变位。补位的0的个数与需要几位数保持一致,如需要补足为6位数,则公式修改为RIGHT(‘’+A,6)
  • TEXT(TODAY(),‘yyyyMMdd’):用文本格式表示今天的日期,如
  • MAPX(‘LAST’,A,B,C):在B中检索A的值,并返回对应的最后一个C值
  • VALUE():将字符串转变为数字格式

(1)新建单行文本字段,命名为“重置条件-按日重置”,设置不可见,表单属性-不可见字段赋值-始终重新计算,对其写公式:TEXT(TODAY(),&#;yyyyMMdd&#;)

(2)新建单行文本字段,命名为“编号”,设置不可编辑,勾选不允许重复值,对其写公式。

思路:取出当天的最后一个编号的后四位,转换成数字,再加上1,得到新的号码,然后再补足4位数,并和前面的英文、日期连接起来 ↓↓↓

① 取出上一个编号:MAPX(“last”,重置条件-按日重置,重置条件-按日重置,编号)

② 取出上一个编号的最右四位数:RIGHT(MAPX(“last”,重置条件-按日重置,重置条件-按日重置,编号),4)

③ 取出上一个编号的最右四位数,转换成数字并加1,得到新的号码:VALUE(RIGHT(MAPX(“last”,重置条件-按日重置,重置条件-按日重置,编号),4))+1

④ 将新的号码补足为4位数:RIGHT(“”+(VALUE(RIGHT(MAPX(“last”,重置条件-按日重置,重置条件-按日重置,编号),4))+1),4)

⑤ 把英文,日期和新的号码连接起来

即最终的公式为:CONCATENATE(&#;JDY-&#;,重置条件-按日重置,&#;-&#;,RIGHT(&#;&#;+(VALUE(RIGHT(MAPX(&#;last&#;,重置条件-按日重置,重置条件-按日重置,编号),4))+1),4))

(3)案例

如,在订单表里自动生成订单编号。

订单编号:单行文本

订单日期:日期时间

日期重置辅助:单行文本(字段权限:不可见)

效果演示:


本教程来自简道云-帮助中心,进入查看更多。

原文链接:,转发请注明来源!