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