考场预约案例
1. 简介
1.1 场景简介
在考场预约时,有多个考场,每个考场都有最多人数限制,报名时,如第一考场没报满,则必须选第一考场;如第一个考场的人数满了后,如果第二考场还有空位,可以选第二考场,以此类推。
1.2 解决方法
通过聚合表计算每个考场的剩余座位,将剩余位置通过数据联动调用到预约表中,通过子表序号,显示出最小序号对应的考点。
1.3 预期效果
每次提交报名表时,剩余位置都会对应减少,当本考场剩余位置小于等于 0 时,则自动预约到下一考场。(子表单在实际应用中可以设置为不可见)
2. 操作步骤
2.1 配置基础表单
注:基础表单部分可以直接安装 考场预约案例 模板,模板包含了基础表单的字段配置,安装后可直接从【2.2 聚合表设置】的步骤进行设置。
1)首先创建一个「考场基础表」,表单中录入考场名称及其最大容纳人数信息,其中最大容纳人数字段选用 数字字段。
2)创建「预约报名表」,预约报名人数选用 数字字段,设置默认值为 1。
3)「预约报名表」中添加一个子表单,设置默认值,从小到大记录序号和考场名称。
注:剩余字段在配置完聚合表后再设置。
2.2 配置聚合表
1)进入「应用后台 >> 聚合表」,点击右上角的「新建聚合表」后,将自动进入设置页面。
2)添加如下表单作为数据来源:
- 考场基础表
- 考试预约报名表
3)点击「配置维度」,将两表中用于录入考场的字段添加为维度:
4)添加指标,用于计算每个考场剩余可报名的人数。设置名称为「剩余可报名人数」,并编辑公式如下:
SUM (考场基础表.最大容纳人数) -SUM (考试预约报名表.预约报名人数)
2.3 表单关联设置
1)对「考试预约报名表」中子表单的剩余位置设置数据联动,联动表单为聚合表,当聚合表的考场等于子表单的考场时,剩余位置联动出聚合表中的剩余可报名人数。
2)子表单中的序号辅助字段设置公式为:
IF(子表单.剩余位置>0,子表单.序号,"")
表示当剩余位置的数字大于 0 时,则该字段显示对应考场的序号,否则为空。
3)「考试预约报名表」中的最小考场序号设置公式为:
MIN(子表单.序号辅助)
表示最小考场序号的值为序号辅助的最小值。
4)对子表单中的最小考场字段设置公式为:
IF(AND(子表单.序号辅助==最小考场序号,ISEMPTY(子表单.考场)==0),子表单.考场,"")
表示只有当本行序号辅助字段的值等于最小考场序号,且子表单的考场名称不为空时,最小考场的显示为当前行的考场名称,否则为空。
5)「考试预约报名表」中的预约考场字段设置公式为:
CONCATENATE(子表单.最小考场)
显示计算出的最小考场。
最后将子表单和最小考场序号字段设置为不可见,即可完成报名表的设置。
3. 效果演示
如第一考场最多容纳 10 人,前 10 人提交报名表的预约考场都为第一考场,当 10 个人提交报名表后,第 11 个人提交报名表则显示预约考场为第二考场。