ArcGIS Survey123 支持大量的 XLSForm 规范。 本参考指南提供了有关可用于 Survey123 的 XLSForm 功能的汇总信息。 可以在 Survey123 Connect 或 Survey123 网站中创建调查 - 某些功能只能使用其中一种方法创建,而某些功能两种方法均可。
问题类型
下表描述了在 Survey123 Connect、Survey123 外业应用程序、Survey123 Web 设计器和 Survey123 Web 应用程序中可用的问题类型。 在某些问题中,在不同平台上的行为和实施存在差异;有关这些差异,请参考表格后的注释。
Survey123 Connect 问题类型 | Survey123 web 设计器问题类型 | 描述 | 在 Survey123 外业应用程序中受支持 | 在 Survey123 web 应用程序中受支持 |
---|---|---|---|---|
audio⁴ | 音频⁴ ⁶ | 在外业应用程序中录制音频剪辑。录制音频剪辑或接受在 Web 应用程序中上传的音频文件。 | 是 | 是 |
barcode | 扫描条形码或二维码。 | 是 | 是 | |
begin group | 开始一组问题。 | 是 | 是 | |
begin repeat | N/A | 开始一组重复问题。 | 是 | 是 |
计算 | N/A | 针对表单中的值执行计算。 计算字段包含计算的结果。 | 是 | 是 |
decimal¹ | 小数输入。 | 是 | 是 | |
date | 日期输入。 | 是 | 是 | |
dateTime | 日期和时间输入。 | 是 | 是 | |
deviceid | N/A | 表示采集调查的特定设备的 UUID。 | 是 | 否 |
email² | N/A | 使用组织账户登录时,此字段自动使用账户电子邮件地址进行填充。 | 是 | 是 |
end | N/A | 调查的结束日期和时间。 | 是 | 是 |
end group | 结束一组问题。 | 是 | 是 | |
end repeat | N/A | 结束一组重复问题。 | 是 | 是 |
file | 接受设备上的文件。 | 是 | 是 | |
geopoint³ | 采集指定 GPS 坐标。 默认为当前位置。 | 是 | 是 | |
geoshape³ | 在地图上采集面。 | 是 | 是 | |
geotrace³ | 在地图上采集线。 | 是 | 是 | |
hidden | N/A | 在要素图层中创建不显示在表单中的字段。 使用 bind::esri:fieldType 和 bind::esri:fieldLength 列指定此字段的数据方案。 | 是 | 是 |
integer¹ | 整数数值输入。 | 是 | 是 | |
图像 | 接受来自设备文件的图像或直接拍摄的照片。 | 是 | 是 | |
note | 在屏幕上显示文本。 备注也可以处理隐藏的计算。 | 是 | 是 | |
range | 滑块⁶ | 输入给定范围的数值。 | 是 | 是 |
rank list_name | 评级问题;对选项列表进行排序。 将 list_name 替换为选项列表的名称。 | 是 | 是 | |
select_one list_name | 单项选择问题;只能选择一个答案。 将 list_name 替换为选项列表的名称。 | 是 | 是 | |
select_one_from_file file_name.csv | N/A | 单项选择问题;只能选择一个答案。 将 file_name.csv 替换为包含选择列表的调查媒体文件夹中的文件名。 | 是 | 是 |
select_multiple list_name | 多项选择问题;可以选择多个答案。 将 list_name 替换为选项列表的名称。 | 是 | 是 | |
select_multiple_from_file file_name.csv | N/A | 多项选择问题;可以选择多个答案。 将 file_name.csv 替换为包含选择列表的调查媒体文件夹中的文件名。 | 是 | 是 |
start | N/A | 调查的开始日期和时间。 | 是 | 是 |
text | 自由文本答案。 正则表达式适用于电子邮件和网站。 地理编码外观应用于地址。 | 是 | 是 | |
时间 | 时间输入。 | 是 | 是 | |
username | N/A | 使用组织账户登录时,此字段自动使用账户用户名进行填充。 | 是 | 是 |
¹Web 设计器将整数和小数问题组合成一个名为“数值”的单一问题类型。 调查设计人员可以使用问题属性中的复选框定义需要的输入。
²Survey123 Connect 和 Survey123 web 设计器提供的电子邮件问题类型的实施方式不同。 Survey123 Connect 中的实施将自动填充用户登录的组织账户的电子邮件地址。 Survey123 web 设计器中的实施则是一个文本字段,只接受匹配电子邮件地址的格式。
³地理点、geotrace 和 geoshape 问题已合并为一个名为 Map 的问题类型。 调查设计人员可以使用问题属性中的复选框定义需要的输入。 名为 Address 的附加问题类型允许提交地理编码点。
⁴音频问题不允许在 Survey123 外业应用程序中上传,这与在 Web 应用程序中一样。要允许在外业应用程序中上传音频,使用文件问题。
⁵在 Survey123 Connect 中可用的几种外观在 Survey123 web 设计器中则变成了单独的问题类型。 包括多行文本、下拉列表和李克特量表。
⁶对于每个问题,web 设计器都提供了一个缓存答案的选项。 在 Web 应用程序中,提交调查记录后,问题的答案将被缓存在浏览器中,并预加载到该设备上为此调查所进行的下一次提交中。 可以为除音频、图像、文件上传和签名之外的所有问题类型设置缓存答案。
调查工作表列
下表包含 Survey123 支持的所有列。 这些列包含在 Advanced 模板的调查工作表中,并按照其在工作表中出现的顺序在此表中列出。
列 | 描述 |
---|---|
type | 从提供的列表中选择问题类型。 如果使用 select_one 或 select_multiple 问题,请输入有效的列表名称。 |
name | 要素图层中的字段名称。 |
label | 您的调查中显示的问题标签。 |
hint | 有助于回答调查问题的信息。 |
guidance_hint | 附加信息,仅在按下图标后显示。 |
appearance | 选择此字段在调查中的外观。 |
required | 选择 yes 以要求在此字段输入值后才可完成调查。 |
required_message | 当必填字段没有响应时,将显示此列的消息以提示输入答案。 |
readonly | 选择 yes 将此字段中的值设置为只读。 在调查中无法编辑这些值。 |
default | 设置字段的默认值。 将使用默认值预填充调查。 此设置可以通过提供常用答案或显示预期的答案选择类型来节省时间。 |
calculation | 使用前面问题的值执行计算(例如,${number} * 100)。 引用计算字段以显示结果(例如,The answer is ${calc})。 |
constraint | 限制可输入的数字范围(例如,.>0 和 .<100)。 可与所有问题类型配合使用。 |
constraint_message | 当不满足约束条件时,将显示此消息以提示输入有效答案。 |
relevant | 这将允许您基于对上一个问题的回答跳过问题或显示其他问题。 通过满足相关列中的条件(例如,${name} = 'value')使问题变得可见。 由此列隐藏的问题仅提交空值。 |
choice_filter | 使用级联选择时,此字段保留表达式以匹配“选项”选项卡上的其他属性列(例如,attribute = ${value})。 |
repeat_count | 此值指定重复中可用的记录数。 指定重复计数后,无法在重复中添加或删除记录。 |
media::audio | 将音频文件复制到工程的媒体子文件夹,并输入音频文件的名称(例如,audio.mp3)以将音频与您的问题一同显示。 |
media::image | 将图像文件复制到工程的媒体子文件夹,并输入图像文件的名称(例如,image.jpg)以将图像与您的问题一同显示。 |
bind::type | 一种字段类型,用于覆盖问题的默认字段类型。 |
bind::esri:fieldType | 定义要素图层中的目标字段类型。 可用于覆盖默认字段类型(例如,calculate 和 select_one 字段默认为字符串。 要将要素图层中的值保存为整数,请选择 esriFieldTypeInteger。 |
bind::esri:fieldLength | 定义要素图层中的目标字段长度。 可用于覆盖默认字段长度。 |
bind::esri:fieldAlias | 为要素图层中的字段别名提供值。 可以用于覆盖从问题标签派生的默认字段别名值。 |
body::esri:style | 提供表达式以定义问题的样式和行为(例如,组和重复的背景颜色)。 |
bind::esri:parameters | 提供特定于 Survey123 的问题参数(例如,在编辑调查时,用于控制重复行为的参数)。 |
bind::esri:workflow | 提供参数以使调查可用于测距仪测量模式。 |
parameters | 为问题提供标准 XLSForm 参数(例如,距离问题的 start、end 和 step 参数)。 |
body::accept | 设置文件问题接受的文件类型。 接受文件扩展名,其中多个文件扩展名以逗号分隔(例如,.jpg, .png)。 |
body::esri:visible | 这将允许您基于对上一个问题的回答跳过问题或显示其他问题。 通过满足 body::esri:visible 列中的条件(例如,${name} = 'value')使问题变得可见。 由此列隐藏的问题仍包含和提交值。 |
body::esri:inputMask | 提供表达式以使用输入掩膜,通过使用字符和符号来提供一系列数据条目格式。 |
label::language (xx) | 为您的问题标注提供翻译。 语言必须由其名称和代码指定(例如,label::Español (es))。 为每种语言添加一个新列。 语言列表将显示在调查的下拉菜单中。 |
hint::language (xx) | 为您的问题提示提供翻译。 语言必须由其名称和代码指定(例如,hint::Español (es))。 为每种语言添加一个新列。 语言列表将显示在调查的下拉菜单中。 |
guidance_hint::language (xx) | 为您的指导提示提供翻译。 必须通过其名称和代码指定语言(例如,guidance_hint::Español (es))。 为每种语言添加一个新列。 语言列表将显示在调查的下拉菜单中。 |
required_message::language (xx) | 为未回答必答问题时显示的消息提供翻译。 语言必须由其名称和代码指定(例如,required_message::Español (es))。 为每种语言添加一个新列。 语言列表将显示在调查的下拉菜单中。 |
body::accuracyThreshold | 提供阈值(以米为单位)的数值,若高于该阈值,则将不接受位置值。 适用于地理点及 geoshape 和 geotrace 问题的折点。 |
bind::esri:warning | 如果不满足条件,请应用显示警告的表达式。 |
bind::esri:warning_message | 如果未满足 bind::esri:warning 的条件,则会显示该消息。 |
bind::saveIncomplete | 如果应用程序要在完成问题后自动保存响应,则设置为真。 |
外观
可在特定类型问题的外观列中输入下列值,以改变其显示或行为。 有关各项内容的详细信息,请参阅外观。
外观 | 适用的问题类型 | 描述 | 在 Survey123 外业应用程序中受支持 | 在 Survey123 web 应用程序中受支持 |
---|---|---|---|---|
annotate | 图像 | 允许用户打开一个要草绘的画布窗口,该窗口也支持对图像的注释。 | 是 | 是 |
autocomplete | select_one | 显示在下拉菜单中的答案选项,输入文本可缩小选项的范围。 | 是 | 是 |
calculator | integer、decimal | 显示此问题的自定义计算器微件。 | 是 | 否 |
compact | select_one、select_multiple、begin group、begin repeat | 对于 select_one 和 select_multiple 问题,以节省空间的方式水平显示选择。 对于 groups 和 repeats,显示在启动时处于折叠状态的问题,用户可以将其展开。 | 是 | 是 |
compact-n | select_one、select_multiple | 以节省空间的方式水平显示选择,最大列数由 n 指定。 例如,compact-3 将问题限制为最多三列。 | 是 | 是 |
distress | integer | 以彩色滑动刻度尺的形式显示问题。 | 是 | 否 |
draw | 图像 | 允许用户打开一个要草绘的画布窗口。 | 是 | 是 |
field-list | begin group、begin repeat | 当调查样式设置为页面时,在单个页面上显示一组问题。 | 是 | 是 |
geocode | text | 搜索并提交地理编码地址。 | 是 | 是 |
getinframarkerid | text | 检索并存储唯一的 24 字符 InfraMarker 标签 ID。 | 是 | 否 |
hidden | 全部 | 从视图中隐藏问题,并同时接受默认值和计算。 | 是 | 是 |
hide-input | geopoint | 在 web 应用程序中打开调查时折叠坐标输入部分。 | 否 | 是 |
horizontal | select_one、select_multiple | 水平方向按列显示答案选项。 | 是 | 是 |
horizontal-compact | select_one、select_multiple | 与紧凑外观相同。 | 是 | 是 |
image-map | select_one、select_multiple | 使用可选区域来显示附加的 .svg 图像。 | 是 | 否 |
inframarker | text | 提供要写入 InfraMaker 标签的信息。 | 是 | 否 |
likert | select_one | 使答案选项以李克特量表(Likert scale)的形式显示。 | 是 | 是 |
minimal | select_one、select_multiple、barcode、begin repeat | 以隐藏或最小化的形式显示多个答案(select_one,select_multiple)、多个问题 (repeats) 和文本框 (barcode)。 | 是 | 是 |
minimal compact | begin repeat | 以折叠 (compact) 和隐藏 (minimal) 方式显示重复中的问题。 | 是 | 是 |
month-year | date | 仅为日期选择月份和年份。 | 是 | 是 |
multiline | text, image, file | 将文本问题显示为多行文本框。 它允许图像或文件问题的多个附件。 | 是 | 是 |
new-front | 图像 | 将问题限于仅拍照,其中使用前置照相机作为默认设置。 | 是 | 否 |
new-rear | 图像 | 将问题限于仅拍照,其中使用后置照相机作为默认设置。 | 是 | 否 |
no-ticks | range | 显示没有位置、最小值或最大值的范围滑块。 | 是 | 是 |
nopredictivetext | text | 禁用移动设备的预测文本。 | 是 | 否 |
numbers | integer、decimal | 显示此问题的自定义数字键盘。 | 是 | 否 |
predictivetext | text | 启用移动设备的预测文本。 | 是 | 否 |
press-to-locate | geopoint、geotrace、geoshape | 对于地理点问题,仅在用户与问题交互后接受位置。 geotrace 和 geoshape 问题将以用户的位置为中心,不会在用户首次与问题交互时捕获点。 | 仅适用于地理点 | 是 |
rangefinder | text | 接受完整的 JSON 对象或从测距仪返回的指定值。 | 是 | 否 |
search | text | 使用调查的媒体文件夹中的 CSV 表或者现有要素图层或表填充选项列表。 | 是 | 否 |
signature | 图像 | 显示可用于捕获签名的 UI。 签名将以附件的形式添加到要素。 | 是 | 是 |
spike | 图像 | 需要 Spike 设备和 Spike 应用程序。 它使用 Spike 集成来测量照片中的距离和位置。 | 是 | 否 |
spike-full-measure | 图像 | 需要 Spike 设备和 Spike 应用程序。 它使用 Spike 集成来测量照片中的距离、位置、面积和长度。 | 是 | 否 |
spike-point-to-point | 图像 | 需要 Spike 设备和 Spike 应用程序。 它使用 Spike 集成来测量两个拍摄点之间的距离。 | 是 | 否 |
spinner | integer、decimal | 添加按钮来增加和减少值。 | 是 | 否 |
table-list | begin group | 使用表格格式的常见选项列表在组内呈现一组 select_one 问题。 | 是 | 是 |
thousands-sep | decimal | 使用千位分隔符来显示答案。 它仅适用于预填充的答案。 | 是 | 否 |
week-number | date | 选择周数。 | 是 | 否 |
year | date | 仅为日期选择年份。 | 是 | 是 |
参数
XLSForm 中的某些问题类型具有额外参数,允许您控制调查中问题的样式或行为。 在某些情况下,这些参数补充了问题类型支持的外观。 有关每种问题类型支持的参数的概述,请参阅 XLSForm 参数。
默认值
在日期问题的 default 列中输入 today() 可设置今天日期的默认值。
对于 select_one 问题的默认值,输入选项名称而非选项标注。
select_multiple 问题类型的响应与其他不同,将按照选择答案时的顺序输入选中的答案,以逗号分隔。 要在 select_multiple 问题中将多个值定义为默认值,请以逗号进行分隔,例如:item1,item2,item3。
数据验证
在 required 列中输入 yes 作为值 这是必填问题将导致调查问题必须包含一个值,然后才能完成表单。
运算符
下表中列出的运算符可用于支持表达式的 XLSForm 列,包括约束、计算和相关列。
有关计算和限制的详细信息,请参阅公式,有关相关列使用的详细信息,请参阅构建表达式。
运算符 | 描述 | 示例 |
---|---|---|
。 | 当前答案 | .=1 |
+ | 加 | ${question_one} + 4 |
- | 减 | ${question_one} - 4 |
* | 乘 | ${question_one} * 4 |
div | 除 | ${question_one} div 4 |
= | 相等 | ${price}=9.80 |
!= | 不等于 | ${price}!=9.80 |
< | 小于 | ${price}<9.80 |
<= | 小于或等于 | ${price}<=9.80 |
> | 大于 | ${price}>9.80 |
>= | 大于或等于 | ${price}>=9.80 |
and | 和 | ${price}>9.00 and ${price}<9.90 |
mod | 模(除法余数) | ${question_one} mod ${question_two} |
or | 或 | ${price}=9.80 or ${price}=9.70 |
函数
Survey123 支持以下函数:
函数 | 描述 | 示例 |
---|---|---|
boolean(question, expression, or value) | 如果提供的值不为空,则返回 true。 否则,建议使用 boolean-from-string()。 警告:在 Survey123 web 应用程序中,此功能将始终返回 true。 有关替代方案,请参阅空值。 | boolean(${question_one}) |
boolean-from-string() | 如果提供的字符串为“true”或“1”,则返回 true。 否则,将返回 false。 | boolean-from-string(${question_one}) |
coalesce(value1, value2) | 返回第一个非空值。 此函数仅支持两个值。 | coalesce(${question_one}, ${question_two}) |
concat(value1, value2, …) | 返回字符串值的串联。 | concat(${question_one}, ' and ', ${question_two}) |
contains(string, substring) | 如果给定字符串包含子字符串,则返回 true。 | contains(${question_one}, 'red') |
count(repeat) | 返回给定的跨重复项问题答案的数量。 有关详细信息,请参阅聚合函数。 注:在 Survey123 外业应用程序中使用时,可将此函数置于重复的内部或外部。 如果要在 Survey123 web 应用程序中使用该函数,则必须将其放在重复的外部。 可以在重复内部的计算中引用来自重复外部的计数值。 | count(${question}) |
count-selected(question) | 返回针对 select_one 和 select_multiple 问题选择的答案的数量。 此函数还使用多行外观返回有关图像、音频和文件问题的附加文件数。 | count-selected(${question_one}) |
date(question, expression, or value) | 将数值或字符串转换为日期对象,不保留时间。 | date('2017-05-28T04:39:02+10:00') |
date-time(question, expression, or string) | 将数值或字符串转换为日期对象。 | date-time('2017-05-28T04:39:02+10:00') |
将日期对象转换为十进制日期时间值。 | decimal-date-time(${date_question}) | |
decimal-time(question, expression, or string) | 将时间对象转换为数字,该数字表示设备时区中的小数日。 | decimal-time(${time_question}) |
ends-with(string, substring) | 如果给定字符串以子字符串结尾,则返回 true。 | ends-with(${question_one}, 'hand.') |
false() | False | false() |
使现有的日期或时间值适合定义的格式。 | format-date(${previous_time}, '%H:%M') | |
if(condition, a, b) | 如果条件评估为 true,将返回 a;否则,将返回 b。 | if(selected(${question_one}, 'yes') and selected(${question_two}, 'yes'), 'yes', 'no') |
已构建索引的重复(问题、重复、索引号) | 返回重复记录中特定问题的值。 有关详细信息,请参阅重复。 | indexed-repeat(${room_no}, ${floor}, 3) |
int(question, expression, or value) | 转换为整数。 转换取决于数据类型。 注:如果此函数为空,则其将返回 NaN,并且问题将会留空。 | int(${question_one}) |
join(separator, question) | 在重复中将所有问题连接到给定答案,由给定分隔符进行分隔。 | join(',', ${question_in_repeat}) |
jr:choice-name(choice_name, 'question') | 用于 select_one 问题。 它将返回与给定问题中的选项名称相关联的标注。 请注意,必须在引号内定义问题。 | jr:choice-name(${select_one}, '${select_one}') |
用于 select_multiple 问题。 它将返回与给定问题中的选项名称相关联的标注。 必须使用 selected-at() 函数来提取单个答案的标注。 请注意,必须在引号内定义问题。 | jr:choice-name(selected-at(${select_multiple}, 3), '${select_multiple}') | |
max(value1, value2, ...) | 返回给定范围内的最大值,或跨重复项的单个问题。 | max(${question_one}, ${question_two}) |
min(value1, value2, ...) | 返回给定范围内的最小值,或跨重复项的单个问题。 | min(${question_one}, ${question_two}) |
not(expression) | 如果表达式返回 true,则返回 false 值;如果表达式返回 false,则返回 true 值。 | not(selected(., 'yes')) |
now() | 返回此时此刻的时间戳。 此函数用于时间和 dateTime 问题。 它在日期问题中与 today() 的行为相同。 | now() |
number(question, expression, or value) | 转换为数字。 转换取决于数据类型。 注:如果此函数为空,则其将返回 NaN,并且问题将会留空。 | number(${question_one}) |
once() | 如果问题已有值,则返回现有值。 浏览表单中的重复记录时,在重复问题中使用 random() 或 uuid() 以确保该值没有更改时,此函数是非常有用的。 | once(uuid()) |
position(..) | 返回重复中的当前记录的索引。 有关详细信息,请参阅重复。 | position(..) |
pulldata() | 从外部 CSV 文件返回一个值。 有关详细信息,请参阅从 CSV 中检索值。 | pulldata('users', 'email', 'name', ${respondent_name}) |
pulldata("@exif") | 从图像中的 EXIF 元数据返回一个值。 有关详细信息,请参阅提取图像元数据。 | pulldata("@exif", ${photo}, "GpsLatitude") |
pulldata("@geopoint") | 从地理点问题返回一个值。 有关详细信息,请参阅提取地理点值。 | pulldata("@geopoint", ${location}, "horizontalAccuracy") |
pulldata("@javascript") | 在表单中运行 JavaScript 函数并返回结果。 有关详细信息,请参阅调查表单中的 JavaScript 函数。 | pulldata("@javascript", "functions.js", "uniqueID", ${buildings}) |
pulldata("@json") | 从 JSON 对象返回一个值。 有关详细信息,请参阅从 JSON 中检索值。 | pulldata("@json", ${json_output}, "attributes.ZIP_CODE") |
pulldata("@layer") | 查询 ArcGIS 要素图层、要素表或查询启用的地图服务并返回结果。 有关详细信息,请参阅查询要素图层。 | pulldata("@layer", "getRecordAt", "https://services.arcgis.com/P3ePLMYs2RVChkJx/arcgis/rest/services/World_Time_Zones/FeatureServer/0", ${location}) |
pulldata("@property") | 返回有关设备或登录用户的信息。 有关详细信息,请参阅设备和用户属性。 | pulldata("@property", 'username') |
random() | 返回 0 (含)至 1 (不含)之间的一个随机值。 | random() |
regex() | 将正则表达式应用于问题的输入。 如果模式匹配,则返回 true。 有关详细信息,请参阅正则表达式。 | regex(., '^\d{5}$') |
selected(question, value) | 检查是否选择了答案。 此函数用于 select_one 和 select_multiple 问题。 | selected(${question_one}, 'a') |
selected-at(question, number) | 用于 select_multiple 问题。 它将返回给定编号的所选选项的名称(从零开始计数);例如,“2”将返回第三个所选选项。 | selected-at(${question_one}, 2) |
starts-with(string, substring) | 如果给定字符串以子字符串开头,则返回 true。 | starts-with(${question_one}, 'The') |
string(question, expression, or value) | 转换为字符串。 转换取决于数据类型。 | string(${question_one}) |
string-length(question, expression, or value) | 返回非空字符串的长度。 | string-length(${question_one}) |
substr(question, start, end) | 返回始于指定 start 的子字符串,并扩展至索引 end -1 上的字符,其中 start 和 end 从 0 开始。 | substr(${question_one}, 1, 2) |
sum(repeat) | 返回给定的跨重复项问题的所有答案的总和。 有关详细信息,请参阅聚合函数。 注:在 Survey123 外业应用程序中使用时,可将此函数置于重复的内部或外部。 如果要在 Survey123 web 应用程序中使用该函数,则必须将其放在重复的外部。 可以在重复内部的计算中引用来自重复外部的总和值。 | sum(${question}) |
today() | 返回今天的日期,内部存储为当地正午。 此函数用于日期问题。 | today() |
true() | True | true() |
uuid() | 返回随机 UUID 字符串。 | uuid() |
version() | 返回设置工作表中定义的调查版本。 | version() |
Survey123 支持以下数学函数:
函数 | 描述 | 示例 |
---|---|---|
acos(value) | 返回值的反余弦。 | acos(${question_one}) |
asin(value) | 返回值的反正弦。 | asin(${question_one}) |
atan(value) | 返回值的反正切。 | atan(${question_one}) |
atan2(value1, value2) | 返回多个值的商的反正切。 | atan2(${question_one}, ${question_two}) |
cos(value) | 以角度形式返回值的余弦,以弧度为单位。 | cos(${question_one}) |
sin(value) | 以角度形式返回值的正弦,以弧度为单位。 | sin(${question_one}) |
tan(value) | 以角度形式返回值的正切,单位为弧度。 | tan(${question_one}) |
exp(value) | 返回某个值的自然指数。 | exp(${question_one}) |
exp10(value) | 返回 10 的指定次幂。 | exp10(${question_one}) |
log(value) | 返回某个值的自然对数。 | log(${question_one}) |
log10(value) | 返回以 10 为底,某个值的对数。 | log10(${question_one}) |
pi() | 返回 pi。 | pi() |
pow(value, power) | 返回某个值的指定次幂。 | pow(${question_one}, 3) |
round(value, places) | 返回四舍五入的值。 | round(${question_one}, 5) |
sqrt(value) | 返回某个值的平方根。 | sqrt(${question_one}) |
HTML 样式
可以在问题标注和提示以及选择列表的标注中使用 HTML 格式。 受支持的 HTML 样式如下所示:
标记 | 属性 |
---|---|
a | href,style |
abbr | title |
audio¹ | autoplay、controls、loop、muted、preload |
b、strong、i、em、u、ul、ol、li、tbody、br、hr | |
dd、dl、dt | style |
div¹ | style,align |
figcaption | style |
figure | style |
font | size、color、style |
h1、h2、h3、h4、h5、h6 | style |
img | src、width、height、border、alt、style |
p | style |
source¹ | media、src、type |
span | style |
sub | style |
sup | style |
table | width、height、cellpadding、cellspacing、border、style |
td,th | height、width、valign、align、colspan、rowspan、nowrap、style |
tr | height、valign、align、style |
video¹ | autoplay、controls、height、loop、muted、poster、preload、width |
¹仅在 Survey123 web 应用程序中受支持。
提示:
默认情况下,使用在 Survey123 web 应用程序中打开的 HTML 样式创建的超链接将在与调查相同的选项卡中打开目标。 要在新选项卡中打开此链接,请将 target="_blank" 添加至 a href 标签,例如:
<a href="https://www.esri.com" target="_blank">Link to Esri website</a>
正则表达式
正则表达式是用于定义搜索模式的字符序列。 可将其用于问题当中,根据其他问题确定此问题的值,或者限制数据输入。 可通过下表中所列子表达式构建正则表达式。 有关详细信息,请参阅公式。
子表达式 | 匹配 |
---|---|
^ | 匹配行的开头。 |
$ | 匹配行的末尾。 |
。 | 与换行符以外的任意单个字符匹配。 |
[...] | 与括号中的任意单个字符匹配。 |
[^...] | 与未使用括号括起的任意单个字符匹配。 |
(re) | 分组正则表达式并记下匹配的文本。 |
(?: re) | 分组正则表达式但不记下匹配的文本。 |
a| b | 与 a 或 b 相匹配。 |
\A | 整个字符串的开头。 |
\b | 在括号外部时,匹配文字边界,在括号内部时,匹配退格 (0x08)。 |
\B | 匹配非字边界。 |
\d | 匹配数字。 它相当于 [0 到 9]。 |
\D | 匹配非数字。 |
\G | 与上一匹配结束处的点相匹配。 |
\n、\t、\e 等 | 匹配换行符、Tab 键、转义符等。 |
\N | 后向引用以捕获分组编号 N。 |
re* | 与正在处理的表达式的 0 或多个事件匹配。 |
re+ | 匹配前一个表达式 1 次或多次。 |
re? | 匹配前一个表达式 0 次或 1 次。 |
re{ n} | 精确匹配前一个表达式 n 次。 |
re{ n,} | 匹配前一个表达式 n 次或多次。 |
re{ n, m} | 匹配前一个表达式 n 至 m 次,其中至少为 n 次,最多为 m 次。 |
\s | 匹配空白字符:制表符、换行符、换页符、回车符或空格。 |
\S | 匹配非空白字符。 |
\w | 匹配单词字符。 |
\W | 匹配非字字符。 |
\z | 整个字符串的结尾。 |
\Z | 整个字符串的结尾,所允许的最后一行结束符除外。 |
例如,正则表达式 regex(.,'^[A-Za-z]*$') 要求用户在字符串问题中仅输入字母,而不能输入数字或特殊字符。
Esri 字段类型
bind::esri:fieldType 列可用来覆盖具有以下其中一个值的默认字段类型。 有关详细信息,请参阅 Esri 自定义列。
字段值 | 结果 |
---|---|
esriFieldTypeDate | 日期和时间值 |
esriFieldTypeDateOnly | 仅日期值,无时间值 |
esriFieldTypeTimeOnly | 仅时间值,无日期值 |
esriFieldTypeTimestampOffset | 日期、时间和相对于 UTC 值的偏移 |
esriFieldTypeDouble | 双精度浮点数 |
esriFieldTypeGUID | 全局唯一标识符 |
esriFieldTypeInteger | 整数(32 位) |
esriFieldTypeBigInteger | 整数(64 位) |
esriFieldTypePointZ | 启用地理点的高度捕获 |
esriFieldTypeString | 一系列字母数字符号 |
null | 空字段,不存储值 |
特殊字符
问题名称和选项名称不应包含特殊字符,如空格、逗号、连字符、圆括号、方括号或诸如 $、% 和 # 等字符。 select_multiple 问题的选项名称不得包含空格或逗号。