Survey123 支持 select_one(单选)、select_multiple(多选)和评级(对选项列表进行评级排序)问题。
注:
评级问题目前仅在外业应用程序和 Web 应用程序中受支持。
记录多项选择问题需要向 Excel 工作簿添加选择工作表。 以下是 select_one 问题的示例:


调查工作表中的列表名称 yes_no 必须与选择工作表中的列表名称相匹配。 由此确保表单可针对特定问题显示正确的答案选项列表。
默认情况下,在发布调查后,select_one 问题中的选项将添加至调查要素图层作为编码值属性域。 可以禁止在发布过程中创建属性域。 有关详细信息,请参阅发布选项。
警告:
以下是使用包含重复选项名称的选项列表时的限制:
- select_multiple 问题不支持重复选项名称。
- 多语言调查不支持重复选项名称。
- jr:choice-name() 函数将返回列表中第一个重复选项的标注。
- 当从收件箱、草稿、发件箱、已发送或概述文件夹打开时,select_one 问题会恢复至列表中的第一个重复选项。
有关修改现有调查中选项列表的其他注意事项,请参阅更新调查。
还可以添加允许选择多个答案的多项选择问题,例如:


默认情况下,这些选择将按照选择工作表中提供的顺序显示。 您也可以通过在参数列输入 randomize=true 来对选择显示顺序进行随机化。
警告:
在 select_multiple 或评级问题中收集的所有值将保存为以逗号分隔的列表,因此请避免在选项列表的名称列中使用逗号。 另请注意,select_multiple 和评级问题仅将选择的名称发送到要素服务,而非由 select_one 问题提交的名称和标注。
评级问题的值将保持为空,直到用户修改选择顺序为止。 如果已设置默认值,则除非用户更改选择顺序,否则将应用默认顺序。
可以使用 selected-at 函数返回有关 select_multiple 问题的单个答案。 以下将返回针对 select_multiple 问题的第一个答案的名称值:
selected-at(${species}, 0)
要发送答案的标注,您可以使用 jr:choice-name 函数。 要获取同一 select_multiple 问题的第二个答案的标注值,请使用以下命令:
jr:choice-name(selected-at(${species}, 1), '${species}')
外观
将 appearance 列设置为 minimal 后,下拉菜单中将显示一个选择问题。

将外观设置为 horizontal 后,选择问题的选项将水平显示在等宽列中。

compact 外观类似于 horizontal 外观,只是使用不同的方法来确定列宽,从而可能导致选项占用更少的空间。
注:
在 Survey123 Connect 中,您可以通过提供以连字符分隔的数字来指定 compact 外观的最大列数。 例如,compact-3 将多选问题的列数限制为最多三列,适用于外业应用程序或 Web 应用程序中使用的调查。
compact 和 horizontal-compact 外观相同。 在 Survey123 web 应用程序中,而非使用列,这些外观可使选择问题选项标注并排排列,而无需额外间距。
对于单选问题,将 appearance 列设置为 likert 可将选项呈现为李克特量表。 李克特量表是一种分级标准,可使调查对象在语句对称的同意-不同意标准上指定其同意的程度。

将外观设置为 autocomplete 后,选择问题将显示一个文本字段和一个下拉菜单。 向字段中输入文本会将下拉菜单内容限制为仅显示包含该文本的答案。 此设置适用于极长的选择列表。

注:
仅在 Survey123 Mobile 中支持多选问题的 autocomplete 外观 它在外业应用程序或 Web 应用程序中不受支持。
通过将外观设置为 search,您可以使用调查媒体文件夹中的 CSV 表或现有要素图层或表中的值填充选择问题的选项列表。 有关详细信息,请参阅使用搜索外观创建动态选项列表。
通过将外观设置为 image-map,在外业应用程序中,可以使用 SVG 文件将选择问题呈现为具有可选区域作为选项的图像。 有关详细信息,请参阅使用 SVG 文件
使用搜索外观创建动态选项列表
注:
本部分将介绍仅在 Survey123 Connect 和 Survey123 外业应用程序中可用的功能。此功能在 Survey123 Studio 或 Survey123 Mobile 中不可用。
单选和多选问题支持 search 外观,可用于使用调查 media 文件夹中的 CSV 表或者现有要素图层或表中的值来填充选择列表。 在使用 search 外观时,您仍必须在选择工作表中包含一个条目,但不是列出每个选择,而是从现有要素图层或表中引用字段名称。
在以下示例中,在选择工作表上定义了一个名为 us_states 的选择列表,并将使用字段 STATE_NAME 作为选择名称和标注。

在以下示例中,随后将以与其他选择列表相同的方式在调查工作表上引用此选择列表,但其包含引用从中检索选择的现有要素图层的搜索外观表达式。

必须按以下方式构建搜索外观表达式,其中变量以逗号分隔:
search(tableName, searchType, searchColumn, searchText, filterColumn, filterText)tableName 参数接受调查 media 文件夹中 .csv 文件的名称,例如 airports,或者要素图层或地图服务图层的 URL,前面带有供 Survey123 在内部引用表的名称。 此表名无需与托管图层的名称相匹配,但由于这是 Survey123 内部引用您的搜索的方式,因此它必须与调查中使用的所有其他表名和 .csv 文件不同。 您可以选择将查询请求参数追加到要素图层或地图服务图层的 REST 端点以配置搜索行为。 在以下示例中,要素图层 URL 将追加 resultRecordCount 参数以使用前 10 个查询结果填充选择列表,其中搜索内部存储在名称 airports 下:
"airports?url=https://services1.arcgis.com/e7dVfn25KpfE6dDd/arcgis/rest/services/Airports2/FeatureServer/0&resultRecordCount=10"也可以使用 WHERE 表达式过滤选项列表。 当使用以下示例作为 tableName 时,选项列表将过滤以仅显示名称不是 Alabama 或 Alaska 的州:"state?url=https://services.arcgis.com/P3ePLMYs2RVChkJx/arcgis/rest/services/USA_States_Generalized_Boundaries/FeatureServer/0&where=STATE_NAME
NOT IN('Alabama', 'Alaska')"
注:
如果调查将在 Survey123 Web 应用程序中使用,则包含特殊字符的搜索参数必须进行编码。编码将特殊字符(例如表达式中的通配符)替换为百分号 (%) 后跟其十六进制等效项。
以下附加参数是可选的,但可用于缩小搜索提供的结果范围:
| 参数 | 描述 |
|---|---|
searchType | 用于控制执行的搜索类型,并接受不同的值,具体取决于要搜索的表是要素图层内的空间表,还是 CSV 或要素表中的非空间表。 对于空间表,接受的搜索类型为 intersects、contains、crosses、envelope_intersects、index_intercepts、overlaps、touches 和 within。 要了解详细信息,请参阅空间关系。 对于非空间表,受支持的搜索类型为 contains、startswith、endswith 和 matches。 |
searchColumn | 确定将在 searchText 参数中搜索文本的列。 将从表本身获取这些列。 此外,要素图层中的空间表可以搜索列 @geopoint、@geotrace 和 @geoshape。 |
searchText | 包含将在 searchColumn 参数中搜索和返回的文本。 |
此外,可以将以下过滤器参数添加至搜索表达式以进一步细化选择列表值:
| 参数 | 描述 |
|---|---|
filterColumn | 设置一列以搜索 filterText 参数中给定文本的匹配项。 搜索查询将仅返回包含此文本的结果。 filterColumn 和 filterText 参数必须一起使用。 |
filterText | 在 filterColumn 参数给定的列中搜索的文本。 filterColumn 和 filterText 参数必须一起使用。 |
以下示例搜索表达式包含了一些用于搜索外观的可选参数。 它将使用 .csv 文件的内容来填充选择列表,其中使用前一个问题作为搜索文本。
search('csvName', 'matches', 'breed', ${DogQuestion})
注:
具有 search 外观的问题在 Survey123 Web 应用程序中的呈现方式与具有 autocomplete 外观的选择问题相同。
指定其他
对于多项选择问题,如果未列出所需选择,则调查可能包含选择其他答案的选项。 随后系统可能要求调查对象指定其他选项。 您可以使用手动方法或内置方法在 XLSForm 中执行此操作。 内置方法比手动方法更快速且更容易配置,但存在一些限制。
手动方法
建议使用手动方法,因为该方法允许您指定其他选择的名称和标注,以及采集其他响应的文本问题的名称和标注。 您可以为这些名称和标注提供译文。 您还可以将约束和外观应用于文本问题并将其设置为必填问题。
首先,在选择工作表上的问题的选择列表中添加其他选择。 为该选择指定名称和标注,就像为列表中的任何其他选择指定的那样。 在以下示例中,颜色选择列表中有一个名为其他的选择。

在调查工作表上,添加一个文本问题以采集其他响应。 添加相关表达式,从而使文本问题仅在选中其他选择时才相关。 在以下示例中,当 select_one 问题的答案是其他时,other_color 问题将相关。

对于多语言调查,可以翻译问题和选择。 在以下示例中,调查工作表中为 select_one 问题和文本问题提供了法语和希腊语译文。

此外,选择工作表上也提供了译文,其中包括其他选择。

内置方法
通过此内置方法,Survey123 Studio 和 Survey123 Connect 会自动创建其他选项和问题,以采集其他响应。 要使用此方法,请在调查工作表中类型列的选项列表名称后面输入 or_other。 其他选择将显示在问题的选择列表中。 在选择其他选择后,将显示指定其他问题,以供用户提供其自己的答案。 为了存储此答案,Survey123 Studio 和 Survey123 Connect 会自动使用多选问题的名称加上 _other(例如 favorite_toppings_other)在要素图层中额外创建一个字段。 请参阅以下示例:

警告:
指定其他问题的标注只能以英语显示。
如果基于现有要素图层创建调查,则不会自动创建指定其他问题的字段,并且不会发布调查。 必须在要素图层中手动创建指定其他问题字段,在多选问题名称的后面加上 _other,例如 favorite_toppings_other。
外部选项列表
可以将 select_one 和 select_multiple 问题的选项列表存储在外部 .csv 文件中。 当选项列表较大、调查包含多个选项列表和在 Survey123 外部管理选项列表时,此方法是理想之选。 请勿将外部选项列表与外部选择混淆,后者的选项必须在其他工作表中列出。
.csv 文件必须包含名称和标注列。
注:
如果您的 .csv 文件缺少列标题,或者在文件的行末尾具有一个尾随逗号,则无法将文件导入到调查中。
为获得最佳结果,请使用 UTF-8 字符编码对 .csv 文件进行编码。 如果您使用 Microsoft Excel 创建 .csv 文件,请将其另存为 CSV UTF-8。
.csv 文件中可能包含翻译后的标注列,但翻译后的选项仅会显示在 Survey123 Studio、Survey123 Connect、Survey123 Mobile 和外业应用程序中,而不会显示在 Web 应用程序中。
要包含具有外部选项列表的问题,请输入问题类型(select_one_from_file 或 select_multiple_from_file),然后输入 .csv 文件的名称(例如 select_one_from_file CoverType.csv)。 文件名称区分大小写,且不允许有空格。
添加 .csv 文件的方法有两种:将文件存储在调查的 media 文件夹中,或链接到 ArcGIS 中托管的 .csv 文件。
提示:
运行将选项列表转换为 CSV 工具以自动将选项列表从选项工作表迁移到 .csv 文件。
链接 .csv 文件
注:
本部分将介绍仅在 Survey123 Connect 和 Survey123 外业应用程序中可用的功能。此功能在 Survey123 Studio 或 Survey123 Mobile 中不可用。
要将 .csv 文件从 ArcGIS 内容链接到调查,请执行以下操作:
- 确保 .csv 文件托管在 ArcGIS Online 或 ArcGIS Enterprise 中,并且具有与调查相同的共享权限。
- 在尝试链接内容之前,请确保将调查发布到 ArcGIS。
- 在 Survey123 Connect 中,打开调查,然后单击链接内容选项卡。 单击链接内容按钮,选择 CSV,然后浏览至要链接的 .csv 文件并选择该文件。
要使表单预览显示链接的 .csv 文件中的选项,在 Survey123 Connect 中的链接内容选项卡上,单击下载按钮
。 这会将 .csv 文件的副本放置在调查的媒体文件夹中。 链接的文件将随调查一起在外业应用程序中自动下载。
如果您手动将 .csv 文件放置在调查的媒体文件夹中,然后在稍后将同名的 .csv 文件上传到 ArcGIS 并将其链接到调查,则调查中的 .csv 文件将从链接的内容(如果较新)中更新。
将选项列表转换为 CSV
注:
本部分将介绍仅在 Survey123 Connect 和 Survey123 外业应用程序中可用的功能。此功能在 Survey123 Studio 或 Survey123 Mobile 中不可用。
运行 Survey123 Connect 中的将选项列表转换为 CSV 工具,以自动将指定的选项列表从选项工作表迁移到媒体文件夹中的新 .csv 文件。 此工具还会将调查工作表中的相应问题修改为使用 select_one_from_file 和 select_multiple_from_file 问题类型。
要运行此工具,请执行以下操作:
- 在 Survey123 Connect 中配置 Python 环境,以便运行工具。 有关详细信息,请参阅配置 Python。
- 打开调查的 XLSForm。 在选项工作表中,添加一个名为 esri_tool_convert_csv 的列。 在您想要转换为外部选项列表的每个选项列表中,至少为其中一行添加值 yes。 保存并关闭文件。
- 在 Survey123 Connect 中,打开调查,单击工具,然后选择将选项列表转换为 CSV。
转换完成后,.csv 文件将保存到各个迁移选项列表的媒体文件夹中。 文件名称与原始选项列表的名称值一致(list_name 列)。 选项工作表将更新为仅包含其余未迁移的列表。 其中仍包含原始的自定义列标题。 在调查工作表中,适用的 select_one 和 select_multiple 问题更改为 select_one_from_file 和 select_multiple_from_file 以引用新的外部选项列表。 原始选项工作表会保存至 choices_backup 工作表,以供您验证结果或将其恢复。 您可以保留或删除备份工作表。
对于评级问题、表-列表组或包含搜索外观的问题,该工具不会转换选项列表。 不会修改调查中任何使用这些选项列表的问题。
如果工具检测到不受支持的问题,则会在调试文件夹中创建一个 .xlsx 文件,文件中包含受影响的选项列表的名称。 您可以在以下文件夹找到此文件:
C:\Users\<username>\ArcGIS\My Survey Designs\<surveyName>\debug\convertchoicelists