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