Подстановки

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

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

Подстановку можно ввести в следующих местах:

  • Название и комментарий любого вопроса. В том числе можно изменить формат подстановки (сделать жирным, курсивом и т.д.).
  • Название и комментарий раздела. В том числе можно изменить формат подстановки (сделать жирным, курсивом и т.д.).
  • Название и комментарий логического блока "НАЧАЛО" или "КОНЕЦ". В том числе можно изменить формат подстановки (сделать жирным, курсивом и т.д.).
  • В вопросе типа шкала - в тексте любого из 5 ярлыков.
  • В названии ответов в вопросах типа выбор вариантов.
  • В названии собственных ответов в вопросах типа уточняющий.
  • В названии диапазонов в вопросах типа "диапазон".
  • В названии столбцов и строк в вопроса типа "сетка".


Формат подстановки следующий:

@@<id вопроса> - для типа текст/дата/шкала/число
@@<id вопроса>|[#<id ответа> или <номер ответа по порядку заполнения>] - для типа выбор/уточняющий
@@<id вопроса>|[#<id строки>#<значение ячейки в строке> или <номер ответа по порядку заполнения>] - для типа сетки

Разделителем кода вопроса и порядкового номера ответа должна быть вертикальная черта |. (См. про порядок ответов на вопрос).
Разделителем кода вопроса и кодом ответа должна быть #.

Примеры правильного использования подстановки:
@@Q1 - где Q1 - вопрос типа текст.
@@Q2|2 - где Q2 - вопрос типа выбор вариантов, будет взят второй отмеченный ответ.
@@Q3|#998 - где Q3 - вопрос типа выбор вариантов, будет взят ответ с ID 998
@@Q4|3 - где Q4 - вопрос типа сетка, будет взята третья отмеченная ячейка.
@@Q5|#R2#3 - где Q5 - вопрос типа сетка, будет взята та ячейка в строке с ID R2, которая имеет значение 3.

Если по какой-то причине указана несуществующая подстановка (нет такого ID вопроса или ответа, или нет такого порядкового номера ответа и т.д.), то код будет заменен на пустое значение.

Если она является корректной, то тогда вместо неё будет подставлено следующее значение:

  • Для текста: значение, которое пользователь ввел в строку. Если ничего не ввел (необязательное поле) - пустая строка.
  • Для даты: дата, которую выбрал пользователь. Если не выбрал (необязательное поле) - пустая строка.
  • Для шкалы: выбранное пользователем число. Если не выбрал (числовая шкала) - пустая строка.
  • Для выбора вариантов: если этот ответ был не типа "другое", то тогда подставится текст ответа. Если ответ был типа "другое" - подставится тот текст, который ввел пользователь в этом поле. Если данный ответ отмечен не был - пустая строка.
  • Для уточняющего вопроса: собственные ответы работают по такой же логике, как и для выбора вариантов. Ответы родительского всех типов, кроме типа "другое" - подставляется текст ответа. Ответы родительского типа "другое" - подставляется текст, который пользователь ввел в этом ответе, отвечая на родительский вопрос. Если данный ответ отмечен не был - пустая строка.
  • Для диапазона: если был выбран диапазон или вариант "отказ" - название диапазона или название отказа соответственно. Если было введено точное число и опция хранения точного числа включена - тогда подставляется введенное число. Если было введено точное число и опция хранения выключена - подставляется название диапазона, в который попадает данное число. Если данный вариант отмечен не был - пустая строка.
  • Для сетки: если выбранная ячейка была не типа "другое", тогда подставится название столбца для данной ячейки. Если выбранная ячейка была типа "другое" - подставится текст, введенный пользователем в этой ячейке. Если ячейка отмечена не была - пустая строка.

Скрытие подстановки.

Если название варианта ответа, диапазона, строки или столбца полностью состояло из подстановки, то в случае если данная подстановка не была выполнена - данный элемент будет скрыт. 
Например, был первый вопрос, в котором надо было выбрать от 1 до 8 любимых марок из 20, а в следующем вопросе 8 колонок сетки, в которых есть подстановки, а в строках характеристики марок для уточнения по выбранным вариантам. Если в первом вопросе выбрали всего 5 ответов, то в сетке также покажется 5 колонок с вариантами этих ответов, а 3 колонки будут скрыты.

Ошибка при сохранении вопроса.

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

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

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