Несколько вариантов ответа

XLSForm поддерживает вопросы select_one (выбор только одного ответа), select_multiple (выбор несколько ответов) и rank (порядок в списке). Написание вопросов со множеством ответов требует добавления рабочего листа вариантов в рабочую книгу Excel. Ниже приводится пример вопроса select_one:

Выберите один вопрос в форме
Выберите один вариант в форме

Учтите, что yes_no на рабочем листе survey должен соответствовать yes_no в столбце list name рабочего листа choices. Это обеспечит корректное отображение списка вариантов ответов для конкретного вопроса на форме.

По умолчанию, когда опрос публикуется, варианты ответов в вопросах select_one (выбор только одного ответа) добавляются в векторный слой опроса в виде доменов кодированных значений. Вы можете не создавать домены при публикации. Подробнее см. Опции публикации.

Когда вы меняете варианты ответов на вопросы select_one (выбор только одного ответа) и повторно публикуете опрос, в Survey123 Connect отображается сводка изменений и вы можете решить, должны ли эти изменения применяться к доменам в векторном слое. Более подробную информацию см. в разделе Обновление опроса.

Внимание:

Ниже приводятся ограничения использования списка выбора с повторяющимися именами вариантов:

  • Повторяющиеся имена вариантов не поддерживаются для вопросов select_multiple.
  • Повторяющиеся имена вариантов не поддерживаются для опросов на нескольких языках.
  • Функция jr:choice-name() возвращает подпись первого дубликата в списке.
  • При открытии из папок Входящие, Черновики, Исходящие, Отправленные и Обзор вопросы select_one возвращаются к первому дублирующемуся варианту в списке.

Вы также можете добавлять вопросы со множеством вариантов ответов, которые позволяют выбирать несколько вариантов ответов на вопрос, например:

Выберите несколько вопросов в форме
Выберите несколько вариантов в форме

По умолчанию, эти варианты появляются в порядке, в котором они идут в рабочем листе choices. Вместо этого вы можете задать случайный порядок появления этих вариантов путем ввода randomize=true в столбце параметров.

Внимание:

Все значения, собранные в вопросе select_multiple или rank, сохранены как список, разделенный запятыми, поэтому избегайте использования запятых в именах столбцов вашего списка вариантов. Также обратите внимание на то, что вопросы select_multiple и rank отправляют в векторный слой только номер варианта, а не имя и подпись, как это происходит с вопросами select_one.

Значение вопроса rank останется пустым до тех пор, пока пользователь не изменит порядок выбора. Если было задано значение по умолчанию, будет применяться порядок по умолчанию, если он не будет изменен пользователем.

Отдельный ответ на вопрос select_multiple может быть возвращен с помощью функции selected-at. В следующем случае будет возвращено значение имени для первого данного ответа на вопрос select_multiple:

selected-at(${species}, 0)

Чтобы отправить надпись для ответа, вы можете использовать функцию jr:choice-name. Чтобы получить значение надписи для второго ответа, данного на тот же вопрос select_multiple используйте следующее:

jr:choice-name(selected-at(${species}, 1), '${species}')

Другое (укажите)

Для вопросов со множеством вариантов ответов опрос может включать опцию для выбора ответа "другое", если желаемый вариант ответа не перечислен. Респонденту будет предложено указать другую опцию. Вы можете сделать это в XLSForm вручную или с помощью встроенного метода. Встроенный метод работает быстрее и проще в настройке, чем вручную, но в нем есть ряд ограничений.

Метод Вручную

Рекомендуется использовать метод Вручную, поскольку он позволяет указать имя и метку другого варианта выбора, а также имя и метку текстового вопроса, который собирает другой ответ. Вы можете указать переводы для этих имен и меток. Вы также можете применить ограничения и оформления для текстовых вопросов и сделать их обязательными.

Для начала добавьте вариант other к списку вариантов для вопроса в рабочем листе вариантов выбора. Укажите имя и метку для этого выбора, как и для других вариантов выбора в списке. В следующем примере в списке вариантов color есть вариант с именем other.

Список для выбора с вариантом other в таблице вариантов

В листе опроса добавьте текстовый вопрос, чтобы собирать ответы типа other. Добавьте соответствующее выражение, чтобы этот текстовый вопрос возникал только тогда, когда выбран вариант other. В следующем примере вопрос other_color появляется только в том случае, если ответ на вопрос select_one выбран как other.

Выражение соответствия для дополнительного текстового вопроса в списке опроса

Для опросов на нескольких языках вопросы и варианты выбора могут быть переведены. В следующем примере представлены варианты перевода French и Greek в рабочем листе опросов и для вопроса select_one, и для текстового вопроса.

Переведенные текстовые метки в таблице опроса

Перевод также представлен в таблице выбора, включая вариант другое.

Переведенные варианты в таблице выбора

Встроенный метод

С этим методом Survey123 Connect автоматически создает вариант "другое" и вопрос для сбора другого ответа. Чтобы использовать этот метод, введите or_other после имени списка выбора в столбце type рабочего листа опроса. Вариант Другое будет показан в списке вариантов для этого вопроса. Если выбран вариант Другое, показывается вопрос Укажите другое, позволяя пользователям ввести их собственный ответ. Чтобы сохранить этот ответ, Survey123 Connect автоматически создает дополнительное поле в векторном слое, используя имя вопроса с несколькими вариантами ответа, к которому добавляется _other, например, favorite_toppings_other. Ознакомьтесь со следующим примером:

Выберите несколько вопросов или другой вопрос в форме
Внимание:

Подпись к вопросу Укажите другое не отобразится на языках, отличных от английского.

При создании опроса из существующего векторного слоя поле для вопроса Укажите другое автоматически создаваться не будет, а опрос не опубликуется. Необходимо вручную создать поле для вопроса Укажите другое в векторном слое с именем вопроса с несколькими вариантами ответа, к которому добавлено _other, например, favorite_toppings_other.

Внешние списки выбора

Вы можете сохранить списки выбора для вопросов select_one и select_multiple во внешнем файле .csv. Это идеально подходит для очень больших списков выбора, опросов с несколькими списками выбора, а также для списков выбора, которые управляются вне Survey123. Внешние списки выбора не следует путать с внешними выборками, в которых варианты должны содержаться в дополнительной таблице.

Файл .csv должен содержать столбцы с именем и надписью.

Примечание:

Если в файле .csv отсутствует заголовок столбца или в конце строк файла имеется запятая, файл не может быть импортирован в опрос.

Для получения наилучших результатов кодируйте файл .csv кодировкой символов UTF-8. Если вы используете Microsoft Excel для создания своего файла .csv, сохраните его как CSV UTF-8.

Чтобы создать вопрос с внешним списком выбора, введите тип вопроса - select_one_from_file или select_multiple_from_file, - а после него - путь к файлу .csv, к примеру, select_one_from_file CoverType.csv. Имена файлов чувствительны к регистру и не поддерживают пробелы.

Есть два способа включить файл .csv: сохранить его в папку media опроса или связать с файлом .csv, размещенным в ArcGIS.

Подсказка:

Запустите инструмент Конвертировать списки выбора в CSV, чтобы автоматизировать перенос списков выбора из рабочего листа Choices в файлы .csv.

Связать с файлом .csv

Чтобы связать файл .csv из ресурсов ArcGIS с опросом, выполните следующие действия:

  • Убедитесь, что файл .csv размещен в ArcGIS Online или ArcGIS Enterprise и имеет те же разрешения на общий доступ, что и опрос.
  • Убедитесь, что опрос опубликован в ArcGIS до того, как начата привязка ресурсов.
  • Откройте в Survey123 Connect опрос и щелкните вкладку Связанные ресурсы. Нажмите на кнопку Связанные ресурсы выберите CSV и найдите и выберите файл .csv для связывания.

Чтобы в предварительном просмотре формы отображались варианты из связанного файла .csv, на вкладке Связанные ресурсы Survey123 Connect нажмите кнопку загрузить. Это действие помещает копию файла .csv в папку медиа-файлов опроса. Связанные файлы автоматически загружаются вместе с опросом в приложении для полевых работ Survey123.

Если вы вручную поместите файл .csv в папку медиа-файлов опроса, а позже загрузите файл .csv с тем же именем в ArcGIS и свяжете его с опросом, файл .csv в опросе будет обновлен из связанного ресурса (если он новее).

Конвертировать списки выбора в CSV

Запустите инструмент Survey123 Connect Конвертировать списки выбора в CSV, чтобы автоматически перенести указанные списки выбора из рабочего листа Choices в новые файлы .csv папки media. Инструмент также изменяет соответствующие вопросы в рабочем листе Survey, чтобы использовать типы вопросов select_one_from_file и select_multiple_from_file.

Для запуска инструмента выполните следующие действия:

  • Настройте среду Python в Survey123 Connect, чтобы можно было запустить инструмент. Дополнительные сведения смотрите в разделе Настройка Python.
  • Откройте XLSForm опроса. В рабочем листе Choices добавьте столбец esri_tool_convert_csv. Добавьте значение да хотя бы в одну строку для каждого списка выбора, который вы хотите преобразовать во внешние списки выбора. Сохраните и закройте файл.
  • Откройте в Survey123 Connect опрос, нажмите Инструменты и выберите Конвертировать списки выбора в CSV.

Когда преобразование завершится, файл .csv будет сохранен в папке media каждого перемещенного списка выбора. Имя файла соответствует исходному значению имени списка выбора (столбец list_name). Рабочий лист Choices обновится и будет содержать только оставшиеся списки, которые не были перенесены. Он по-прежнему содержит пользовательские заголовки столбцов из источника. В рабочем листе Survey соответствующие вопросы select_one и select_multiple заменяются на select_one_from_file и select_multiple_from_file для ссылки на новые внешние списки выбора. Исходный рабочий лист Choices сохраняется в рабочем листе choice_backup, чтобы вы могли проверить результаты или отменить их. Вы можете сохранить рабочий лист backup или удалить его.

Инструмент не преобразует списки выбора, используемые в вопросах типа Ранг, группах таблиц-списков или вопросах в виде поиска. Ни один из вопросов, в которых используются эти списки выбора, не изменяется в опросе.

Если инструмент обнаружит неподдерживаемые вопросы, в папке отладки создается файл .xlsx с именами списка затронутых списков выбора. Вы можете найти этот файл в следующей папке:

C:\Users\<username>\ArcGIS\My Survey Designs\<surveyName>\debug\convertchoicelists