Skip to main content

DSL 简介

什么是 DSL?

DSL(Domain Specific Language,领域特定语言)是一种专为问卷和考试系统打造的逻辑表达语言。通过简洁直观的文本配置,用户可以轻松实现显示隐藏、分支跳转、自动赋值、必填校验、内容替换、选项互斥等复杂问卷逻辑——远超普通可视化配置器的表达能力。


我们的 DSL 有多强?

  • 更强表达力:支持多题、多选项组合逻辑,任意嵌套,极限复杂场景轻松拿捏
  • 真正“响应式”:任何涉及题目答案的变化,所有 DSL 规则均可自动实时触发,无需刷新或手动重算
  • 灵活“组合拳”:显示隐藏、分支跳转、自动赋值、动态校验、内容替换、选项互斥……所有高级功能一个都不少,且可随意组合
  • 超强公式库:深度兼容 Formulajs,数学运算、文本处理、逻辑判断一网打尽
  • 开发者友好:类自然语言书写,无需学习曲线,懂 Excel 就会写 DSL
  • 无惧出错:规则出错自动容错跳过,不影响正常作答

比主流问卷平台更强大 许多传统问卷工具仅支持简单的显示/隐藏、跳转等基础逻辑,遇到多条件联动、批量赋值、公式校验等场景就力不从心。而我们的 DSL 支持复杂嵌套、批量处理、高级公式与全流程响应式执行,让你轻松应对所有“变态”逻辑需求。


示例

示例说明
if Q1A1 then show Q2如果选择 Q1 选项 1,则显示 Q2
if Q1A1 then show Q2A1如果选择 Q1 选项 1,则显示 Q2 选项 1
if AND(Q1A1, Q2A1) then show Q3如果 Q1 选项 1 和 Q2 选项 1 都为真,则显示 Q3
if AND(OR(Q1A1, Q1A2), Q2A1) then show Q2,Q3如果 Q1 选项 1 或选项 2 为真且 Q2 选项 1 为真,则显示 Q2 与 Q3
if Q1A1 then hide Q2如果选择 Q1 选项 1,则隐藏 Q2
if Q1A1 then branch from Q1 to Q6如果选择 Q1 选项 1,则从 Q1 跳转到 Q6
if Q1A1 then branch from Q1 to END如果选择 Q1 选项 1,则从 Q1 跳转到结束
if Q1A1 then required Q2如果选择 Q1 选项 1,则 Q2 为必填
if Q1A1 then assignment Q2 with IFS(Q1A1, 2, Q1A2, 3)如果选择 Q1 选项 1,则设置 Q2 为 2;如果 Q1A2,则为 3(with 后面是公式表达式)
assignment Q2 with SUM(Q1, 20)直接设置 Q2 为 Q1 与 20 之和(with 后面是公式表达式)
replace Q2 with CONCATENATE("新", Q1)直接将 Q2 题目标题替换为"新"加 Q1 内容(with 后面是公式表达式)
if Q1A1 then validate Q2 with IF(Q1A1>10, "不能大于 10", "")如果选择 Q1A1 且大于 10,Q2 校验不通过并提示"不能大于 10";返回空字符串则校验通过(with 后面是公式表达式)
validate Q2 with IF(Q1A1>10, "不能大于 10", "")Q2 校验,返回空字符串表示通过,返回其他内容作为提示(with 后面是公式表达式)
mutex Q1A1 deselect Q1A6配置题 1 选项 1 与选项 6 为互斥关系

为什么要用 DSL?

  • 极致灵活:多题联合条件、任意组合,极复杂场景轻松搞定
  • 语法简明:接近自然语言,容易理解和编辑
  • 自动响应:随答案变动实时生效
  • 强大公式:兼容丰富数学与文本处理公式
  • 容错友好:规则出错不影响作答体验