Свойства и функции строки табличного вопроса

Получить доступ к строкам табличного вопроса можно через объект rows, например Q.rows[5]. Строка, как и вариант ответа, содержит код ответа, текст и флаги, но также предоставляет набор различных свойств и функций. Доступ к вариантам ответа внутри строки осуществляется через свойства answer и answers. Для удобства многие функции этих объектов доступны через строку. Например, вызов Q.rows[5].getChecked() равнозначен Q.rows[5].answers.getChecked().

code

Код строки, заданный при создании строки в редакторе анкеты. Например:

if (Q.rows[5].getChecked()[0].code == 99) {
    return error('В строке 5 нельзя выбирать ответ с кодом 99');
}

text

Текст строки, заданный при создании в редакторе анкеты. Также позволяет изменить этот текст. Примеры:

variables['Cтрока 5'] = Q.rows[5].text;
Q.rows[5].text = Q2.getChecked()[0].openValueTxt;

openValueNum

Открытое числовое значение для строки. Используется когда у строки включено поле для ввода открытого числового значения. Например:

variables['num2'] = Q.rows[2].openValueNum;

openValueInt

Открытое числовое значение, преобразованное к целому числу. Равно значению указанному в openValueNum, только не допускает указания дробной части.

openValueTxt

Открытое текстовое значение для строки. Используется когда у строки включено поле для ввода открытого текстового значения. Например:

variables['txt3'] = Q.rows[3].openValueTxt;

flags

Флаги, изменяющие различные свойства строки. Представляет собой битовую маску. Подробнее в описании свойства flags у варианта ответа. Например:

// Добавить строке 5 числовое поле и разрешить его не заполнять
Q.rows[5].flags |= 0x0001 | 0x2000;
// То же самое:
Q.rows[5].flags |= AnswerFlags.OpenValueNum | AnswerFlags.AllowEmptyOpenValue;
// Если у строки 98 есть текстовое поле...
if (Q.rows[98].flags & AnswerFlags.OpenValueTxt) {
    // ... что-то сделать
}

visible

Возвращает true, если строка отображается. Также может использоваться для принудительного скрытия или показа строк в табличном вопросе. Например:

Q.rows[1].visible = false;

exportCodeOverride

Переопределение кода строки, используемого при выгруке итогового массива. Подробнее тут.

outputColumnTemplate

Шаблон имени переменной для строки, при выгрузке массива. Подробнее тут.

outputColumnTemplateOVN

Шаблон имени переменной для числового открытого значения для строки. Подробнее тут.

outputColumnTemplateOVT

Шаблон имени переменной для текстового открытого значения для строки. Подробнее тут.

answer

Быстрый доступ к полям ответа для строк с числовым или текстовым типом ответа. Например:

var text = Q.rows[6].answer.openValueTxt;
var num = Q.rows[7].answer.openValueNum;

answers

Доступ к вариантам ответа для строк с единственным или множественным выбором. Например:

if (Q.rows[7].answers[5].checked) {
    // ...
}
// также допускается более короткая форма обращения
if (Q.rows[7][5].checked) {
    // ...
}

show()

Делает строку видимой. Равносильно присваиванию true свойству visible. Например:

Q.rows[5].show();

hide()

Скрывает строку. Равносильно присваиванию false свойству visible. Например:

Q.rows[5].hide();

getAll()

Возвращает все варианты ответа для строки в виде массива. Например:

Q.rows[4].getAll().forEach(function (a) {
    a.text = 'Вариант ответа с кодом ' + a.code;
}); 

getCodes()

Возвращает массив кодов всех вариантов ответа строки.

getVisibleCodes()

Возвращает массив кодов всех видимых вариантов ответа строки.

getVisible()

Возвращает видимые варианты ответа для строки в виде массива.

getCheckedCodes()

Возвращает массив кодов выбранных вариантов ответа для строки (работает для табличных вопросов как с единственным, так и с множественным выбором).

getChecked()

Возвращает выбранные варианты ответа в строке в виде массива. Например:

var s = '';
Q.rows[5].getChecked().forEach(function (a) {
    s += s.length > 0 ? ', ' : '';
    s += a.text;
});
variables['row5_checked'] = s;

getCheckedCode()

Возвращает код варианта ответа, который выбран в строке табличного вопроса с единственным выбором. Если ничего не выбрано - возвращает 0. При вызове для табличного вопроса с множественным выбором, возвратит код первого по порядку выбранного варианта ответа.

isChecked(code)

Возвращает true, если в строке выбран вариант ответа с кодом code.

showAll()

Делает видимыми все варианты ответа в строке.

show(code)

Делает видимыми в строке вариант ответа с кодом code.

showOnly(code)

Делает видимыми в строке только вариант ответа с кодом code.

showCodes(codes)

Делает видимыми в строке варианты ответа, коды которых содержатся в переданном массиве codes. Например:

Q.rows[2].showCodes([1,3,5,6]);

showOnlyCodes(codes)

Делает видимыми в строке только варианты ответа, коды которых содержатся в переданном массиве codes.

showFromTo(codeFrom, codeTo)

Делает видимыми в строке все варианты ответа, коды которых попадают в диапазон от codeFrom до codeTo. Например:

Q.rows[2].showFromTo(2, 50);

showOnlyFromTo(codeFrom, codeTo)

Делает видимыми в строке только те варианты ответа, коды которых попадают в диапазон от codeFrom до codeTo.

hideAll()

Скрывает все варианты ответа в строке. Варианты ответа, у которых установлен флаг Всегда отображается остаются всегда видимыми.

hide(code)

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

hideCodes(codes)

Скрывает в строке варианты ответа, коды которых содержатся в переданном массиве codes.

hideFromTo(codeFrom, codeTo)

Скрывает в строке все варианты ответа, коды которых попадают в диапазон от codeFrom до codeTo.

hasVisible

Возвращает true, если в строке есть хотя бы один видимый вариант ответа.

image

Содержит изображение строки, а также позволяет добавить строке изображение из объекта images. Примеры:

Q.rows[5].image = Q34.rows[5].image;
Q.rows[5].image = images['Логотип'];

imageUrl

Содержит URL изображения, а также позволяет добавить строке изображение с внешнего сервера по прямой ссылке. Приоритет этого свойства выше свойства image, то есть если они заданы оба, то выполнится только imageUrl. Пример:

if (!Q.rows[5].imageUrl.length) {
    Q.rows[5].imageUrl = 'https://survey-studio.com/content/images/ss2_logo_74x74.png';
}

imagePlacement

Содержит код расположения изображения относительно текста, а также позволяет задать расположение картинки. Более подробную информацию можно найти здесь. Примеры:

Q.rows[5].imageUrl = 'https://survey-studio.com/content/images/ss2_logo_74x74.png';
Q.rows[5].imagePlacement = 4;
// или
Q.rows[5].imagePlacement = ImagePlacementIds.Right;


Читайте далее: свойства и функции списка строк табличного вопроса.