动作说明
显示:show
if Q1A1 then show Q2
if Q1A1 then show Q2,Q3,Q4
if Q1A1 then show Q2A1~Q2A4
条件成立时显示目标,不成立时隐藏。可用于题目、题组、选项和矩阵行。
同一个目标满足任意条件就显示,应合成 OR,不要拆成多条显示规则:
if OR(Q1A1,Q1A2) then show Q2
隐藏:hide
if Q1A1 then hide Q2
条件成立时隐藏题目,不成立时恢复。若其他规则也要求隐藏,该题仍可能隐藏。
当前 hide 用于题目或题组。隐藏选项、矩阵行时,改用相反条件的 show:
if NOT(Q1A1) then show Q2A1
上例在 Q1A1 选中时隐藏 Q2A1。
动态必填:required
if Q1A1 then required Q2
条件成立时必填,不成立时取消必填。始终必填的题直接在题目设置中开启必填。
这个动作只改变必填状态,不负责显示题目。需要同时控制显示时,再配置 show。
自动赋值:assignment
假设 Q1、Q2 是数字填空题,Q3 是保存合计的填空题:
assignment Q3 with SUM(DEFAULT(Q1,0),DEFAULT(Q2,0))
来源答案变化时,Q3 会重新计算。普通填空题可直接写题号;多项填空需要指定某一空。
另一个例子:Q1 是单选题,Q1A1 表示“需要发票”,Q3 是多项填空题,要填写第 2 个空:
assignment Q3A2 with IF(Q1A1,"需要发票","无需发票")
目标题型应能保存公式结果。自动计算的字段可设置为只读,避免手工修改后又被公式覆盖。不要让目标题反过来参与自己的赋值公式。
答案校验:validate
validate Q2 with IF(DEFAULT(Q2,0)>100,"不能超过100","")
Q2 是数字填空题。返回 "" 表示通过,返回文字则在 Q2 显示错误并参与表单校验;它不会修改答案。
校验可以引用其他题目,也可以读取 OCR 文字。完整用法见校验答案和 OCR 图片校验。
动态标题:replace
Q1 是姓名填空题:
replace Q2 with CONCATENATE("你好,",DEFAULT(Q1,"访客"),",请填写联系方式")
来源答案变化时,标题会更新。公式应给出非空标题;返回空字符串不会自动恢复原题目标题。
若 Q1 是身份单选题,Q1A1 表示“企业”,可明确给出两种标题:
replace Q2 with IF(Q1A1,"请填写公司名称","请填写姓名")
跳转:branch
if Q1A1 then branch from Q1 to Q5
跳过 Q1 和 Q5 之间的题目,保留起点和终点。详见跳转和结束。