概述
网题提供了一整套问卷编程脚本语言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,花括弧内即为隐藏条件。
优先级
执行顺序为从左至右、从上到下逐条执行。多条语句可用回车分行。
一旦优先级在前的语句执行成功,就可能不再执行之后的语句。
系统暂不支持嵌套条件,即所有条件语句都是从左至右顺序执行。
逻辑类型
隐藏逻辑
格式:{条件}Hide(对大小写不敏感)。
用途:条件成立时隐藏当前题。
示例:{#2=[5]} Hide,如果当前问卷的第2题选择答案为5,隐藏当前题。
取值逻辑
格式:{条件}取值语句(对大小写不敏感)。
用途:条件成立时为还未选择的题预先取值。
示例:{#2=[5]}#@=[2],如果当前问卷的第2题选择答案为5,则当前题选择答案取值为2。
赋值逻辑
格式:{条件}赋值语句。
用途:条件成立时对已经选择过的题赋予新值。
示例:{#8=[5]}#6=[2],如果当前问卷的第8题选择答案为5,则当前问卷的第6题选择答案改赋新值为2。
跳转逻辑
格式:{条件}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题所在的页。
示例
单选题
等于 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]