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

Элементы отчета можно скрывать или отображать с помощью условий, используя выражения 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, если два заданных значения не равны

>

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

>=

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

<

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

<=

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

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