一、案例说明
1.问题背景
排班,子表单需提交每周的排班人员,每位人员值班2天,共4个人员轮循
2.解决思路
- 给值班人员编号,分别对应编号1,2,3,4
- 在子表单实现11223344的编号循环,以编号进行数据联动,带出对应的值班人员,实现效果如下图
3.外链
表单外链:https://stxtuc7g04.jiandaoyun.com/f/6062ab556b7b68000785941f
文档外链:https://t6ixa9nyl6.jiandaoyun.com/sharedoc/4AQTiIQfuXPO3mbFMTpnUU
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,当前子表单最后一行序号值) |