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