逻辑编程
概述
网题提供了一整套问卷编程脚本语言QLS(Questionnaire Logic Script),供高级用户对问卷中的跳转、隐藏、赋值等复杂逻辑进行编程控制。
在问卷设计界面,可以在右边的题目属性中为每道题添加/更改对应的逻辑脚本。
每题可设置多个逻辑,在相应的逻辑编辑器中填写逻辑代码,每条逻辑代码用换行隔开(每条代码一行)。
变量
引用题
引用题
格式:#题号。
用途:将当前问卷指定题号的答案读取出来,题号可在问卷设计界面中察看。
示例:#5,引用本问卷中题号为5的答案。
引用本题
格式:#@。
用途:将当前题的答案读取出来。
示例:#@,引用本题答案。
引用得分
格式:#Score。
用途:将当前问卷的打分读取出来。
示例:#Score,引用本问卷得分。
引用选项值
格式:数字。
用途:判断或设定单选题、多选题答案选项。
示例:
[2] 表示单选题的2,也表示多选题只选择2,也表示给单选题选上2,或者给多选题选上唯一的2。
[?2] 表示多选题的2,也表示多选题加上2选项
[^2] 表示多选题不选择2 ,也表示如果多选题有2选项,去掉该选项。
[2.1] 表示矩阵单选题第二题选1,也表示给矩阵单选题/矩阵多选题第二题赋值为1。
[?3.2] 表示矩阵多选题 第三题选2,…
[^3.3] 表示矩阵多选题 第三题没有选择3选项,或者在赋值时去掉3选项。
[?2,?3] 表示选择了2选项或者3选项。
[2,3] 表示多选题同时选择了2选项和3选项。
引用变量
格式:<%变量名%>。
用途:在题干等处插入一个变量,用来显示指定内容。
示例:
欢迎你参加本次调查,<%=UserId%>!将在<%= %>处插入变量控制的用户名。
引用字符串
格式:"字符"(双引号内扩字符串)。
用途:使用字符串作为变量值。
示例:
<%UserId%>="Mike",将Mike作为UserId的值赋予变量。
引用Url参数
格式:?Parameter。
用途:使用Url中携带的参数值作为变量值。
示例:
#@=?Id,将问卷Url地址中Id参数的值赋予当前题。
引用网络环境变量
格式:@Parameter。
用途:读取问卷地址所在的网络环境参数作为变量值。
示例:
#@=@Ip,将问卷受访者的客户端IP地址赋予当前题。
#@=@Referrer,将问卷受访者点击本问卷的来路页面URL赋予当前题。
#@=@OS,将问卷受访者客户端的操作系统类型赋予当前题。
#@=@Browser,将问卷受访者客户端的浏览器类型赋予当前题。
#@=@Screen,将问卷受访者客户端的桌面分辨率参数赋予当前题。
数值变量
格式:数字。
用途:判断或设定单选题、多选题答案选项。
示例:
[2] 表示单选题的2,也表示多选题只选择2,也表示给单选题选上2,或者给多选题选上唯一的2。
[?2] 表示多选题的2,也表示多选题加上2选项
[^2] 表示多选题不选择2 ,也表示如果多选题有2选项,去掉该选项。
[2.1] 表示矩阵单选题第二题选1,也表示给矩阵单选题/矩阵多选题第二题赋值为1。
[?3.2] 表示矩阵多选题 第三题选2,…
[^3.3] 表示矩阵多选题 第三题没有选择3选项,或者在赋值时去掉3选项
[?2,?3] 表示多选题或者的关系,
[2,3] 表示单选题或者的关系
运算符
赋值运算符
格式:=。
用途:将等号后面的值写入等号前面指定的变量。
示例:#User.UserHouse = [3],向User表中UserHouse字段写入3。
判断运算符
等于
格式:=。
用途:判断运算符两侧的变量是否相等或相同。
示例:#5 = [3],判断当前问卷第5题的答案是否只选择3这个选项。
不等于
格式:<>。
用途:判断运算符两侧的变量是否相等或相同。
示例:#5 <> [3],判断当前问卷第5题的答案是否不为3。
大于
格式:>。
用途:判断运算符左侧变量是否大于右侧变量。
示例:#5 > 3,判断当前问卷第5题的答案是否大于3。
大于等于
格式:>=。
用途:判断运算符左侧变量是否大于等于右侧变量。
示例:#5 >= 3,判断当前问卷第5题的答案是否大于等于3。
小于
格式:<。
用途:判断等号运算符左侧的变量是否小于右侧变量。
示例:#5 < 3,判断当前问卷第5题的答案是否小于3。
小于等于
格式:<=。
用途:判断等号运算符左侧的变量是否小于等于右侧变量。
示例:#5 <= 3,判断当前问卷第5题的答案是否小于等于3。
逻辑运算符
且运算
格式:AND(对大小写不敏感,与两侧条件用空格隔开)。
用途:将两个条件组合为并且逻辑,两侧条件必须同时成立,整个条件才成立。
示例:#5 = [3] AND #8<> [2],当前问卷第5题的答案只选择3这个选项,且当前问卷第8题的答案不为2,整个条件才成立。
或运算
格式:OR(对大小写不敏感,与两侧条件用空格隔开)。
用途:将两个条件组合为或者逻辑,两侧条件只要有一个成立,则整个条件成立。
示例:#5 = [3] OR #8<> [2],当前问卷第5题的答案只选择3这个选项,或当前问卷第8题的答案不为2,整个条件都成立。
语句
分隔符
格式:{}。
用途:使用花括弧将条件语句与其他语句分隔开。
示例:{#2=[5]} Hide,花括弧内即为隐藏条件。
优先级
执行顺序为从左至右、从上到下逐条执行。多条语句可用回车分行。
一旦优先级在前的语句执行成功,就可能不再执行之后的语句。
系统暂不支持嵌套条件,即所有条件语句都是从左至右顺序执行。
逻辑类型
注:1、问卷有逻辑时,必须要分页;2、如问卷已允许回退,则逻辑编辑框被禁用!
题前逻辑:
题目显示之前执行的逻辑,包括隐藏、取值等逻辑。(遇逻辑必须分页)
如隐藏逻辑:
格式:{条件}Hide(对大小写不敏感)。
用途:条件成立时隐藏当前题。
示例:{#2=[5]} Hide,如果当前问卷的第2题选择答案为5,隐藏当前题。
取值逻辑
格式:{条件}取值语句(对大小写不敏感)。
用途:条件成立时为还未选择的题预先取值。
示例:{#2=[5]}#@=[2],如果当前问卷的第2题选择答案为5,则当前题选择答案取值为2。
赋值逻辑
格式:{条件}赋值语句。
用途:条件成立时对已经选择过的题赋予新值。
示例:{#8=[5]}#6=[2],如果当前问卷的第8题选择答案为5,则当前问卷的第6题选择答案改赋新值为2。
点击题前逻辑的逻辑编辑器
点击条件
逻辑条件可以选择无条件和当前题。
点击插入变量
插入当前题号:#@
插入你的得分为:#Score
插入客户端IP:@Ip
插入来路页面URL:@Referrer
插入客户端操作系统:@OS
插入客户端浏览器:@Browser
插入客户端桌面分辨率:@Screen
插入UPL参数:?xxx
插入变量:<%xxx%>
点击动作
隐藏当前题:条件成立时,当前题不显示;
隐藏当前页:条件成立时,当前页不显示;
隐藏当前题选择项:条件城里时,当前题的选项不显示;
隐藏当前题系列:条件成立时,当前题的系列不显示;
示例:
隐藏当前题即问卷的第三题,点击第三题的题前逻辑的逻辑编辑器
点击条件
选择无条件,点击确定
点击动作,选择隐藏当前题
点击确定
点击保存
点击保存,最后保存问卷。问卷应答时,当前题不会显示。
题后逻辑:题目提交之后执行逻辑,包括跳转、甄别等逻辑。(遇逻辑必须分页)
如跳转逻辑
格式:{条件}JumpTo#n
用途:条件成立时跳至指定题号所在的分页(对大小写不敏感,下同)。
格式:{条件}Quit
用途:条件成立时跳至问卷结束(致谢)页。
格式:{条件}GoTo("http://www.test.com/test.html")
用途:条件成立时跳至指定的Url地址。
格式:{条件}WaitAndGoTo(n,"http://www.test.com/test.html")
用途:条件成立时等待n秒后跳至指定的Url地址。
格式:{条件}GoTo("http://www.test.com/test.aspx?QuestionnaireId=<%Id%>&UserId=<%PanelId%>")
用途:条件成立时跳转到http://www.test.com/test.aspx,并携带当前问卷ID(<%Id%>)、受访者样本ID(<%PanelId%>)变量,传递给目的Url地址。
示例:{#2=[5]}Quit,如果当前问卷的第2题选择答案为5,则结束问卷,跳至问卷结束页; {#2=[5]}JumpTo#23,如果当前问卷的第2题选择答案为5,则跳至问卷第23题所在的页。
点击题后逻辑的逻辑编辑器
点击条件(动作执行的条件)
点击插入变量
插入当前题号:#@
插入你的得分为:#Score
插入客户端IP:@Ip
插入来路页面URL:@Referrer
插入客户端操作系统:@OS
插入客户端浏览器:@Browser
插入客户端桌面分辨率:@Screen
插入UPL参数:?xxx
插入变量:<%xxx%>
点击动作
隐藏当前题:条件成立时,当前题不显示;
隐藏当前页:条件成立时,当前页不显示;
隐藏当前题选择项:条件城里时,当前题的选项不显示;
隐藏当前题系列:条件成立时,当前题的系列不显示;
跳转至指定题:条件成立时,跳转至指定的题目;
中止问卷:条件成立时,跳至问卷结束(致谢)页;
跳转外部地址:条件成立时,跳至指定的Url地址。
延时跳转:条件成立时,等待n秒后跳至指定的Url地址。
定时提交:
条件成立时,等待指定时间后自动提交问卷;
示例:
第三题选择选项2时,跳转到第5题。
打开第三题题后逻辑的逻辑编辑器
点击条件 当题目为Q3(即问卷的第三题) 选项选择为第二个
点击确定
点击动作,执行动作选择跳转至指定题,跳转至指定题Q5(即问卷第5题)
点击确定
点击保存
点击保存
问卷应答时,第三题选择选项2时,问卷会直接跳转到第五题所在页。
示例
单选题
等于 B=[1]
不等于 B<>[1]
赋值 B=[2] B=[] 设定为空。
文本题
等于 B=[“abc”]
包含 B=[“?abc?”] B=[“a*b?”] 使用通配符号
赋值 B=[“abc”] B=[]
多选题
选择中有1 B=[?1]
选择中没有 1 B<>[?1]
仅选择1 B=[1]
仅选择 1,3 B=[1,3]
没有选择1 B<>[?1]
添加选项1 B=[?1]
修改选项为1,3 B=[1,3] 等价于 B=[1] ; B=[?3]
去除选项 3 B=[^3]
表格题
表格题的表示
在[ ] 加入数字确定为 第几个题目的答案 如 [3|1], 竖线点前面的部分相当于确定是第几道题。
题号即为设置子项时输入的序号,请在后台管理系统中查询、设置。
矩阵单选题
3题等于 B=[3|1]
3题不等于 B<>[3|1]
3题赋值 B=[3|2] B=[3|] 设定为kong
表格多选题
3题选择中有1 B=[3|?1]
3题选择中没有 1 B<>[3|?1]
3题仅选择1 B=[3|1]
3题仅选择 1,3 B=[3|1,3]
3题没有选择1 B<>[3|?1]
3题添加选项1 B=[3|?1]
3题修改选项为1,3 B=[3|1,3] 等价于 B=[3|1] ; B=[3|?3]
去除3题选项 3 B=[3|^3]
常见问题:设计问卷时,编写了逻辑,比如隐藏逻辑,为什么问卷应答时当前题目没被隐藏,仍然显示?
答:请确认下,编写逻辑时,是否已分页,否则逻辑无法执行。
返回顶层