高级逻辑常用示例
下面的规则可以复制到 高级逻辑 编辑器,再把标签替换为右侧预览显示的实际标签。每次先测试一条,确认无误后再组合。
显示和隐藏题目
| 效果 | 示例 |
|---|
| 选择 Q1A1 时显示 Q2 | if Q1A1 then show Q2 |
| 选择 Q1A1 时隐藏 Q2 | if Q1A1 then hide Q2 |
| 显示多个问题 | if Q1A1 then show Q2,Q3,Q4 |
| 显示连续问题 | if Q1A1 then show Q2~Q5 |
| 两个条件全部满足 | if AND(Q1A1,Q2A1) then show Q3 |
| 任意条件满足 | if OR(Q1A1,Q1A2) then show Q3 |
选项和矩阵行
| 效果 | 示例 |
|---|
| 条件成立时显示 Q2A1 | if Q1A1 then show Q2A1 |
| 显示 Q2 的前 4 个选项 | if Q1A1 then show Q2A1~Q2A4 |
| 矩阵单元格选中时显示 Q2 | if Q1S1A1 then show Q2 |
| 显示连续矩阵行 | if Q1A1 then show Q2S1~Q2S4 |
当前版本不要用 hide 控制选项或矩阵行。需要按相反条件隐藏时,改写 show 条件,或使用基础规则的 显示选项。
动态必填
| 效果 | 示例 |
|---|
| 选择 Q1A1 时 Q2 必填 | if Q1A1 then required Q2 |
| 两个条件满足时 Q3 必填 | if AND(Q1A1,Q2>18) then required Q3 |
跳转和结束
| 效果 | 示例 |
|---|
| 从 Q1 跳到 Q5 | if Q1A1 then branch from Q1 to Q5 |
| 从 Q1 直接结束 | if Q1A2 then branch from Q1 to END |
| 两个条件满足才跳转 | if AND(Q1A1,Q2>18) then branch from Q2 to Q6 |
赋值和计算
| 效果 | 示例 |
|---|
| Q3 等于 Q1 与 Q2 的和 | assignment Q3 with SUM(Q1,Q2) |
| Q3 输出合格或不合格 | assignment Q3 with IF(Q1>=60,"合格","不合格") |
| Q3 输出分数等级 | assignment Q3 with IFS(Q1<60,"不合格",Q1<80,"合格",TRUE(),"优秀") |
| Q1A1 为空时使用默认值 | `assignment Q3 with Q1A1 |
校验和标题替换
| 效果 | 示例 |
|---|
| Q2 不能超过 100 | validate Q2 with IF(Q2>100,"不能超过100","") |
| Q2 必须填写正数 | validate Q2 with IF(Q2>0,"","请输入大于0的数字") |
| 仅在 Q1A1 选中时校验 | validate Q2 with IF(AND(Q1A1,Q2>100),"不能超过100","") |
| 标题带入姓名 | replace Q2 with CONCATENATE(Q1,",请填写你的联系方式") |
| 效果 | 示例 |
|---|
| 题组内选中选项后显示另一题 | if QS1Q1A1 then show QS1Q2 |
| 显示题组内连续题 | if Q1A1 then show QS1Q1~QS1Q3 |
| 从题组内问题跳到后续题 | if QS1Q1A1 then branch from QS1Q1 to QS1Q3 |
保存前检查
- 标签都来自当前右侧预览
- 范围两端都写了完整标签
- DSL 关键字为小写,公式函数和括号完整
- 编辑器没有红色错误行
- 条件成立和不成立两种状态都已预览
- 已点击 保存