选手介绍
企业名称:枣强县第四中学
选手简介:李立民,学校信息处主任,结识简道云以来,痴迷表单搭建不能自拔,助力学校及教育局信息化发展。
业务背景
假期开学前,1700余名学生在家,9月1日开学。此表单旨在高效解决1000多名住宿的学生自由选择开学后需要住到哪个宿舍/哪张床🛏️的问题。
使用对象为学校的学生,都已经通过钉钉,进入到了简道云通讯录。
设计思路
学校会根据每班住宿的男/女生数,分别预分几个足够的宿舍,学生只能在此范围内进行选择。
学生进入选宿舍界面,直接选择宿舍号/床位号,提交即可将此位置固定到自己名下。其他学生再打开表单选择时,不能再出现此位置。
根据上述要求,在反复考虑/改造后,我用三个表单,一个智能助手基本解决了问题。
表单1:学生信息表
此表为学生基本信息表单,有学生成员控件/年级/班级/姓名/性别/就读方式等字段。
表单2:宿舍库
由宿舍管理员,根据每班男/女生住校生数,合理分配若干个宿舍号。
根据分配的宿舍号,整理成如下表格,导入简道云。其中学生组别由年级/班级/性别合并而成,床位号详情由学生组别/宿舍号/床位号合并而成。
因每宿舍8个床位,可学生数不一定是8的倍数,所以肯定会有剩余的床位,下图就是上次学生选择床位号后剩余床位的截图。
表单3:学生选宿舍
学生进入此表单后,会自动获取成员控件,并根据成员控件从学生信息中联动出学生基本信息,学生依次点击选择宿舍号/床位号,仅会出现有空位的宿舍号/床位号供选择,然后直接提交即可。(图中学生成员控件,为方便截图,设置成了可以选择,实际是自动获取学生成员,且不允许编辑)
技巧1:如何设置实现可以选择自己可选的床位/宿舍号?
在表单中,设置不可见字段学生组别,由年级/班级/性别合并得到。
宿舍号处根据学生组别,从宿舍库中依次联动出宿舍号/床位号。
技巧2:已经选择了的床位,是如何实现隐藏的?
如下图,在本表单中,添加床位号详情字段,由学生组别+宿舍号+床位号组成。
同时设置一个宿舍库更新智能助手,当学生选宿舍新增数据后,将床位号详情对应的学生组别置空。
学生从学生选宿舍表单进入后,即筛选不到此床位号,实现了学生占用后其他学生不能再次选择的目的。
要点3:如何避免并发的问题?(非完美主义者可以忽略)
上述设置基本满足了我们的需求,如考虑极端情况,同一组别的两名学生同时进入表单,选择了同一张床,也可以先后提交,这很明显不符合要求,我们可以通过聚合表进行限制。
在宿舍库中,为每张床增加数字字段入库辅助,设置默认值为1。
在学生选宿舍中,增加数字字段支出辅助,设置默认值为1。
聚合表设置如下图:
指标处的库存公式为宿舍库中的入库辅助减学生选宿舍中的支出辅助。
在提交校验处设置库存等于0。开始选宿舍前,所有床位指标均为1,均可以被选择/提交。当某床位被占用后,指标变为0,则不允许提交,也就解决了极端情况下的数据并发问题。
大家如有好的改进建议或相关问题,也可以给我评论/留言,我们一起努力💪,让简道云更好地服务大家。