Свойства и функции списка колонок табличного вопроса
Список колонок для табличного вопроса доступен через объект columns. В основном columns используется для доступа к колонкам по коду, например Q.columns[5], но также предоставляет набор различных свойств и функций. Часть функций, для удобства, доступна для вызова через объект answers у строки, например Q.rows[2].answers.show(5) равнозначно вызову Q.columns.show(5).
count
Возвращает общее количество колонок в списке.
visibleCount
Возвращает количество видимых колонок. Например:
return Q.columns.visibleCount > 1 ? ok : skip;
getAll()
Возвращает все колонки в виде массива. Например:
Q.columns.getAll().forEach(function (c) { c.text += 'Колонка с кодом ' + c.code + '<br>'; });
getCodes()
Возвращает массив кодов всех колонок.
getVisibleCodes()
Возвращает массив кодов всех видимых колонок.
getVisible()
Возвращает видимые колонки в виде массива.
showAll()
Делает видимыми все колонки в табличном вопросе.
show(code, codes, answer, row, column)
Делает видимыми колонки, коды которых переданы в параметрах. Может принимать 1 код, массив кодов или объект ответа, строки или колонки таблицы. Количество параметров и их порядок значения не имеют. Например:
Q.columns.show(1, [3,5,6], Q.answers[8], Q3.rows[10], Q6.columns[12]); Q.columns.show(Q1.getCheckedCode(), Q2.getCheckedCodes());
showOnly(code, codes, answer, row, column)
Делает видимым только колонки, коды которых переданы в параметрах. Остальные колонки будут скрыты. Может принимать 1 код, массив кодов или объект ответа, строки или колонки таблицы. Количество параметров и их порядок значения не имеют.
showFromTo(codeFrom, codeTo)
Делает видимыми все колонки, коды которых попадают в диапазон от codeFrom до codeTo. Например:
Q.columns.showFromTo(2, 50);
showOnlyFromTo(codeFrom, codeTo)
Делает видимыми только те колонки, коды которых попадают в диапазон от codeFrom до codeTo.
hideAll()
Скрывает все колонки в табличном вопросе. Колонки, у которых установлен флаг Всегда отображается, остаются всегда видимыми.
hide(code, codes, answer, row, column)
Скрывает колонки, коды которых переданы в параметрах. Может принимать 1 код, массив кодов или объект ответа, строки или колонки таблицы. Количество параметров и их порядок значения не имеют.
hideFromTo(codeFrom, codeTo)
Скрывает все колонки, коды которых попадают в диапазон от codeFrom до codeTo.
hasVisible
Возвращает true, если есть хотя бы одна видимая колонка. Например:
return Q.columns.hasVisible ? ok : skip;
randomize()
randomize(codes)
randomizeFromTo(fromCode, toCode)
Перемешивает случайным образом либо все колонки, либо указанные, если в качестве параметра передан массив кодов колонок, либо все колонки в указанном диапазоне.
Q.columns.randomize(); Q.columns.randomize([1,3,5,7]); Q.columns.randomizeFromTo(10, 20);
rotate()
rotate(shift)
rotate(codes)
rotate(codes, shift)
rotateFromTo(fromCode, toCode)
rotateFromTo(fromCode, toCode, shift)
Производит ротацию колонок (циклический сдвиг на определенный шаг). Если не переданы никакие параметры - ротируются все колонки. Также можно передать шаг сдвига в параметре shift, при этом если шаг не передается - используется внутренний шаг, который автоматически увеличивается на 1 для каждого следующего интервью, что дает правильное равномерное распределение. Для ротации определённых колонок нужно передать массив codes с кодами этих колонок. Также в параметрах from и to можно указать диапазон колонок, подлежащих ротации. Примеры:
Q.columns.rotate(); Q.columns.rotate(5); Q.columns.rotate([1,2,3,4,5,6]); Q.columns.rotate([1,2,3,4,5,6], 5); Q.columns.rotateFromTo(1, 6); Q.columns.rotateFromTo(1, 6, 5);
setOrder(orderedCodes)
Устанавливает необходимый порядок следования колонок. В параметре orderedCodes передается массив кодов колонок, в необходимом порядке. Например:
Q.columns.setOrder([5,4,3,2,1]);
add(code, text)
Добавляет новую колонку (вариант ответа для всех строк табличного вопроса) с указанным кодом и текстом в конец списка. Созданная колонка возвращается как результат. Например:
// добавляем новую колонку 99 в конец списка var column = Q.columns.add(99, 'Не знаю'); // включаем в ней флаг "Блокирующий / исключающий" column.flags |= 0x0010;
insert(refCode, code, text)
Создает новую колонку (вариант ответа) с указанным кодом и текстом и вставляет её перед колонкой, код которой указан в параметре refCode. Созданная колонка возвращается как результат. Например:
// добавляем новую колонку 5 перед колонкой 6 Q.columns.insert(6, 5, 'Москва');
insertAfter(refCode, code, text)
Создает новую колонку (вариант ответа) с указанным кодом и текстом и вставляет её после колонки, код которой указан в параметре refCode. Созданная колонка возвращается как результат. Например:
// добавляем новую колонку 7 после колонки 6 Q.columns.insertAfter(6, 7, 'Санкт-Петербург');
remove(code)
remove(column)
Удаляет указанную колонку (вариант ответа). Например:
// удаляем колонку 5 из списка Q.columns.remove(5); // то же самое: Q.columns.remove(Q.columns[5]);
load(fromQuestion)
load(fromList)
Загружает колонки (варианты ответа) из другого вопроса либо из другого списка строк. Например:
Q.columns.load(Q3); Q.columns.load(Q3.rows);