Условия и логика

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

Все описанные действия выполняются на странице “Логика” . Для перехода на данную страницу нажмите “Редактор” в списке опросов и затем кнопку “Логика” в правом верхнем углу. Более подробно каждый из элементов описан в данном разделе ниже. Конструктор условий описан в конце данного раздела.


Скрытие вопросов

Для скрытия вопроса по условию необходимо перенести вопрос в группу и задать условие на группу. Подробнее описано в разделе “Скрытие групп”.


Скрытие групп

Для скрытия элементов, находящихся внутри группы, перейдите на страницу “Логика” и находясь на вкладке “Условия” выберите необходимую группу. Далее нажмите на три точки и в конструкторе условий создайте условие (Подробнее описано в разделе “Конструктор условий”). Группа будет отображена в том случае, если условие выполнится. Таким образом, группа будет скрыта, если условие не выполнится. Если условие отсутствует, то группа будет также отображена.

В случае, если на группу установлено условие, то возле нее отобразится синий кружок .

Для удаления условия нажмите на три точки и выберите “Удалить условие”.


Скрытие вариантов ответов

Для скрытия вариантов ответов выборочного вопроса, вариантов ответов(столбцов) или вопросов(строк) матрицы (далее элемент) перейдите на страницу “Логика” и находясь на вкладке “Условия” выберите необходимый элемент. Далее нажмите на три точкии в конструкторе условий создайте условие (Подробнее описано в разделе “Конструктор условий”). Элемент будет отображен в том случае, если условие выполнится. Таким образом, элемент будет скрыт, если условие не выполнится. Если условие отсутствует, то элемент будет также отображен.

В случае, если на элемент установлено условие, то возле него отобразится синий кружок.

Для редактирования условия нажмите на три точкии выберите “Редактировать условие”. Для удаления условия нажмите на три точкии выберите “Удалить условие”.


Скринер

Для прерывания опроса (скринер) по условию перейдите на страницу “Логика” и находясь на вкладке “Скринер” нажмите “Добавить”. Введите описание скринера (видно только администраторам) и создайте условие в конструкторе условий. В случае выполнения условия опрос будет прерван и статус анкеты установится в “Скринер”.

Может быть создано любое количество скринеров.

Для редактирования скринера нажмите “Редактировать”.

Для удаления скринера нажмите “Удалить”.


Валидация вопроса по условию

Если необходимо вывести пользователю ошибку на определенном вопросе в случае выполнения определенного условия, перейдите на вкладку “Валидация” на странице “Логика”. Выберите необходимый вопрос и нажмите . Введите текст ошибки и в конструкторе условий создайте условие. В случае выполнения данного условия пользователь увидит ошибку и не сможет продолжить опрос. Текст ошибки может быть отформатирован (жирность, курсив, подчеркивание), а также может быть вставлено выражение Flow (подробнее описано в разделе Flow).

Например: на вопросе Q1 сумма значение полей с ID 1 и ID 2 не равняется 100 и необходимо вывести ошибку “Сумма не равняется 100”. Для этого для вопроса Q1 введите текст ошибки “Сумма не равняется 100”, а в конструкторе в режиме Flow введите Flow выражение (${Q1[1]|value} + ${Q1[2]|value}) != 100

Второй пример: цена, введенная пользователем для товара (Brand 3) в вопросе Q7.1 (вариант ответа 1) не может быть меньше 5$. Flow выражение в этом случае будет: ${Q7.1[1]} < 5


Конструктор условий

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


Режим констуктора

Для создания условия в режиме конструктора выберите вопрос. Условие может ссылаться на вопросы, которые стоят до элемента, на которые задается условие. В случае с “Валидацией вопроса по условию” условие может ссылаться на сам вопрос, на который устанавливается ошибка. Таким образом, в списке вопрос будут доступны только те вопросы, на которое может ссылаться условие.

Note: Режим конструктора позволяет строить простые условия. Если Вам требуется построить сложное условие, где чередуются операторы “И” и “ИЛИ” или используются математические формулы, то необходимо использовать режим Flow.

После выбора вопроса появится список вариантов ответов (если вопрос выборочный) или список вопросов (строк) матрицы и список вариантов ответов (столбцов) (если матрица). Выберите нужный вариант ответа, если это выборочный вопрос. Если вопрос матрица, выберите вопрос (строку) матрицы и вариант ответа (столбец) матрицы (условие ссылается на ячейку матрицы).

После этого в зависимости от типа варианта ответа или типа ячейки матрицы появятся операторы.

Список опероторов для типов:

  • Закрытый (по умолчанию)
    • Выбран (вариант ответа отмечен)
    • Не выбран (вариант ответа не отмечен)
  • Текстовый
    • Выбран
    • Не выбран
    • “=” - равно заданному тексту
    • “!=” - не равно заданному тексту
  • Числовой
    • Выбран
    • Не выбран
    • “=” - равно
    • “!=” - не равно
    • “>=” - больше или равно заданному числу
    • “<=” - меньше или равно заданному числу
    • “>” - больше заданного числа
    • “<” - меньше заданного числа
  • Дата
    • Выбран
    • Не выбран
    • “=” - равно
    • “!=” - не равно
    • “>=” - больше или равно заданной дате
    • “<=” - меньше или равно заданной дате
    • “>” - больше заданной даты
    • “<” - меньше заданной даты
  • Время
    • Выбран
    • Не выбран
    • “=” - равно заданному времени
    • “!=” - не равно заданному времени
    • “>=” - больше или равно заданному времени
    • “<=” - меньше или равно заданному времени
    • “>” - больше заданного времени
    • “<” - меньше заданного времени
  • Рейтинг
    • Выбран
    • Не выбран
    • “=” - равно
    • “!=” - не равно
    • “>=” - значение рейтинга больше или равно заданному числу
    • “<=” - значение рейтинга меньше или равно заданному числу
    • “>” - значение рейтинга больше заданного числа
    • “<” - значение рейтинга меньше заданного числа
  • Список
    • Выбран
    • Не выбран
    • “=” - равно порядковому номеру элемента в списке
    • “!=” - не равно
    • “>=” - порядковый номер больше или равен заданному числу
    • “<=” - порядковый номер меньше или равен заданному числу
    • “>” - порядковый номер больше заданного числу
    • “<” - порядковый номер меньше заданного числу

После выбора оператора введите значение (для операторов “Выбран” или “Не выбран” ввод значения не требуется). Для ввода даты отобразится календарь. Для ввода времени отобразится шкала времени.

После этого вы можете добавить дополнительное условие через оператор “И” или “ИЛИ”. Количество условий может быть любым.

После задания необходимых условий нажмите “Сохранить”.

Рекомендуется искользовать только “И” или “ИЛИ” оператор в одном условии.


Режим Flow выражений

Режим Flow позволяет задать условие в режиме Flow выражения (Подробнее описано в разделе Flow).

Тип, который должен получиться в результате вычисления Flow выражения должен быть логический. В случае другого типа при сохранении будет выдана ошибка “Неверный тип вычисления”.

Например, необходимо создать условие, где проверяется:

  • Выбран ли в вопросе Q1 вариант ответа с ID 1, необходимо ввести: ${Q1[1]|checked}. Для матрицы ID строки 2 и ID вариантов ответа 3 выражение будет выглядеть: ${Q1[2][3]|checked}.
  • Введенное числовое значение пользователем в вопросе Q3 вариант ответа ID 2 равляется ли 2: ${Q3[2]|value} == 2.
  • Сумма вариантов ответов с ID 1, 2 и 3 в вопросе Q4 равняется ли 100: (${Q4[1]|value} + ${Q4[2]|value} + ${Q4[3]|value}) == 100
  • Введенная дата в вопросе Q5 варианте ответа ID 1 больше ли сегодняшней даты: ${Q5[1]|value} > currdate()
  • Выбран ли в вопросе Q6 вариант ответа с ID 1 или в вопросе Q7 вариант ответа c ID 1: ${Q6[1]|checked} || ${Q7[1]|checked}

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