子表单自动连续编号

楼主
我是社区第94498位番薯,欢迎点我头像关注我哦~
场景:商品入库时,需要给每样商品进行编号,商品是子表单中的内容,因此需要进行子表单的编号
难点:目前文档中的子表单编号,每条数据都是固定的从1开始,没有办法使编号连续
思路:在子表单自动编号案例的基础上,使用聚合表,使序号自动从上一条数据的最大值开始累加,最终实现如图这样延续的编号。以下有两种方式:
方法一:
1.先根据子表单自动编号的案例,设置子表单序号,这个是本安利的基础设置哈~子表单自动编号
但是该案例当子表单只有一行的时候,是不触发序号公式的计算的,因此,需要在子表单的随机码字段的公式中稍作调整,将UUID(),改为:UUID(子表单.物品名称),此处的物品名称是指任意一个子表单中的必填字段

2.子表单中还需要添加其他几个辅助字段,如图:
其中默认值1为数字字段,设置该字段的默认值为1
聚合表数字是数字字段,稍后需要设置数据联动
日期文本,主要是最终的编号中需要有日期,是按日重置的编号,如果用户需要按照其他条件重置,需要自行设置其他内容哈,我这边使用的公式是:TEXT(DATE(SYSTIME(子表单.商品名称)),'yyyyMMdd'),肯定会有用户好奇为什么SYSTIME()括号里面要添加一个字段?这主要也是和上面UUID()一样的原因,用必填字段触发公式计算,从而也方便后面联动的设置
最终的编号,就用CONCATENATE将前面的各个关键字段组合在一起就好了:CONCATENATE('JDY-',子表单.日期文本,'-',RIGHT('000'+TEXT(子表单.序号+子表单.聚合表数字),3))

3.上面有一个字段叫做聚合表数字,需要设置数据联动,停名字顾名思义就是需要联动到聚合表的,聚合表如何设置呢?
数据来源就选择我们需要进行编号的子表单,行表头添加子表单中的日期文本字段,因为我们需要按照日期进行重置,所以这边添加了这个字段,如果用户需要按照其它条件重置,就可以添加其他字段,指标添加子表单中的默认值1就好了
然后对子表单中的聚合表数字字段设置数据联动:
这样这个按日重置的子表单自动编号就设置好了

石墨文档:https://shimo.im/docs/yFDTVnPyl5gPEMYx/ 《子表单自动编号(按日连续编号)》

方法二:

1. 在主表单中添加一个单行文本,设置默认值为1;
(使得子表单数字编号的值,在打开表单的那一瞬间就被触发,保证了子表单数字编号的及时和准确。)




2.添加一个单行文本为随机码集合;
设置公式:IF(LEN(单行文本)>0,CONCATENATE(子表单.随机码),CONCATENATE(子表单.随机码))




3.在子表单内添加两个单行文本,分别是序号和随机码,对这两个字段设置公式;
序号:(SEARCH(子表单.随机码,随机码集合)-1)/36+1+上条数据的子表单最后一行序号值
随机码:UUID()




4.主表内添加一个数字字段,命名为当前子表单最后一行序号值;
数字字段设置公式:子表单.序号[COUNT(子表单.序号)-1]




5.主表内再添加一个数字字段,对这个数字字段设置公式:MAPX("last",单行文本,单行文本,当前子表单最后一行序号值),注意MAPX函数的格式;



注:若单行文本,随机码 和 随机码集合字段,设置了不可见;表单属性--「不可见字段赋值」--设置为始终重新计算




分享扩散:

沙发
发表于 2020-10-12 12:48:57
这个强大实用
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

1回帖数 5关注人数 6859浏览人数
最后回复于:2020-10-12 12:48

返回顶部 返回列表