重复是 rtSurvey 中的一个强大功能,允许您在单个调查中多次收集同一组信息。这在家庭调查等场景中特别有用,您可能需要收集有关多个家庭成员的数据。

基本重复结构

要在 rtSurvey 中创建重复,使用 begin repeatend repeat 结构:

  | type         | name         | label                |
|--------------|--------------|----------------------|
| begin repeat | child_repeat |                      |
| text         | name         | 儿童姓名         |
| decimal      | birthweight  | 儿童出生体重  |
| select_one male_female | sex | 儿童性别         |
| end repeat   |              |                      |
  

在此示例中,用户可以通过在表单中添加新的重复来收集多个儿童的信息。

重复标签

虽然 begin repeatlabel 列是可选的,但添加标签可以改善导航:

  | type         | name         | label                |
|--------------|--------------|----------------------|
| begin repeat | child_repeat | 儿童信息    |
| text         | name         | 儿童姓名         |
| decimal      | birthweight  | 儿童出生体重  |
| select_one male_female | sex | 儿童性别         |
| end repeat   |              |                      |
  

rtSurvey 将显示"儿童信息"作为每个重复实例的标题。

固定重复次数

要指定固定的重复次数,使用 repeat_count 列:

  | type         | name         | label                | repeat_count |
|--------------|--------------|----------------------|--------------|
| begin repeat | child_repeat | 儿童信息    | 3            |
| text         | name         | 儿童姓名         |              |
| decimal      | birthweight  | 儿童出生体重  |              |
| end repeat   |              |                      |              |
  

这将创建正好 3 次儿童重复。

动态重复次数

rtSurvey 支持基于之前答案的动态重复次数:

  | type     | name           | label                          | repeat_count       |
|----------|----------------|--------------------------------|--------------------|
| integer  | num_hh_members | 家庭成员人数?   |                    |
| begin repeat | hh_member  | 家庭成员               | ${num_hh_members}  |
| text     | name           | 姓名                           |                    |
| integer  | age            | 年龄                            |                    |
| end repeat |              |                                |                    |
  

条件重复

您可以使用 relevant 列有条件地显示重复:

  | type              | name        | label                     | relevant           |
|-------------------|-------------|---------------------------|---------------------|
| select_one yes_no | has_child   | 这里有孩子居住吗?|                     |
| begin repeat      | child_repeat| 儿童信息         | ${has_child} = 'yes'|
| text              | name        | 儿童姓名              |                     |
| decimal           | birthweight | 儿童出生体重       |                     |
| end repeat        |             |                           |                     |
  

rtSurvey 特有功能

重复摘要

rtSurvey 提供重复的摘要视图。要自定义摘要,在重复内使用组:

  | type         | name         | label                                    |
|--------------|--------------|------------------------------------------|
| begin repeat | person_repeat|                                          |
| begin group  | person       | ${first_name} ${last_name} - ${age}      |
| text         | first_name   | 名                               |
| text         | last_name    | 姓                                |
| integer      | age          | 年龄                                      |
| end group    |              |                                          |
| end repeat   |              |                                          |
  

重复外观选项

rtSurvey 为重复提供额外的外观选项:

  • appearance: field-list - 在一个屏幕上显示重复中的所有问题
  • appearance: table-list - 以表格格式呈现重复
  | type         | name         | label            | appearance  |
|--------------|--------------|-------------------|-------------|
| begin repeat | child_repeat | 儿童信息 | table-list  |
| text         | name         | 姓名              |             |
| integer      | age          | 年龄               |             |
| end repeat   |              |                   |             |
  

嵌套重复

rtSurvey 支持复杂数据结构的嵌套重复:

  | type         | name           | label                |
|--------------|----------------|----------------------|
| begin repeat | household      | 家庭            |
| text         | hh_name        | 家庭名称       |
| begin repeat | hh_member      | 家庭成员     |
| text         | member_name    | 成员姓名          |
| integer      | member_age     | 成员年龄           |
| end repeat   |                |                      |
| end repeat   |                |                      |
  

rtSurvey 重复使用最佳实践

  1. 为重复使用有意义的名称和标签以改善数据分析。
  2. 考虑使用动态重复次数以减少数据输入错误。
  3. 全面测试表单,尤其是在使用复杂的嵌套重复时。
  4. 使用摘要功能帮助调查员导航长列表的重复。
  5. 对大量重复要谨慎,因为它们可能影响表单性能。

处理零重复

在 rtSurvey 中表示零重复:

  1. 培训调查员在不需要时删除第一个重复。
  2. 当确切数量已知时使用动态重复次数。
  3. 使用 relevant 有条件地显示重复。

数据导出注意事项

从 rtSurvey 导出数据时,重复数据通常会被扁平化。每个重复实例在导出数据中成为单独的行,父表单的数据在每个实例中重复。

移动应用注意事项

  • rtSurvey 移动应用中的重复支持离线数据收集。
  • 大量重复可能影响低端设备上的应用性能。

通过在 rtSurvey 中有效使用重复,您可以创建灵活强大的调查,能够捕获复杂的层次数据结构,同时为调查员保持友好的用户界面。

此页面有帮助吗?