如何利用子表单进行排班(循环编号)?

楼主
我是社区第352185位番薯,欢迎点我头像关注我哦~
一、案例说明

1.问题背景
排班,子表单需提交每周的排班人员,每位人员值班2天,共4个人员轮循

2.解决思路
  • 给值班人员编号,分别对应编号1,2,3,4
  • 在子表单实现11223344的编号循环,以编号进行数据联动,带出对应的值班人员,实现效果如下图


3.外链

4.应用安装链接
https://jiandaoyun.com/a/5cb872216f94ba43ccfa3d02  (子表单循环编号分组内)


二、设计说明

1.值班人员编号


2.子表单循环编号排班


序号:利用公式生成连续子表单编号 ,(SEARCH(子表单.随机码,辅助2)-1)/36+1+上条数据子表单最后一行序号值
随机码:辅助编号,UUID()
判断1:看子表单的序号与重复频率 2 的关系(场景要求每位人员值班2天,重复频率即为2)
    IF(MOD(子表单.序号,2)==0,INT(子表单.序号/2),INT(子表单.序号/2)+1)
判断2:再看对重复频率2判断之后,该编号与人数4的关系(循环格式是11223344,每四个人以轮循,则对4求余)
     IFS(MOD(子表单.判断1,4)==0,4,MOD(子表单.判断1,4)==1,1,MOD(子表单.判断1,4)==2,2,MOD(子表单.判断1,4)==3,3)
值班人:设置数据联动


辅助1:设置默认值,辅助子表单连续编号
辅助2:辅助子表单连续编号,获取随机码集合,CONCATENATE(子表单.随机码)
当前子表单最后一行序号值:子表单.序号[COUNT(子表单.序号)-1]
上条数据子表单最后一行序号值:MAPX("last",辅助1,辅助1,当前子表单最后一行序号值)




编辑于 2021-7-9 14:01  
分享扩散:

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

0回帖数 1关注人数 3312浏览人数
最后回复于:2021-7-9 14:01

返回顶部 返回列表