x

主要章节

  1. LimeSurvey Cloud 与 LimeSurvey CE 对比
  2. 快速入门指南 - LimeSurvey 3.0+
  3. 软件安装
  4. 如何设计一个不错的调查(向导)
  5. 入门指南
  6. 管理 LimeSurvey
  7. 调查 - 说明
  8. 调查设置
  9. 问卷调查菜单
  10. 调查问卷结构
  11. 问题 - 简介
  12. 题组 - 简介
  13. 调查 - 管理
  14. 调查工具栏选项
  15. 多语言调查
  16. ExpressionScript 引擎 - 快速入门指南
  17. 其他和高级功能
  18. 常规问答
  19. 故障排除
  20. 变通方法
  21. 许可证
  22. 版本更改日志
  23. 插件
 Actions

制表键分割值的调查结构

From LimeSurvey Manual

本页面可能为机器翻译,可能包含错误。 查看英文原文 · 改进此翻译
This page is a translated version of the page Tab Separated Value survey structure and the translation is 100% complete.


调查结构的制表键分割值得导入和导出

此功能为便于使用像 LibreOffice, Excel 或 Google Docs 电子表格软件编写和编辑调查而设计。完全排除了对 SGQA 代码得依赖。

此功能支持导入后缀是 .txt 的使用 ASCII 或 UTF-8 编码的制表符分隔值 (TSV) 文件。


通过查看 示例 进一步了解此功能。


入门指南

最简单的方式就是拿现有的调查,并导出为制表符分隔值格式。使用普通导出调查按钮,不选择 .lss 格式,而选择 "制表符分隔值格式 (*.txt)"。将会保存为拥有所有列标题的恰当格式的制表符分隔值文件 (制表符分隔代码文件)。

任何电子表格软件都能很好的支持制表符分隔值 (比如,OpenOffice 或是 LibreOffice)。LimeSurvey会忽略电子表格中的所有格式,但是如果有帮助,可以随时添加一些格式。

请注意,以 UTF-8 格式导出的文件里,字节顺序标记(BOM)作为头三个(隐藏)的字符。如果你双击 .txt 文件并尝试从 Excel 直接打开,文件不会正常打开,因为 UTF-8 的格式。要从 Excel 打开这些文件,首先打开 Excel,然后选择文件:打开,再选择,.txt 文件,并告诉 Excel 文件使用 UTF-8 编码。

每一个组,问题,子问题和答案占据一行。调查的全局变量,指定语言的变量也占据一行。主语言会在列在前面,第二语言跟在后面。如果有多种语言,基础语言的内容条目会首先显示 (比如,所有组,问题,子问题和答案)。每一个附加语言的翻译副本会紧随其后 (翻译集的数量和行的顺序要完全一致)。

关系是根据亲缘关系推断的。So, questions following a group are part of that group; subquestions following a question are part of that question, and answers following a question are part of that question. Thus, you don't need to know the IDs (gid, qid, sqid) for any questions. Those will be computed automatically upon import. In fact, this format does not use gid, qid, or sqid (or SGQA codes) at all.


提示

制表符分隔值(TSV)导入/导出功能的目的是让您能够使用电子表格快速设计调查。我们预计您会经常导入该表格,使用“显示调查逻辑”功能检查其有效性,并进行测试。每次导入都会生成一个新的调查,因此您最终可能会得到许多尚未完成的调查,这没有问题。只需养成记录哪一个是最新版本的习惯,或者在导入新调查后删除旧的调查即可。由于在制表符分隔值中完全不使用 SGQA 代码,因此您无需担心 LimeSurvey 为主调查、组、问题和答案的键分配了什么代码。所以,请随意频繁地导入和导出。

使用这种方式编写调查工具时,您可以进行以下便捷操作:

  1. 为多个问题使用相同的答案。只需复制“A”行,然后粘贴到每个需要使用相同答案集的问题之后。
  2. 为多个问题使用相同的子问题。只需复制“SQ”行,然后粘贴到每个需要这些子问题的问题之后。
  3. “循环”——多次使用同一个组。将组调整到满意之后,根据需要复制多次。使用 Excel 筛选功能仅查看“G”行(组),并使用 Excel 的列拖动功能更新每个组的相关表达式(例如,对于人口普查,第一个相关表达式可能是“numPeople > 1”,下一个应为“numPeople > 2”。拖动功能会自动更新数字)。按“Q”行筛选,并确保每个问题都有唯一的值(例如,如果您将变量命名为 g1_q1、g1_q2、g1_qN,则可使用查找/替换功能将第二个组中的 g1 改为 g2,第三个组改为 g3,依此类推)。
  4. 重新排序问题/组。只需重新排列电子表格文件中的行即可。
  5. 测试调查模块。对于较长的调查,您可能希望将测试拆分为多个模块。只需为每个模块创建新的电子表格文件,并删除不需要的行。这样就无需输入大量数据来测试调查的后面部分。
  6. 测试必答问题。常见的抱怨并不是需要将许多问题设为必答,而是在测试时需要关闭必答功能。只需创建主电子表格,并将必答设置为最终所需的值。然后,在测试时,只需删除“mandatory”列并保存测试版本的电子表格。导入该版本后,所有问题都不再是必答的。测试完成后,再导入主副本。
  7. 设置默认值。除了使用图形界面,您还可以在 default 列中输入任何所需的默认值。当图形界面不允许您输入所需的值时,这尤其有用,例如使用表达式来设置列表项的默认值(比如通过调查参与者属性来填充列表)。
  8. 翻译。您可以创建电子表格的副本——每种语言一份。包含主语言的所有行,然后将其复制并粘贴到下方,并使用拖动功能将语言字段更改为目标语言。这些文件可以分发给翻译人员,并在翻译完成后重新整合为单个电子表格文件。
  9. 批量设置高级问题属性。您可能希望所有方程式问题一开始都可见(以便在收集数据时查看其值),但在正式发布前将它们全部隐藏。只需在电子表格中筛选 class = 'Q' 且问题类型 = '*'(方程式),并将这些问题的 always_hide 设置为 1。同样,假设在创建调查之后,您决定哪些问题应显示在公开统计中。无需通过图形界面逐个编辑问题,只需筛选 class = 'Q',并将所有应在统计中可见的问题的 public_statistics 设置为 1。
  10. 查找和替换。假设您需要更改所有问题中的某些措辞,可以使用 Excel 的查找和替换功能进行更改。同样,如果您决定批量重命名变量,查找和替换也能派上用场。如果需要基于正规表达式的查找和替换,可以选择所需的列,复制到文本编辑器中,进行查找和替换,然后将该列粘贴回电子表格。
  11. 获得审批。如果您在做研究,可能会有机构审查委员会坚持要查看问题的文本。这可能是分享问题文本的一种便捷方式。与客户讨论时也同样适用。
  12. 团队共识。如果您希望团队就某个问题或组的措辞或外观达成一致,可以快速制作原型/编辑电子表格,将其导入,并(通过问题或组预览)向团队展示用户将看到的确切内容。这样,您就可以在团队离开会议室之前获得批准,而不必记录需求、构建调查,再在以后的会议上获得批准。
  13. 从其他调查格式升级。如果您的调查是 XML、Word 或其他格式,您可以创建转换流程将其映射为此格式。虽然您也可以尝试映射为 .lss 格式,但此格式的优势在于无需跟踪组、问题、子问题、答案和默认值之间的外键关系。


限制

  1. 按照设计,此功能仅适用于使用 qcode(而非 SGQA)命名的调查。此功能假定变量名(问题标识符)在整个调查中是唯一的。子问题名称可以重复,只要在特定问题的范围内唯一即可。


文件格式

常规

我们将同一组列标题用于多种用途。前 14 列根据实体类型(例如组、问题、答案)的不同而具有不同的用途。其余各列是高级问题代码对应的数据库字段名称的字母顺序列表。以下是每种实体类型的语法

前 14 列为:

  1. id (New in 3.14.0 )
  2. related_id (New in 3.14.0 )
  3. class
  4. type/scale
  5. name
  6. relevance
  7. text
  8. help
  9. language
  10. validation
  11. mandatory
  12. other
  13. default
  14. same_default
 Hint: id 和 related_id 列仅用于配额,并且是可选的。如果您没有配额,可以直接删除这两列。


调查的全局参数

surveys 表中的每个参数对应一行。

  1. class => 'S'
  2. name => 数据库字段名称
  3. text => 值


调查特殊语言的参数

surveys_languagesettings 表中每种语言的每个字段对应一行。在插入该表之前,会先收集给定语言的所有条目。

  1. class => 'SL'
  2. name => 数据库字段名称
  3. text => 值
  4. language => 语言


组

每种调查语言对应一个组行(例如,如果调查有 3 种语言,则会有 3 个组行)。

  1. id => 组的唯一数字标识符,从数字 1 开始;属于当前组的其他语言使用相同的 ID
  2. class => 'G'
  3. name => group_name -- 组的唯一标识符
  4. relevance => grelevance -- 组级别的相关表达式,不带花括号
  5. text => description -- 组的特定语言描述
  6. language => language -- 组的语言(例如 'en')


问题

每种调查语言对应一个问题行(例如,如果调查有 3 种语言,则会有 3 个问题行)。问题被视为属于其前面的组。

  1. id => 问题的唯一数字标识符,从数字 1 开始;属于当前问题的其他语言使用相同的 ID
  2. class => 'Q'
  3. type/scale => type -- (通常为一个字母的)问题类型(例如,'M' 表示多选题)
  4. name => title -- 唯一的问题名称(qcode 命名系统的根)
  5. relevance => relevance -- 问题的相关表达式
  6. text => question -- 问题的特定语言文本
  7. help => help -- 特定语言的帮助文本
  8. language => language -- 组的语言(例如 'en')
  9. validation => preg -- 问题的可选正规表达式验证条件
  10. mandatory => mandatory -- 如果为必答,则为 'Y'
  11. other => other -- 如果应提供“其它”选项,则为 'Y'(仅适用于某些问题类型)
  12. default => default -- 如果设置,此值将插入到该问题的 defaultvalues 表中
  13. same_default => same_default -- 'Y' 表示真,此时为主语言设置的任何默认值将应用于其他语言


子问题

每种调查语言对应一个子问题行。子问题被视为属于其前面的问题。

  1. id => 与问题所用的唯一数字标识符相同。子问题应使用下一个可用的值,问题和子问题的 ID 应不同(例如,问题使用 ID 1,属于问题 1 的子问题使用 ID 2、3 和 4,下一个问题的 ID 应为 5,依此类推)。属于当前子问题的其他语言使用相同的子问题 ID。
  2. class => 'SQ'
  3. type/scale => scale_id -- 0 或 1,取决于问题类型(例如,阵列文本将有两个尺度)
  4. name => title -- 子问题的“名称”,例如用于 exclude_all_others 的名称
  5. relevance => relevance -- (未来)用于支持子问题级别的相关性
  6. text => question -- 子问题的特定语言文本
  7. help => help -- (未来)用于支持子问题级别的帮助
  8. language => language -- 子问题的语言
  9. validation => preg -- (未来)用于支持子问题级别的正规表达式验证(例如用于地址的各部分)
  10. mandatory => mandatory -- (未来)用于支持子问题级别的必答设置(例如仅将少数子问题设为必答)
  11. default => default -- 如果设置,则这是子问题的默认值(插入到 defaultvalues 表中)
  12. same_default => same_default -- 如果设置,则主语言的默认值将用于所有其他语言


答案

每种调查语言对应一个答案行(例如,如果调查有 3 种语言,则会有 3 个答案行)。答案被视为属于其前面的问题,并且应按所需的排序顺序排列。

  1. id => 使用与其所属问题相同的 ID
  2. class => 'A'
  3. type/scale => scale_id -- 0 或 1(例如用于双尺度)
  4. name => code -- 唯一的答案标识符
  5. relevance => assessment_value -- 如果使用评估选项,则这是该答案的评价值
  6. text => answer -- 答案的特定语言文本
  7. language => language -- 此答案的语言(例如 'en')


评估

每种调查语言对应一个评估行(例如,如果调查有 3 种语言,则会有 3 个评估行)。评估写在文件末尾。

  1. id => 评估的唯一数字标识符,从数字 1 开始;属于当前评估的其他语言使用相同的 ID
  2. related_id => 当前评估所属组的 id
  3. class => 'AS'
  4. type/scale => 评估范围:T-总计,G-组
  5. name => 名字
  6. text => 消息
  7. min_num_value => 最小值
  8. max_num_value => 最大值
  9. language => language -- 此答案的语言(例如 'en')


配额

每个配额对应一行。配额写在文件末尾。

  1. id => 配额的唯一数字标识符,从数字 1 开始
  2. class => 'QTA'
  3. name => 配额名称
  4. mandatory => 限制
  5. other => 配额操作
  6. default => 启用
  7. same_default => 自动加载URL


配额语言设置

每种调查语言对应一个配额行。配额语言设置被视为属于其前面的配额。

  1. id => 配额语言设置的唯一数字标识符,从数字 1 开始。不同调查语言的每一行应使用不同的 ID
  2. related_id => 此设置所属配额的配额 id
  3. class => 'QTALS'
  4. relevance => 消息
  5. text => URL
  6. help => URL 描述
  7. language => language -- 此配额的语言(例如 'en')


配额成员

每个配额成员占一行,与语言无关。配额成员行应紧接在其所关联的问题之后。配额成员默认属于其前面的问题。

  1. id => 配额成员的唯一数字标识符,从数字1开始
  2. related_id => 该成员所属配额的配额ID
  3. class => 'QTAM'
  4. name => 答案代码


条件

每个条件占一行,与语言无关。条件行应紧接在其所关联的问题之后。条件默认属于其前面的问题。

  1. id => 条件的唯一数字标识符,从数字1开始。
  2. related_id => 相关问题的问题ID(如适用)
  3. class => 'C'
  4. type/scale => 情境
  5. name => 答案字段名称
  6. relevance => 比较操作符
  7. text => 预期答案