ArcGIS Survey123 поддерживает множество XLSForm спецификаций В этом справочнике приведено описание объектов XLSForm, которые могут использоваться в Survey123. Опросы можно создавать вSurvey123 Connect или Survey123 веб-сайте; некоторые возможности доступны только на одном из этих них, а некоторые – на обоих.
Типы вопросов
В следующей таблице представлены типы вопросов, доступные в Survey123 Connect, в полевом приложении Survey123, веб-дизайнере Survey123 и веб-приложении Survey123. На разных платформах по некоторым вопросам существуют различия с точки зрения поведения и реализации; о различиях читайте в примечаниях после таблицы.
Survey123 Connect типы вопросов | Survey123 тип вопроса веб-дизайнера | Описание | Поддерживается в полевом приложении Survey123 | Поддерживается в веб-приложении Survey123 |
---|---|---|---|---|
аудио⁴ | Аудио⁴ ⁶ | Записывает аудиоклип в полевом приложении. Записывает аудиоклип или берет выгруженный аудиофайл в веб-приложении. | Да | Да |
barcode | Сканирует штрих-код или QR-код | Да | Да | |
begin group | Начинает группу вопросов. | Да | Да | |
begin repeat | Н/Д | Начинает группу повторяющихся вопросов. | Да | Да |
вычислить | Н/Д | Выполняет калькуляцию значений по форме. Вычислить поле содержит результат калькуляции. | Да | Да |
десятичное¹ | Ввод десятичных знаков. | Да | Да | |
date | Ввод даты. | Да | Да | |
dateTime | Ввод даты и времени. | Да | Да | |
deviceid | Н/Д | UUID определенного устройства, на котором производился опрос. | Да | Нет |
email² | Н/Д | При входе под учетной записью организации в это поле автоматически заносится электронный адрес почты этой учетной записи. | Да | Да |
окончание | Н/Д | Дата и время окончания опроса. | Да | Да |
end group | Завершает группу вопросов. | Да | Да | |
end repeat | Н/Д | Завершает группу повторяющихся вопросов. | Да | Да |
file | Принимает файл на устройстве. | Да | Да | |
geopoint³ | Получает координаты GPS. По умолчанию используется текущее местоположение. | Да | Да | |
geoshape³ | Собирает полигон на карте. | Да | Да | |
geotrace³ | Собирает линию на карте. | Да | Да | |
hidden | Н/Д | Создает поле в векторном слое, которое не отображается в форме. Используйте столбцы bind::esri:fieldType и bind::esri:fieldLength, чтобы указать схему данных для этого поля. | Да | Да |
целое число¹ | Ввод целых чисел. | Да | Да | |
image | Принимается изображение из файлов на устройстве или непосредственно снятое фото. | Да | Да | |
note | Показывает текст на экране. Примечание также может управлять скрытыми вычислениями. | Да | Да | |
диапазон | Бегунок⁶ | Используется для заданного диапазона чисел. | Да | Да |
rank list_name | Вопрос типа Ранг. Предлагает список вариантов. Замените list_name именем списка выбора. | Да | Да | |
select_one list_name | Ниспадающий список⁵ ⁶, Шкала Лайкерта⁵ ⁶, Рейтинг⁶, Один вариант ответа⁶, Сетка одного варианта ответа⁶ | Вопрос с несколькими вариантами ответов; допускается выбрать только один из вариантов. Замените list_name именем списка выбора. | Да | Да |
select_one_from_file file_name.csv | Н/Д | Вопрос с несколькими вариантами ответов; допускается выбрать только один из вариантов. Замените file_name.csv именем файла, расположенного в папке мультимедиа опроса, который содержит список вариантов. | Да | Да |
select_multiple list_name | Вопрос с несколькими вариантами ответов; допускается выбрать несколько вариантов ответов. Замените list_name именем списка выбора. | Да | Да | |
select_multiple_from_file file_name.csv | Н/Д | Вопрос с несколькими вариантами ответов; допускается выбрать несколько вариантов ответов. Замените file_name.csv именем файла, расположенного в папке мультимедиа опроса, который содержит список вариантов. | Да | Да |
начало | Н/Д | Дата и время начала опроса. | Да | Да |
текст | Адрес⁶, Email⁶, Многострочный текст⁵ ⁶, Однострочный текст⁶, Веб-сайт⁶ | Ответ в произвольной форме. Для Email и веб-сайт применяется регулярное выражение. Вид геокодирования применяется к адресу. | Да | Да |
время | Ввод данных о времени. | Да | Да | |
username | Н/Д | При входе под учетной записью организации в это поле автоматически заносится имя пользователя этой учетной записи. | Да | Да |
¹Веб-дизайнер объединяет вопросы integer и decimal в один тип вопросов с именем Number. Опция в свойствах вопроса позволяет дизайнеру опроса задать необходимые входные данные.
²Вопросы типа email, представленные в Survey123 Connect и в веб-дизайнере Survey123, реализованы по-разному. Реализация в Survey123 Connect автоматически заполняется адресами электронной почты пользователей с учетной записью организации, с которой выполнен вход. Реализация в веб-дизайнере Survey123, наоборот, является текстовым полем, которое принимает только форматирование, соответствующее адресу электронной почты.
³Вопросы типа geopoint, geotrace и geoshape были объединены в один тип, который называется Карта. Опция в свойствах вопроса позволяет дизайнеру опроса задать необходимые входные данные. Новый тип вопроса "Адрес" позволяет отправлять геокодированные точки.
⁴Вопросы Аудио не поддерживают выгрузку в полевое приложение Survey123, как в веб-приложении. Чтобы разрешить выгрузку аудио в полевое приложение, используйте вопрос File.
⁵Несколько доступных видов оформлений в Survey123 Connect представлены взамен доступных типов вопросов в веб-дизайнере Survey123. Сюда относятся Многострочный текст, Ниспадающий список и Шкала Лайкерта.
Для каждого вопроса в веб-дизайнере предусмотрена возможность кэшировать ответ. В веб-приложении после отправки записи опроса ответ на вопрос будет кэширован в браузере и предварительно загружен в следующую отправку, сделанную для этого опроса на этом устройстве. Кэширование ответа можно настроить для всех типов вопросов, кроме Аудио, Изображения, Загрузки файла и Подписи.
Столбцы рабочего листа Survey
В следующей таблице перечислены столбцы, поддерживаемые в Survey123. Эти столбцы включены в рабочий лист опроса в Расширенном шаблоне и перечислены в этой таблице в том порядке, в котором они отображаются в рабочем листе.
Столбец | Описание |
---|---|
type | Выберите тип вопроса из предоставленного типа. Выберите корректное имя списка при помощи вопроса select_one или select_multiple. |
name | Имя поля векторного слоя. |
label | Подпись вопроса, отображаемая в опросе. |
hint | Информация, которая может помочь ответить на вопрос. |
guidance_hint | Дополнительная информация, отображаемая только после нажатия значка. |
appearance | Выберите оформление этого поля в вашем опросе. |
required | Выберите yes, чтобы потребовать значение для этого поля, прежде чем завершить опрос. |
required_message | Если в обязательном для заполнения поле нет ответа, появится сообщение из этого столбца, предлагающее ответить. |
readonly | Выберите yes, чтобы сделать значения этого поля доступными только для чтения. Эти значения нельзя редактировать в опросе. |
по умолчанию | Установить для поля значение по умолчанию. Это будет заполнять опрос значениями по умолчанию. Можно использовать для экономии времени, вводя или часто используемые ответы на вопрос, или показывая ожидаемый ответ на вопрос. |
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 | Укажите параметры, чтобы сделать опрос доступным в режиме измерения дальномера. |
параметры | Укажите параметры стандарта 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) | Введите переводы для подсказок к вашим вопросам. Язык задается по его названию и коду (например, label :: Spanish (es)). Добавьте новый столбец для каждого языка. Список языков появится в ниспадающем меню в опросе. |
guidance_hint::language (xx) | Введите переводы для ваших указывающих подсказок. Вам нужно задать язык по его имени и коду (например, guidance_hint::Español (es)). Добавьте новый столбец для каждого языка. Список языков появится в ниспадающем меню в опросе. |
required_message::language (xx) | Введите переводы для сообщения, которое появляется, если отсутствует ответ на обязательный вопрос. Язык задается по его названию и коду (например, required_message::Español (es)). Добавьте новый столбец для каждого языка. Список языков появится в ниспадающем меню в опросе. |
body::accuracyThreshold | Укажите числовое значение для порога (в метрах), выше которого значения положения не будут приняты. Применяется к геоточкам и вершинам вопросов Геоформа и Геотрассировка. |
bind::esri:warning | Примените выражение, которое отображает предупреждения, если условия не выполняются. |
bind::esri:warning_message | Сообщение, которое отображается, если не выполнены условия предупреждения bind::esri:warning . |
bind::saveIncomplete | Установите на true, если приложение должно автоматически сохранять ответ после вопроса. |
Оформление
В столбец оформления для конкретных типов вопросов можно указать следующие значения, определяющие их форму или свойства. Более подробно см. Оформление.
Оформление | Применимый тип вопроса | Описание | Поддерживается в полевом приложении Survey123 | Поддерживается в веб-приложении Survey123 |
---|---|---|---|---|
annotate | image | Позволяет пользователю открыть окно для рисования, где также поддерживаются аннотации на изображениях. | Да | Да |
autocomplete | select_one | Варианты ответов отображаются в ниспадающем меню, сокращающемся при вводе текста. | Да | Да |
calculator | integer, decimal | Показывает пользовательский виджет калькулятора для этого вопроса. | Да | Нет |
compact | select_one, select_multiple, begin group, begin repeat | Для вопросов select_one и select_multiple представляет варианты выбора по горизонтали в сжатой форме. Для групп и повторов представляет вопросы в свернутом виде на стартовой странице, которые пользователь может развернуть. | Да | Да |
compact-n | select_one, select_multiple | Представляет варианты по горизонтали в сжатой форме с максимальным количеством столбцов, заданным n. Например, compact-3 ограничивает вопрос максимум тремя столбцами. | Да | Да |
distress | integer | Отображает вопрос в виде цветной счетной линейки. | Да | Нет |
draw | image | Позволяет пользователю открыть окно для рисования. | Да | Да |
field-list | begin group, begin repeat | Показывает группу вопросов на отдельной странице, если стиль опроса задан как страницы. | Да | Да |
геокодировать | текст | Выполняет поиск и отправку геокодированного адреса. | Да | Да |
getinframarkerid | текст | Получите и сохраните уникальный 24-значный идентификатор тега InfraMarker. | Да | Нет |
hidden | Все | Скрывает вопрос, сохраняя при этом значения по умолчанию и вычисления. | Да | Да |
hide-input | geopoint | Сворачивает раздел ввода координат, если опрос открыт в веб-приложении. | Нет | Да |
horizontal | select_one, select_multiple | Отображает варианты ответов по горизонтали и в столбцах. | Да | Да |
horizontal-compact | select_one, select_multiple | Как в оформлении compact | Да | Да |
image-map | select_one, select_multiple | Отображает вложенное изображение .svg с выделяемыми регионами. | Да | Нет |
inframarker | текст | Укажите информацию для записи в тег InfraMaker. | Да | Нет |
likert | select_one | Представляет варианты ответов в виде шкалы Лайкерта. | Да | Да |
minimal | select_one, select_multiple, barcode, begin repeat | Представляет несколько ответов (select_one, select_multiple), несколько вопросов (повторов) и текстовоеполе (barcode) в скрытом или минимизированном стиле. | Да | Да |
minimal compact | begin repeat | Представляет вопросы в повторе как свернутыми (компактными), так и скрытыми (минимизированными). | Да | Да |
month-year | date | Выбирает в качестве даты только месяц и год. | Да | Да |
multiline | text, image, file | Представляет текстовый вопрос в виде многострочного текстового окна. Оно поддерживает несколько вложений для вопроса типа Изображение или Файл. | Да | Да |
new-front | image | Ограничивает вопрос только фотографированием, используя по умолчанию переднюю камеру. | Да | Нет |
new-rear | image | Ограничивает вопрос только фотографированием, используя по умолчанию заднюю камеру. | Да | Нет |
no-ticks | диапазон | Отображает бегунок диапазона без позиций, минимальных и максимальных значений. | Да | Да |
nopredictivetext | текст | Отключает интеллектуальный ввод текста для мобильных устройств. | Да | Нет |
numbers | integer, decimal | Показывает пользовательскую цифровую клавиатуру для этого вопроса. | Да | Нет |
predictivetext | текст | Включает интеллектуальный ввод текста для мобильных устройств. | Да | Нет |
press-to-locate | geopoint, geotrace, geoshape | Для вопросов Геоточка местоположения поддерживаются только после того, как пользователь обратится к вопросу. В вопросах типа Геотрассировка и Геоформа будут определяться местоположение пользователя, без захвата точки при первом взаимодействии с вопросом. | Только для геоточек | Да |
rangefinder | текст | Принимает либо полный объект JSON, либо указанное значение, возвращаемое дальномером. | Да | Нет |
поиск | текст | Заполняет список выбора значениями из таблицы CSV в папке media опроса, существующего векторного слоя или таблицы. | Да | Нет |
signature | image | Представляет пользовательский интерфейс для захвата подписи. Подпись добавляется к объекту в качестве вложения. | Да | Да |
spike | image | Необходимо устройство Spike и приложение Spike. Оно использует интеграцию Spike для измерения расстояния и местоположения на фотографии. | Да | Нет |
spike-full-measure | image | Необходимо устройство Spike и приложение Spike. Оно использует интеграцию Spike для измерения расстояния, местоположения, площади и длины на фотографии. | Да | Нет |
spike-point-to-point | image | Необходимо устройство Spike и приложение Spike. Оно использует интеграцию Spike для измерения расстояния между двумя сфотографированными точками. | Да | Нет |
spinner | integer, decimal | Добавляет кнопки для увеличения или уменьшения значения. | Да | Нет |
table-list | begin group | Представляет набор вопросов select_one внутри группы с общим списком выбора в виде таблицы. | Да | Да |
thousands-sep | decimal | Отображает ответы с разделителем разрядов. Применяется только к подготовленным ответам. | Да | Нет |
week-number | date | Выбирает порядковый номер недели. | Да | Нет |
year | date | Выбирает в качестве даты только год. | Да | Да |
Параметры
Некоторые типы вопросов в XLSForm имеют дополнительные настройки, позволяющие контролировать стиль и поведение вопросов. В некоторых случах эти параметры дополняют представления, поддерживающиеся вопросами. Обзор параметров, поддерживающихся каждым типов вопросов, см. в разделе Параметры XLSForm.
Значения по умолчанию
Если в столбец по умолчанию вопроса ввести today(), то значением по умолчанию станет сегодняшняя дата.
Введите имя варианта выбора (не надпись выбора) для значений по умолчанию для вопросов select_one.
Ответы на вопросы типа select_multiple имеют отличия от остальных, все они вводятся в том порядке, в котором были выбраны, и разделяются с помощью запятых. Чтобы задать несколько значений по умолчанию в вопросе select_multiple, их следует разделить запятыми, например, item1,item2,item3.
Проверка данных
Ввод значения Да в обязательном столбце , требующий ввода значения для завершения данной формы.
Операторы
Перечисленные в следующей таблице операторы можно использовать в столбцах XLSForm, которые поддерживают выражения, в том числе столбцы constraint, calculation и relevant.
Более подробно о вычислениях и ограничениях см. Формулы, а об использовании релевантного столбца см. Выражения форм.
Оператор | Описание | Пример |
---|---|---|
. | Текущий ответ | .=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, если введенное значение не null. Лучше использовать boolean-from-string(). Внимание:Эта функция будет всегда возвращать true в веб-приложении Survey123. Для альтернативных вариантов см. Пустые значения. | boolean(${question_one}) |
boolean-from-string() | Возвращает true, если введенное значение 'true' или '1'. В противном случае возвращается 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, она должна быть расположена снаружи повтора. Значение количества, расположенное снаружи повтора, может учитываться в вычислении внутри повтора. | 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) | Если условие оценивается как истина, возвращается 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) | Объединяет все ответы на данный вопрос, разделив их указанным разделителем. Примечание:При работе в полевом приложении Survey123, эта функция может быть расположены внутри или снаружи повтора. Если эта функция используется в веб-приложении Survey123, она должна быть расположена снаружи повтора. Значение связи, расположенное снаружи повтора, может учитываться в вычислении внутри повтора. | 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) | Возвращает булево значение ложь, если выражение вернуло истину, и возвращает булево значение истина, если выражение вернуло ложь. | not(selected(., 'yes')) |
now() | Возвращает текущее время для экземпляра. Эта функция используется в вопросах типа Время и ДатаВремя. Работает так же, как выражение today() iв вопросах типа Дата. | 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(вопрос, значение) | Проверяет, выбран ли ответ. Эта функция используется для вопросов 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) | Возвращает подстроку, начиная с заданного символа (начало) и заканчивая символом (конец -1, где наименьшим значением начала и конца является 0. | substr(${question_one}, 1, 2) |
sum(repeat) | Возвращает сумму всех ответов на заданный вопрос в повторах. Более подробно см. Функции агрегации. Примечание:При работе в полевом приложении Survey123, эта функция может быть расположены внутри или снаружи повтора. Если эта функция используется в веб-приложении Survey123, она должна быть расположена снаружи повтора. Значение суммы, расположенное снаружи повтора, может учитываться в вычислении внутри повтора. | sum(${question}) |
today() | Возвращает сегодняшнюю дату, которая хранится внутри, как полдень по местному времени. Эта функция используется в вопросах типа Дата. | today() |
true() | True | true() |
uuid() | Возвращает случайную строку UUID. | uuid() |
version() | Возвращает версию опроса, указанную в настройках рабочего листа. | version() |
Следующие математические функции поддерживаются в Survey123.
Функция | Описание | Пример |
---|---|---|
acos(значение) | Возвращает арккосинус значения. | acos(${question_one}) |
asin(значение) | Возвращает арксинус значения. | asin(${question_one}) |
atan(значение) | Возвращает арктангенс значения. | atan(${question_one}) |
atan2(значение1, значение2) | Возвращает арктангенс деления значений. | atan2(${question_one}, ${question_two}) |
cos(значение) | Возвращает косинус значения как угол в радианах. | cos(${question_one}) |
sin(значение) | Возвращает синус значения как угол в радианах. | sin(${question_one}) |
tan(значение) | Возвращает тангенс значения как угол в радианах. | tan(${question_one}) |
exp(значение) | Возвращает значение натуральной экспоненты числа. | exp(${question_one}) |
exp10(значение) | Возвращает значение, равное 10 в заданной степени. | exp10(${question_one}) |
log(значение) | Возвращает значение натурального логарифма числа. | log(${question_one}) |
log10(значение) | Вычисляет логарифм по основанию 10 числа. | log10(${question_one}) |
pi() | Возвращает значение pi. | pi() |
pow(значение, степень) | Возвращает значение в заданной степени. | pow(${question_one}, 3) |
round(значение, знаки) | Возвращает округленное значение. | round(${question_one}, 5) |
sqrt(значение) | Возвращает квадратный корень от числа. | 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.
Подсказка:
По умолчанию создается гиперссылка с HTML-форматированием и открывается в Survey123 веб-приложении на той же вкладке, что и отчет. А чтобы открыть эту ссылку в новой вкладке, добавьте 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 | Если за скобками, то соответствует границам слова, если в скобках соответствует символу backspace (0x08). |
\B | Соответствует границам, не образующим слово. |
\d | Соответствует цифрам. Эквивалентно [от 0 до 9]. |
\D | Соответствует не цифрам. |
\G | Соответствует точке, в которой завершено последнее совпадение. |
\n, \t, \e и т.д. | Соответствует новой строке, табуляции, выходу и т.д. |
\N | Обратная ссылка для операции получения номера группы N. |
re* | Соответствует 0 или более случаям появления предшествующего выражения. |
re+ | Соответствует 1 или более случаям появления предшествующего выражения. |
re? | Соответствует 0 или 1 случаям появления предшествующего выражения. |
re{ n} | Соответствует точному количеству случаев появления предшествующего выражения, заданному вместо n. |
re{ n,} | Соответствует n или более случаям появления предшествующего выражения. |
re{ 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 bit) |
esriFieldTypeBigInteger | Целочисленные значения (64 bit) |
esriFieldTypePointZ | Включает запись значений высот в геоточках |
esriFieldTypeString | Группа буквенно-цифровых символов |
null | Пустое поле, не содержит значений |
Специальные символы
Имена вопросов и ответов не должны содержать специальные символы, как-то пробелы, запятые, дефисы, круглые скобки, квадратные скобки и такие символы, как $, % и #. Важно, чтобы имена вариантов ответов для вопросов select_multiple не содержали пробелов или запятых.