Примеры
Пример 1
Q[1].Num = 1 AND Q[2].Num = 2
Значит, что результат будет показан, если на первый вопрос был дан ответ номер 1, а на второй вопрос, ответ номер 2. Это также можно записать как
q1a1 + q2a2 = 2
Переменная q1a1 вернет 1, если пользователь на первый вопрос выберет первый ответ и 0, если любой другой
Пример 2
Sum >= 2 AND Sum < 10
Сумма значений для всех ответов выбранных пользователем больше либо равна 2 и меньше 10.
Пример 3
Можно ввести измерения, добавив сумму балов по измерению в переменную. Например если тест определяет тип человека и в нем два вопроса
- Где проще взять миллион?
- Заработать
- Выиграть в лотерею
- Ваши действия во время пожара?
- Бежать
- Посмотреть план эвакуации
Тогда можно создать переменную c именем Real для типа Реалист и формулой
q1a1 + q2a2
и переменную Sens для типа Чуствительный c формулой
q1a2 + q2a1
Теперь создавая 2 категории
- Вы Реалист. Формула Real = Max(Real; Sens)
- Вы Человек Чувства. Формула Sens = Max(Sens; Real)
В результате, если человек ответит 1a и 2b, то он попадет в первую категорию, а если 1b и 2a, то во вторую. Во всех остальных случаях, будут отображеный оба результата, т. к. условие выполняется для обоих категорий. Это является следствием того, что по каждой из шкал достигнут максимальный результат - 1 балл
Что можно использовать в формулах
Номера, значения и текст оветов
- Q[N].Val - зничение ответа (из колонки значение)
- Q[N].Vals - массив всех значений*
- Q[N].Num - номер ответа
- Q[N].Nums - массив номеров всех ответов*
- Q[N].Text - текст ответа
- Q[N].Texts - массив текстов ответов*
- Q[N].QuestionText - текст вопроса
N = 1..колл. вопр
* если вопрос со множеством ответов
Логические операторы
- AND - опертор И
- OR - оператор ИЛИ
- NOT - оператор НЕ
Приоритет операторов можно задавать беря выражения в круглые скобки - ( и )
Дополнительные функции
Аргументы функций разделяются символом точка с запятой - ";"
- q № вопроса a № ответа — (напр. q3a1) возвращает 1, если в данном вопросе выбран данный ответ, 0 в противном случае
- Max(arg1; arg2;..;arg12) - максимум среди всех введеных значений arg1 .. arg 12
- Min(arg1; arg2;..;arg12) - минимум среди всех введеных значений arg1 .. arg 12
Операции со строками
Строки задаются двойными кавычками. Например "видео"
- Q[1].Text = "валокардин" - можно сравнить с другой строкой
- Q[1].Text.Contains("мерседес")- можно задать часть строки для сравнения. В этом случае будет возвращено Правда, если пользователь введет "меседес" или "мерседес бенц"