Шаблоны отчета

Функция отчета веб-сайта Survey123 позволяет создавать собственные персонализированные шаблоны и несколько отчетов одновременно.

Отчет может содержать следующее:

  • Раздел Итоговой информации
  • Отдельную запись опроса
  • Отдельную запись опроса и раздел итоговой информации
  • Несколько записей опросов
  • Несколько записей опросов и раздел итоговой информации
Примечание:

Печать отчетов является премиум-сервисом ArcGIS Online и расходует кредиты. Для получения более подробной информации см. раздел Печать отчетов.

Печать отчетов в ArcGIS Enterprise не расходует кредиты, но имеет ограничения.

Шаблон отчета – это файл Microsoft Word (.docx), содержащий место для текста определенного формата и синтаксиса. При печати отчета на это место будет помещено содержание соответствующих полей из ответов опроса. Образец текста может быть с любом формате, с таблицами, изображениями или другими элементами, что позволяет получить необходимый вам шаблон.

Для создания нового шаблона нажмите кнопку Отчет на панели вверху карты на вкладке Данные, а затем щелкните Управлять шаблонами. Появится новое окно, позволяющее скачать образец, загрузить новый шаблон или изменить имя и сводку существующего шаблона. Щелкните Новый шаблон, чтобы загрузить новый шаблон отчета, а после загрузки укажите имя и сводку для вашего шаблона. Или можно использовать ссылку Скачать образец шаблона для скачивания образца шаблона на основе вашего опроса.

Примечание:

Шаблоны отчетов может загрузить только владелец отчета или администратор организации.

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

Выражения

Ответ на вопрос может отображаться в шаблоне отчета, если его имя заключено в фигурные скобки, такие как { и }, и в начале стоит знак доллара. Любое значение строки, включенное в выражение, должно быть заключено в двойные кавычки.

Следующее будет отображать ответ на текстовый вопрос с именем firstname.

${firstname}

Помимо отображения ответа на вопрос в отчете, ключевые слова могут использоваться для отображения другой полезной информации. Следующее будет отображать текущие дату и время при печати отчета:

${$date}

Если результатом является массив, то можно выполнить итерацию по массиву, используя # в качестве начального тега и / в качестве конечного тега в фигурных скобках. Следующее выражение позволяет напечатать все файлы изображений отдельными строками:

${#image1}
${$file}
${/}

Также можно использовать выражения для настройки способа отображения ответов. Выражение может состоять из названия одного вопроса или ключевого слова (как показано выше), вычисления по одному или нескольким вопросам или ключевым словам, а также из имени вопроса или ключевого слова с методами и параметрами для стилизации или ограничения ответа. В выражении используются следующие обозначения:

${questionname or keyword | method:parameter}

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

Следующее выражение будет отображать вычисление числового вопроса, называемого floweringtrees деленного на числовой вопрос, называемый totaltrees. При использовании нескольких вопросов в одном выражении, имена отдельных вопросов должны быть указаны прямо, без использования скобок.

${floweringtrees / totaltrees}

Следующее выражение будет отображать значение координаты x из вопроса местоположения, где getValue - это метод, а x - параметр.

${location | getValue:"x"}

Следующее выражение будет отображаться как истинное в ответе если ответ на вопрос с именем fruitcolor не равен красному.

${if fruitcolor!="red"}The fruit is not red.${/}

Строки могут быть собраны в выражение с помощью знака плюс. Это выражение использует соединение для передачи содержания вопроса field_0 в сервис генерации QR-кодов, создавая QR-код для ответа на вопрос.

${$image | src:"https://barcode.tec-it.com/barcode.ashx?code=QRCode&data="+field_0}

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

МетодПараметрыТип вопроса Connect.Тип вопроса Web designer.Описание

getValue

-

Все типы вопросов

Все типы вопросов

Извлекает значение необработанных данных из векторного слоя или необработанное изображение из вложения.

getValue

x, y, z, wkid

geopoint

Карта

Получает координаты x, y, z по отдельности в указанной пространственной привязке. Параметр wkid является необязательным и будет таким же, как пространственная привязка векторного слоя, если он не указан.

getValue

длина, площадь, секция, тип измерения

geotrace, geoshape

Карта

Возвращает длину полилинии, периметр или площадь многоугольника в заданных единицах, а также то, являются ли измерения планарными или геодезическими. Тип измерения по умолчанию - геодезический.

getValue

имя, размер

изображение, аудио, файл

Изображение, Подпись, Аудио, Файл

Возвращает имя файла или размер вложения.

getValue

ширина, высота, x, y, дата, время, направление

image

Изображение, подпись

Ширина и высота возвращают целочисленное значение ширины и высоты изображения в пикселях, а x, y, дату, время и направление возвращают значения, считанные из EXIF изображения, если они есть.

getValue

count

начать повтор, изображение, аудио, файл

Повтор, Изображение, Подпись, Аудио, Файл

Возвращает общее число повторов или вложений.

getValue

положение

начать повтор, изображение, аудио, файл

Повтор, Изображение, Подпись, Аудио, Файл

Возвращает целое число, равное позиции с индексом 1 в массиве.

getValue

duration

audio, file

Аудио, Файл

Возвращает длительность аудио-записи в секундах.

Внимание:

Длительность не будет возвращена в ответах, собранных в веб-приложении при использовании Safari.

appearance

multiline

текст

Многострочный текст

Используется для сохранения разрывов строк в строке. Если внешний вид не задан, ответ возвращает однострочную строку.

appearance

bullets

select_multiple

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

Возвращает ответ в виде маркера.

checked

Имя выбора

select_one, select_multiple

Несколько вариантов ответа, Один вариант ответа, Сетка одного варианта ответа, Ниспадающий список, Шкала Лайкерта, Рейтинг

Возвращает поставленную отметку, если значение поля равно значению имени, в противном случае возвращает снятую отметку.

selected

Имя выбора

select_one, select_multiple

Несколько вариантов ответа, Один вариант ответа, Сетка одного варианта ответа, Ниспадающий список, Шкала Лайкерта, Рейтинг

Если домен кодированных значений существует, возвращает true, если значение поля равно значению имени, в противном случае возвращает false.

countSelected

-

select_one, select_multiple

Несколько вариантов ответа, Один вариант ответа, Сетка одного варианта ответа, Ниспадающий список, Шкала Лайкерта, Рейтинг

Возвращает количество выбранных вариантов.

selectedAt

index

select_one, select_multiple

Несколько вариантов ответа, Один вариант ответа, Сетка одного варианта ответа, Ниспадающий список, Шкала Лайкерта, Рейтинг

Возвращает строку в положении индекса в списке выбора. Индекс начинается с единицы.

locale

код языка

date, dateTime, start, end, decimal

Дата, Дата и время, Число

Возвращает локализованные дату, время и число.

format

строка формата

date, dateTime, integer, decimal, start, end

Дата, Дата и время

Возвращает отформатированную строку даты.

utcOffset

значение смещения

date, dateTime, start, end

Дата, Дата и время

Возвращает значение даты или даты-времени, сдвинутое на значение смещения к UTC.

mapSettings

индетификатор элемента веб-карты, масштаб карты

geopoint, geotrace, geoshape

Карта

Задает базовую карту и масштаб при печати изображения карты.

Прежние версии:

Заменено map и mapScale.

mapExtent

xmin, ymin, xmax, ymax, wkid

geopoint, geotrace, geoshape

Карта

Задает фиксированный экстент карты при печати изображения карты. Параметр wkid является дополнительным и будет задан как 4326 (WGS 1984), если не указано.

карта

Идентификатор элемента веб-карты

geopoint, geotrace, geoshape

Карта

Задает базовую карту при печати изображения карты.

mapScale

масштаб карты

geopoint, geotrace, geoshape

Карта

Задает масштаб карты при печати изображения карты.

mapFilters

layer ID на веб-карте JSON, параметры запроса

geopoint, geotrace, geoshape

Карта

Задает один или несколько фильтров векторного слоя на веб-карте при печати изображения карты.

rotate

degrees

геоточка, георассировка, геоформа, изображение

Карта, Изображение

Определяет угол поворота карты или изображения.

drawingInfo

currentLayer, URL слоя объектов

geopoint, geotrace, geoshape

Карта

Задает информацию для отображения при печати изображения карты, включая символы, надписи и прозрачность.

src

URL изображения

-

-

Задает исходный URL-адрес динамического элемента изображения.

size

ширина, высота, макс. ширина, макс. высота

image

Изображение

Задает размер печатаемого изображения.

round

количество знаков после запятой

decimal, geopoint, geoshape, geotrace

Число

Округляет десятичное число до указанных десятичных знаков.

useGrouping

boolean

decimal

Число

Если true, возвращает число с разделителями групп, которые задаются локальными настройками, если ложь, то разделители не используются.

toFixed

количество знаков после запятой

decimal, geopoint, geoshape, geotrace

Число

Задает фиксированное число знаков после разделители десятичных знаков. Добавляет ноль, если требуется фиксированное количество цифр.

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

Ключевое словоОписание

$date

Вставляет текущие дату и время при печати отчета. По умолчанию выводит дату в текущем локальном формате.

Примеры:

${$date | format:"MM/DD/YYYY"}
$($date | utcOffset:"+08:00"}
$($date | locale:"zh-cn"}

$image

Вставляет элемент изображения в отчет. Используйте метод src для задания URL изображения.

Пример:

${$image | src:"https://upload.wikimedia.org/wikipedia/commons/1/13/Esri_Headquarters%2C_Building_Q.jpg"}

$map

Вставляет элемент карты в отчет без привязки к вопросу опроса.

Пример:

${$map | map:"10df2279f9684e4a9f6a7f08febac2a9" | mapScale:4000000 | size:200:100}

$shape

Печатает геометрию (точку, полилинию или полигон) текущего объекта на карте.

Примеры:

${$shape}
${$shape | map:"10df2279f9684e4a9f6a7f08febac2a9" | mapScale:4000000 | size:200:100}

$attachment

Представляет первое вложение или все вложения текущего объекта.

Примеры:

${$attachment | getValue:"name"}
${$attachment | getValue:"size"}
${$attachment | size:200:300}

Чтобы итерировать все вложения, включите начальный и конечный теги:

${#$attachment}
${$file}
${/}

$file

Представляет текущий файл при итерации нескольких файлов вопроса опроса с вложениями или вложений объекта.

Примеры:

${#image1}
${$file | size:460:0}
{/}

${#$attachment}
${$file | getValue:"position"}. ${$file | getValue:"name"}
${/}

$feature

Представляет текущий объект внутри массива объектов.

Пример:

{#repeat1}
{$feature | getValue: "position"}
{/}

$layers["<layername>"] или

$layers[<layerId>]

Ссылается на любой слой по имени или идентификатору в том же сервисе объектов, что и слой съемки.

Примеры:

${$layers["cities"] | where:”1=1 !important” | stats:”count,objectid”}
${#$layers["states"]}...${/}

В окне Управление шаблонами выберите Краткий справочник, чтобы открыть страницу, содержащую пример синтаксиса выражений для изменения ответа, отображаемого в отчете для каждого вопроса вашего опроса. Чтобы скопировать этот синтаксис, нажмите кнопку Копировать в буфер обмена, затем вставьте синтаксис в документ шаблона. После загрузки шаблона используйте опции панели Отчет, чтобы создать свой отчет. Для получения более подробной информации см. раздел Печать отчетов.

Краткий справочник по отчетам с примерами синтаксиса

В следующих разделах описаны общие сценарии использования выражений для каждого типа вопросов и приведены примеры.

Текст

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

${multilinetext1 | appearance:"multiline"}

Поместите это выражение в отдельную строку, в противном случае возникнут ошибки.

Числа

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

${number1 - 15}

${number1 * 6}

${number1 / number2}

${number1 % number2}

Подсказка:

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

Для вопросов с десятичными знаками можно использовать выражение round для настройки максимального количества знаков после запятой для округления значения. В следующем примере число 3,141592 округляется до 4 знаков после запятой, 3.1416:

${decimal1 | round:4}

Выражение toFixed можно использовать для настройки максимального количества знаков после запятой для округления значения. В следующем примере число десятичных знаков исправлено с 3,14 до 3,140:

${decimal1 | toFixed:3}

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

СимволОписание

.

Разделитель десятичных знаков.

,

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

0

Обязательные число цифр. Если ответ содержит меньше цифр, чем обязательное количество, он будет дополнен нулями.

#

Дополнительные цифры. Если ответ содержит больше указанного числа цифр, он будет округлен.

Подсказка:

Десятичные разделители и разделители разрядов при печати будут отображаться в соответствии с выбранной локалью.

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

${decimal1 | format:"#,##0.###"}

Изображения и другие вложения

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

${image1 | size:width:height:max_width:max_height}

Значения ширины и высоты управляют размером изображения и выражаются в пикселах. Хотя эти значения являются обязательными для выражения, использование значения 0 не ограничивает данный размер этого изображения. Например, в следующем выражении ширина изображения ограничивается 300 пикселами при сохранении соотношения сторон:

${image1 | size:300:0}

Значения максимальной ширины и высоты ограничивают максимальные размеры изображения и являются дополнительными. В следующем примере изображению принудительно задается ширина 300 пикселов, а высота ограничивается 200 пикселами:

${image1 | size:300:0:0:200}

Метод rotate может использоваться для поворота изображения по часовой. Принимает значения от 0 до 360.

${image1 | size:300:0:0:200 | rotate:90}

У вопросов с изображениями также может быть информация об изображении, извлеченном и показанном в ответе. Это можно применить для показа имени файла и размера изображения следующим способом:

${image1 | getValue:"name"}

${image1 | getValue:"size"}

${image1 | getValue:"width"}

${image1 | getValue:"height"}

Этот же способ можно использовать для отображения данных EXIF из изображения, показывая информацию о времени и месте получения фото:

${image1 | getValue:"x"}

${image1 | getValue:"y"}

${image1 | getValue:"date"}

${image1 | getValue:"time"}

${image1 | getValue:"direction"}

Для отображения исходного изображения в полном размере и качестве, используйте выражение без методов или выражение getValue без значений:

${image1} или ${image1 | getValue:""}

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

${image1 | getValue:"" | size:300:0}

Примечание:

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

Даты и время хранятся как строки в данных EXIF, поэтому для вопросов даты и времени эти значения невозможно форматировать в отчете при помощи выражения format. Если важно форматировать эти значения, рассмотрите возможность выполнении извлечения EXIF как составляющей вашего опроса при помощи функции pulldata("@exif"). Более подробно см. Изображения.

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

${file1 | getValue:"name"}

${file1 | getValue:"size"}

${file1 | getValue:"globalId"}

${file1 | getValue:"id"}

${file1 | getValue:"contentType"}

${file1 | getValue:"keywords"}

Если все вложения объекта являются изображениями, используйте следующие заполнители, каждый из которых должен быть размещен в отдельной строке:

${#$attachment}
${$file}
${/}

Чтобы вернуть в ответ несколько изображений, отправленных на один и тот же вопрос, используйте имя изображения вопроса вместо $attachment:

${#image1}
${$file}
${/}

Этот способ подходит для показа изображений в ArcGIS Enterprise версий до 10.8.1 или показа изображений, которые не были добавлены к объекту вне Survey123. В следующем примере показаны имена файлов всех вложений объекта:

${#$attachment}
${$file|getValue:"name"}
${/}

Чтобы отобразить изображение из интернета, укажите его исходный URL-адрес с выражением src при ссылке $image на ключевое слово вместо имени вопроса:

${$image |
src:"https://upload.wikimedia.org/wikipedia/commons/1/13/Esri_Headquarters%2C_Building_Q.jpg"
| size:400:0}

Карта

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

По умолчанию, карта в отчете будет использовать веб-карту, заданную для вопроса. Если масштаб карты установлен на 0 или параметр опущен, масштаб карты определяется объектами на карте следующим образом:

  • Если на карте только один точечный объект, масштаб карты соответствует масштабу, заданному для вопроса.
  • Если на карте есть только один линейный или полигональный объект, масштаб карты определяется экстентом объекта.
  • Если на карте несколько объектов, масштаб определяется экстентом всех объектов.

Вопросы типа Карта поддерживают настройку ID элемента веб-карты и масштаба карты в виде дополнительных параметров. В следующем примере используется масштаб карты 1:100000:

${location | map:"7e2b9be8a9c94e45b7f87857d8d168d6" | mapScale:100000}

Для всех вопросов по карте метод rotate может использоваться для поворота по часовой стрелке на север по отношению к виду. Принимает значения от 0 до 360.

${location | map:"7e2b9be8a9c94e45b7f87857d8d168d6" | mapScale:100000 | rotate:90}

Если в качестве ID элемента веб-карты вы оставите пустую строку, для вопроса будет использована базовая карта по умолчанию. Если вы установите масштаб карты равным 0 или опустите этот параметр, карта будет использовать экстент, заданный по умолчанию для вопроса.

Метод mapExtent можно использовать для точного задания экстента карты в отчеты. В следующем примере показан фиксированный экстент Токио, Япония:

${location | mapExtent:139.7:35.6:139.9:35.8:4326}

Вопросы по карте также поддерживают выражение размера, доступное для вопросов типа Изображение. Вы можете использовать это выражение для управления разрешением карты, отображаемой в отчете, как показано на следующем примере:

${location | size:400:400}

Выражения map, mapScale и size могут использоваться вместе для задания ID веб-карты и масштаба, а также разрешения изображения карты, как показано в следующем примере:

${location | map:"7e2b9be8a9c94e45b7f87857d8d168d6" | mapScale:100000 | size:400:400}

Примечание:

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

Если ваша карта содержит большое количество записей вы можете использовать метод mapFilters, чтобы ограничить количество отображаемых записей. В следующем примере параметр where используется для фильтрации веб-карты, которая имеет только один слой, для отображения записей с POP2000 больше 999999:

${location | map:"7e2b9be8a9c94e45b7f87857d8d168d6" | mapFilters:"where=POP2000>999999"}

В следующем примере mapFilters первый параметр фильтрует слой городов (чей layer id 18ece64a1fc-layer-5), чтобы показать только первые три записи, с наибольшей численностью населения в штате Калифорния. Второй параметр, отделенный от первого параметра двоеточием, фильтрует слой штатов (чей layer id 18ece64a1fc-layer-6), чтобы отобразить только штат Калифорния:

${$map | map:"7e2b9be8a9c94e45b7f87857d8d168d6" | mapFilters:"'18ece64a1fc-layer-5':where=ST='CA'&orderByFields=POP2000 ASC&resultRecordCount=3":"'18ece64a1fc-layer-6':where=stateName='California'"}

Примечание:

Layer id — свойство объекта feature layer веб-карты JSON.

По умолчанию, вопрос по карте будет отображаться с использованием символов карты по умолчанию, независимо от символов, заданных на слое объектов. Можно использовать метод drawingInfo для извлечения информации об отображении, хранящейся в определенном слое объектов, включая символы, надписи и прозрачность. Вы можете использовать эту информацию из текущего слоя, или из любого другого, указав URL.

${location | drawingInfo:"currentLayer"}

${location | drawingInfo:"https://.../FeatureServer/0"}

Если в опросе нет вопроса типа карта, или если вы создаете отчеты для сервисов объектов без связанных опросов, то геометрию записи по-прежнему можно будет возвращать с помощью заполнителя ${$shape}.

В разделе итоговой информации выражением для вопроса карты отображается несколько входных для вашего вопроса геометрических объектов. Если вы хотите включить другие ресурсы для отдельного отчета, введите выражение where с тегом !important. Более подробно см. в разделе Дополнительный синтаксис. Следующее выражение отображает всю геометрию в слое, у которой значение в поле статуса равно 'broken':

${location | where:"status='broken' !important" | map:"<itemID>" | size:400:300}

Примечание:

В приведенном выше примере масштаб карты опущен. Если вы установите масштаб карты равным 0 или опустите параметр, а карта содержит несколько записей, карта будет использовать объединенный экстент всех записей.

Вы можете задать, чтобы выражение where всегда было равным true, чтобы отображалась вся геометрия карты:

${location | where:"1=1 !important"}

Это также можно использовать для отображения всех точек в повторе:

${repeat1.repeatLocation | where:"inspectionId=123 !important" | size:400:300}

Ключевое слово $shape также можно использовать для возвращения множества геометрий карты.

${$shape | where:"1=1 !important" | drawingInfo:"currentLayer" | size:400:300}

Ключевое слово $map можно использовать для печати карты, не ссылающейся на вопрос опроса.

${$map | map:"7e2b9be8a9c94e45b7f87857d8d168d6" | mapScale:100000 | size:400:400}

Геоточки

Для вопросов типа геоточка выражения можно использовать для отображения значений широты и долготы из вопросов:

${location | getValue:"x"}

${location | getValue:"y"}

Одним выражением нельзя отобразить оба значения; если требуются оба значения, следует использовать два выражения.

Подсказка:

Также возможно отобразить значение высоты через простое выражение, но только если базовый векторный слой поддерживает z-значения:

${location | getValue:"z"}

По умолчанию, значения широты, долготы и высоты возвращаются в том же виде, как в ответах, без сокращения. Часто эти значения более длинные, чем необходимо, можно применить выражения round или toFixed для округления десятичных знаков.

${location | getValue:"x" | round:3}

${location | getValue:"x" | toFixed:3}

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

${location | getValue:"x":4326}

Геотрассировка и геоформа

Для вопросов геотрассировки и геоформы, выражение getValue можно использовать для отображения длины линии или периметра полигона соответственно:

${polyline1 | getValue:"length":"meters":"planar"}

Для вопросов геоформы, выражение getValue также можно использовать для отображения площади полигона:

${polygon1 | getValue:"area":"hectares":"geodesic"}

Единицы измерения и метод вычисления являются дополнительными параметрами. Для единиц измерения длины используются следующие единицы измерения:

  • feet
  • kilometers
  • meters
  • miles
  • nautical-miles
  • yards

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

  • acres
  • hectares
  • square-miles
  • square-kilometers
  • square-meters
  • square-feet
  • square-yards

Либо вы можете использовать любые из esriSRUnitType Constants или esriSRUnit2Type Constants, которые поддерживаются ArcGIS REST API. В своем выражении используйте числовой код для постоянной в кавычках:

${polyline1 | getValue:"length":109002:"geodesic"}

Если единицы измерения не указаны, то значением по умолчанию для длины будет kilometers, а для площади -square-kilometers.

Методом может быть либо geodesic, либо planar. Если ни один метод не выбран, по умолчанию будет использоваться geodesic.

Дата, время и дата-время

Чтобы ваши вопросы типа Дата и Дата-время точно соответствовали формату вашего региона, можно использовать выражение, форматирующее эти вопросы в соответствии с заданной локалью. Метод locale должен быть помещен в начало выражение, а код локали должен быть указан в нижнем регистре.

${datetime | locale:"pt-br"}

Примечание:

Более подробно о кодах локали см. статью Wikipedia Список кодов ISO 639-1. Однако примите во внимание, что не все эти языки поддерживаются в Survey123.

Все значения даты и даты-времени в векторном слое хранятся в формате времени UTC. По умолчанию, все значения даты и даты времени, возвращаемые в отчете, находятся в одной и том же часовом поясе, что и веб-браузер, который запрашивал создание отчета. Метод utcOffset можно использовать для изменения отображения этих значений в отчете для соответствия определенному часовому поясу. Следующее выражение покажет ответ на вопрос даты-времени со смещением в один час от UTC:

${datetime | utcOffset:"+01:00"}

Метод utcOffset поддерживает форматы +01:00, +0100 и +01, и возвращает тот же результат. Этот метод также можно применять для изменения отображения времени подтверждения ответа. Также имейте в виду, что utcOffset не работает с временными вопросами.

Для вопросов типа Дата и Дата-время выражение может использоваться для выбора формата, при этом используются заместители DD, MM и YYYY для дней, месяцев и годов соответственно. В следующем выражении отображается только день и месяц, год пропускается:

${date | format:"DD/MM"}

Также можно форматировать время в вопросах Дата-время, используя HH, mm и ss для часов, минут и секунд, соответственно. В следующем выражении отображается день, месяц, часы и минуты:

${datetime | format:"DD/MM HH:mm"}

Вы можете отобразить даты и время в формате ISO 8601 YYYY-MM-DDTHH:mm:ss±HH:mm, оставив значение для метода format пустым, как показано в следующем примере:

${datetime | format:""}

Для получения дополнительной информации о форматах даты и времени см. таблицу ниже.

Примечание:

Метод format должен быть помещен в конец выражения.

Вы можете напечатать дату и время создания отчета, используя ключевое слово $date. Используйте метод format для управления печатью даты, времени или и того, и другого. Следующий синтаксис позволяет вывести дату создания отчета (без указания времени) в формате даты по умолчанию для вашего региона:

${$date}

Следующее выражение выводит месяц, день, год, часы и минуты для даты и времени создания отчета:

${$date | format:"MM/DD/YYYY HH:mm"}

Следующее выражение выводит время создания отчета (без даты) в часах, минутах и ​​секундах в 12-часовом формате:

${$date | format:"h:mm:ss A"}

Ключевое слово $date также поддерживает методы utcOffset и locale. Метод locale игнорируется, если заданы обе опции format и locale.

Форматы даты и времени

В следующей таблице перечислены наиболее распространенные заполнители, которые можно использовать в методе format для форматирования даты и времени в отчете:

ЗаполнительОписание

YY

Две последние цифры года.

Пример: 2023 будет представлен как 23.

ГГГГ

Четыре цифры года.

Пример: 2023 будет представлен как 2023.

М

Номер месяца от 1 до 12.

Пример: январь будет представлен как 1.

MM

Номер месяца двумя цифрами.

Пример: январь будет представлен как 01.

MMM

Месяц тремя буквами.

Пример: Январь будет представлен как Янв

MMMM

Полное название месяца.

Пример: Январь будет представлен как Январь

D

День месяца от 1 до 31.

Пример: Первое число месяца будет представлено как 1.

DD

День месяца двумя цифрами.

Пример: Первое число месяца будет представлено как 01.

Do

День месяца, который включает порядковый суффикс.

Пример: Первый день месяца будет обозначен как 1е.

H

Час по 24-часовому диапазону.

Пример: 11 часов вечера будет представлено как 23.

HH

Час по 24-часовому диапазону двумя цифрами.

Пример: 2 часа ночи будет представлено как 02.

h

Час по 12-часовому диапазону.

Пример: 11 часов ночи будет представлено как 11.

hh

Час по 12-часовому диапазону двумя цифрами.

Пример: 2 часа ночи будет представлено как 02.

m

Минута от 0 до 59.

Пример: 8 минут будет представлено как 8.

mm

Число минут двумя цифрами.

Пример: 8 минут будет представлено как 08.

ss

Число секунд двумя цифрами.

Например, 9 секунд будут показаны как 09.

Z

Смещение часового пояса в часах с использованием разделителя.

Примеры: -07:00, +13:00

ZZ

Смещение часового пояса в часах без использования разделителя.

Примеры: -0700, +1300

x

Время в миллисекундах в формате Unix.

Пример: 9 часов вечера 4 мая 2023 GMT будет представлено как 1683234000000.

X

Время в формате Unix.

Пример: 9 часов вечера 4 мая 2023 GMT будет представлено как 1683234000.

a

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

Пример: a.m. будет представлено как am, а p.m. будет представлено как pm.

A

Запись заглавными буквами обозначения утра или полудня.

Пример: a.m. будет представлено как AM, а p.m. будет представлено как PM.

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

Если вопрос упоминается в качестве заполнителя, например ${select_one}, то он вернет надпись выбора. Если в выражении используется вопрос с одним вариантом ответа, либо вопрос использует внешний выбор, то вопрос с одним вариантом ответа будет возвращать имя элемента выбора. В примере ниже использует значение имени, а не надписи для условного выражения:

${if select_one=="choice1Name"}The user selected the first choice.${/}

Если вы специально хотите отобразить имя выбора, а не надписи, используйте выражение getValue:

${select_one | getValue:""}

Для вопросов с одним и несколькими вариантами выбора выражение может использоваться для размещения отметки рядом с элементом для выбора, которая заполняется в зависимости от ответа. Должно быть использовано имя варианта выбора (не надпись выбора). Следующие выражения будут отображать выбранные фрукты:

${select_one | checked:"apple"} Apple

${select_one | checked:"pear"} Pear

Если для вопроса с выбором одного или нескольких вариантов ответа включено Allow "Other", используйте имя варианта other:

${select_one | checked:"other"} Other fruits you like: ${favFruits_other}

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

${select_multiple | countSelected}

${choiceQuestion1 | selectedAt:2}

Примечание:

Выражение selectedAt начинает отсчет выбранных вариантов с нуля. То есть ${choiceQuestion1 | selectedAt:2} возвратит третий выбранный вариант.

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

${select_multiple | appearance:"bullets"}

Примечание:

Если надпись выбранного вами элемента содержит двойные кавычки, им должна предшествовать обратная косая черта. В противном случае ваш отчет не будет распечатан. Обратная косая черта не обязательна для одиночных кавычек. Ниже приведен пример:

${select_one | checked:"Service provided by \"Greg's Plumbing\""} Service provided by "Greg's Plumbing"

Повторы

Для доступа к вопросам на повторе добавьте в свой шаблон секцию повторов. Для повторяющихся ошибок имен, ${#defects} заполнитель обозначает начало секции повтора, а ${/} - ее конец. Заполнители, указывающие на вопросы в повторе, должны находится между заполнителям начала и конца секции повтора.

Примечание:

Если вы хотите распечатать содержание повтора в таблице, убедитесь, что начальный и конечный теги находятся либо оба в пределах таблицы, либо оба - вне ее. Отчет не может быть создан, если один из них находится в таблице, а другой - вне ее. В большинстве случаев, если начальный и конечный тег расположены внутри таблицы, начальный должен находиться в первой ячейке, а конечный - в последней.

Чтобы получить доступ к вопросам внутри вложенного повтора, поместите его теги между тегами для каждого слоя повтора над предполагаемой секцией повтора. Ниже приведен пример:

${#repeat1}
${#repeat2}
${#repeat3}
${field1InRepeat3}, ${repeat2.field1}, ${repeat1.field1}, ${mainLayer.field1} 
${/}
${/}
${/}

Выражения отчетов не поддерживают специальные символы, в частности, дефисы, в ссылках на имена слоев с использованием ${layername} синтаксиса . При ссылке на слой, который содержит специальный символ в имени, используйте подчеркивание вместо любых специальных символов. Либо можно сослаться на слой $layers ключевым словом с именем или ID слоя, например, ${$layers["my layer name"]} или ${$layers[0]}. Это может применяться для дублирования имен слоев.

Чтобы сослаться на поле в вашем повторе, которое называется так же, как и родительский повтор, используйте синтаксис полного пути, включающий и поле, и имя повтора, например, ${sharedName.sharedName}.

Для отображения индекса записи повтора используйте getValue выражение с зарезервированным ключевым словом $feature. Этот пример будет давать 1 для первой записи в повторе, 2 для второй и так далее:

${#defects}
${$feature | getValue: "position"}
${/}

Запросы отчетов

Функции агрегирования можно использовать для производства запросов значений в напечатанных ответах. Эти запросы лучше всего подходят для раздела итоговой информации, который в отчете будет отображаться только один раз, независимо от количества напечатанных ответов. Более подробно см. Запросы отчетов.

Чтобы ограничить печать вашего отчета определенным числом повторов, а не печатать каждый повтор, связанным с ответом, используйте метод resultRecordCount, чтобы задать определенное число повторов для печати:

${#defects | resultRecordCount:20}...${/}

Метод orderByFields можно использовать для определения порядка, в котором будут печататься повторы. Объявите имя поля и добавьте ASC или DESC, и повторы будут напечатаны в соответствии с введенными в это поле данными по возрастанию или по убыванию, соответственно:

${#defects | orderByFields:"state_name ASC, pop2000 DESC"}...${/}

Условные элементы отчета

Элементы отчета можно скрывать или отображать с помощью условий, используя выражения if. Выражение if можно использовать, введя его в начальный заполнитель ${if expression} с ${/}, которое обозначает конец сегмента условия. Ниже приведены некоторые примеры выражения if, которые можно использовать, чтобы отобразить или скрыть части отчета:

  • ${if photo1} отображает раздел, только если дан ответ на вопрос photo1.
  • ${if integer1>0} отображает раздел, только если ответ на вопрос integer1 дан в виде положительного числа.
  • ${if ((geopoint1 | getValue:"y")>0)} отображает раздел, только если геоточка расположена в северном полушарии.
  • ${if multiple_choice1 | selected:"A"} отображает этот раздел, только если в вопросе с несколькими вариантами ответов выбран вариант "A".
  • ${if (repeat1 | getValue:"count")>=3} отображает этот раздел, только если repeat1 содержит три или более записей.

В следующем примере текст во второй строке будет отображаться в отчете только в том случае, если для приоритета high выбрать один вопрос выбран :

${if priority | selected:"high"}
High priority issues must be addressed within seven days.
${/}

Чтобы проверить, содержит ли ответ значение для вопроса, убедитесь, что используется только оператор if, ссылающийся напрямую на имя поля, без других операторов, например, ${if photo1}. Этот формат гарантирует, что пустые строки, нулевые и неопределенные значения будут считаться пустыми. Этот формат применяется к полям типа строковое, числовое, поле даты и поле вложений. Если этот формат используется с повторами, этот раздел будет отображаться до тех пор, пока повторяется хотя бы один элемент.

Чтобы использовать условные операторы с вопросами о дате и времени, выполняйте вычисления, используя время эпохи (миллисекунды, прошедшие с 1 января 1970 г.). Например, ${if (date1|getValue:"") < 1602735375000} отображает раздел, только если дата старше 14 октября 2020 г. Имейте в виду, что синтаксис отчета не имеет эквивалента XLSForm today() или now() функциям, поэтому невозможно составить условный оператор для времени, связанного с тем, когда отчет был напечатан.

Поддерживаются следующие логические операторы:

ОператорОписание

||

Возвращает true, если одно выражение из двух возвращает true

&&

Возвращает true, если оба выражения возвращают true

!

Возвращает true, если выражение не возвращает true

==

Возвращает true, если два заданных значения равны

!=

Возвращает true, если два заданных значения не равны

>

Определяет, действительно ли первое значение больше второго

>=

Определяет, действительно ли первое значение больше или равно второму

<

Определяет, действительно ли первое значение меньше второго

<=

Определяет, действительно ли первое значение меньше или равно второму

Ограничения

При использовании шаблонов отчетов существуют следующие ограничения:

  • Фильтры, примененные к повторам на веб-сайте Survey123, не будут применяться в отчетах. Повторы можно фильтровать в отчете только с помощью выражений.
  • Ваша карта не будет отображаться в отчете, если в ней используется версия веб-карты ниже 2.0, которая была выпущена в июле 2014 года.
  • Ваша карта не будет отображаться в отчете, если портал ArcGIS Enterprise не имеет действующего SSL-сертификата.
  • Печать с помощью шаблонов отчетов не работает в развертываниях ArcGIS Enterprise, которые не имеют публичного доступа. При попытке это сделать появится ошибка getaddrinfo ENOTFOUND.
  • Печать с помощью шаблонов опроса не работает с развертываниями ArcGIS Enterprise, использующими аутентификацию Integrated Windows Authentication (IWA).
  • В один запрос отчета может быть включено не более 2 000 записей.
  • Когда веб-сайт Survey123 установлен в вашей инфраструктуре, использовать отчеты API невозможно. Отчеты можно создавать только при использовании https://survey123.arcgis.com/.