常用示例
按场景选择规则,把题号换成当前问卷的实际标签。每个代码块是一种独立用法,不要把所有示例一起粘贴。
选择“需要”后显示并必填
Q1A1 是“需要发票”,Q2 是发票抬头:
if Q1A1 then show Q2
if Q1A1 then required Q2
任一选项满足就显示一组题
if OR(Q1A1,Q1A2) then show Q2~Q5
显示 Q2 至 Q5,包含两端。
隐藏题目或选项
选中 Q1A1 时隐藏题目 Q2:
if Q1A1 then hide Q2
选中 Q1A1 时隐藏选项 Q2A1,使用相反条件的 show:
if NOT(Q1A1) then show Q2A1
矩阵和题组
Q1 是矩阵选择题,第 1 行第 1 列选中时显示 Q2:
if Q1S1A1 then show Q2
在题组 1 中选中第 1 题第 1 项时,显示后面的两道题:
if QS1Q1A1 then show QS1Q2~QS1Q3
跳过题目或提前结束
if Q1A1 then branch from Q1 to Q5
如果需要跳过所有后续题目:
if Q1A2 then branch from Q1 to END
END 不会自动提交答卷,见跳转和结束。
计算金额
Q1 是数量,Q2 是单价,Q3 是合计,均为数字填空题:
assignment Q3 with ROUND(DEFAULT(Q1,0)*DEFAULT(Q2,0),2)
未填写的数值按 0 计算,合计保留两位小数。
按分数生成等级
Q1 是数字填空题,Q2 是保存等级的填空题:
assignment Q2 with IFS(Q1<60,"不合格",Q1<80,"合格","优秀")
Q1 未填写时暂不计算;填写后按分数得到等级。
数值、跨题和数量校验
Q2 是数字填空题,要求大于 0 且不超过 100:
validate Q2 with IF(DEFAULT(Q2,0)<=0,"请输入大于0的数字",IF(DEFAULT(Q2,0)>100,"不能超过100",""))
Q1、Q2 是必填的数字填空题,Q2 不能超过 Q1:
validate Q2 with IF(Q2>Q1,"不能超过上一题的数值","")
Q2 是普通多选题,至少选择两项:
validate Q2 with IF(COUNT(Q2)>=2,"","请至少选择两项")
更多用法见校验答案。
图片中包含指定关键词
Q2 是已开启通用 OCR 的上传题:
validate Q2 with IF(OR(INCLUDE("xxx",Q2OCR1),INCLUDE("yyy",Q2OCR1)),"","请上传包含xxx或yyy的图片")
识别到任意一个关键词就通过。消防证书示例、全部关键词校验、识别文字赋值和导出说明见 OCR 图片校验。
把姓名带入后续题目标题
Q1 是姓名填空题:
replace Q2 with CONCATENATE(DEFAULT(Q1,"访客"),",请填写联系方式")
未填姓名时显示“访客,请填写联系方式”。