Экзамены
Функция экзамена добавляет режим викторины с таймером, с опциональной звуковой обратной связью для правильных и неправильных ответов.
Функция Экзамен превращает опрос в викторину с таймером. Счётчик обратного отсчёта отображается респонденту, а опрос записывает оставшееся время при завершении. При желании можно воспроизводить звуки для правильных и неправильных ответов.
Это полезно для оценки знаний, тестов грамотности, проверки компетентности полевого персонала и любых опросов, где время выполнения является значимыми данными.
Функция check-exam()
Настройте экзамен с помощью check-exam() в столбце calculation поля calculate, размещённого в начале формы:
check-exam(examTime, questionToStoreRemainingTime)
check-exam(examTime, questionToStoreRemainingTime, rightSound, wrongSound, excludeQuestion)
Параметры
| # | Параметр | Описание |
|---|---|---|
| 1 | examTime | Общая продолжительность экзамена в секундах |
| 2 | questionToStoreRemainingTime | name поля calculate или integer, в котором будет храниться оставшееся время |
| 3 | rightSound | (Необязательно) Имя аудиофайла для воспроизведения при правильном ответе |
| 4 | wrongSound | (Необязательно) Имя аудиофайла для воспроизведения при неправильном ответе |
| 5 | excludeQuestion | (Необязательно) Список имён полей через запятую для исключения из таймера экзамена |
Базовая настройка
Шаг 1: Добавление полей экзамена
| type | name | label | calculation |
|---|---|---|---|
| calculate | exam_config | check-exam(600, 'remaining_time') | |
| calculate | remaining_time |
exam_config запускает 600-секундный (10-минутный) таймер. remaining_time заполняется автоматически при завершении.
Шаг 2: Добавление вопросов
Таймер экзамена охватывает все вопросы формы, кроме перечисленных в excludeQuestion.
| type | name | label |
|---|---|---|
| select_one yesno | q1 | Столица Кении — Найроби. Правда или ложь? |
| select_one choices | q2 | Какой орган перекачивает кровь? |
| select_one choices | q3 | Вода кипит при 100°C на уровне моря. Правда или ложь? |
Шаг 3: Хранение оставшегося времени
Поле, указанное в параметре 2 (remaining_time), автоматически устанавливается на количество секунд, оставшихся при отправке. Значение 0 означает, что время истекло; высокое значение означает быстрое завершение.
С аудиообратной связью
Прикрепите звуковые файлы к форме (как медиавложения), затем укажите их:
| type | name | label | calculation |
|---|---|---|---|
| calculate | exam_config | check-exam(300, 'remaining_time', 'correct.mp3', 'wrong.mp3') |
correct.mp3воспроизводится при выборе правильного ответаwrong.mp3воспроизводится при выборе неправильного ответа
Звуковые файлы должны быть прикреплены к форме как медиафайлы, и имя файла должно точно совпадать (с учётом регистра), включая расширение.
Исключение вопросов из таймера
Передайте список имён полей через запятую для исключения из экзамена (например, вводные заметки или вопросы о согласии):
check-exam(300, 'remaining_time', '', '', 'intro_note,consent_ack,section_header')
Оставьте rightSound и wrongSound как пустые строки '', если аудио не нужно, но нужны исключения.
Полный пример
| type | name | label | calculation |
|---|---|---|---|
| note | intro | Добро пожаловать на оценку знаний в области здравоохранения. У вас есть 5 минут на ответы. | |
| trigger | start_ack | Нажмите OK, когда будете готовы начать. | |
| calculate | exam_config | check-exam(300, 'remaining_time', 'correct.mp3', 'wrong.mp3', 'intro,start_ack') | |
| calculate | remaining_time | ||
| select_one yesno | q1 | Мытьё рук предотвращает распространение болезней. | |
| select_one yesno | q2 | Нужно пить не менее 2 литров воды в день. | |
| select_one yesno | q3 | Малярия вызывается вирусом. |
Лучшие практики
- Всегда информируйте респондентов об ограничении по времени перед началом — используйте
noteилиtriggerперед полемcheck-exam(). - Исключайте вводные заметки и вопросы о согласии из таймера с помощью параметра
excludeQuestion. - Используйте
remaining_timeв последующем вычислении для обнаружения тайм-аутов:if(${remaining_time} = 0, 'Время истекло', 'Завершено'). - Пропорционируйте количество вопросов и отведённое время — 2–3 минуты на вопрос является разумной базой для большинства оценок знаний.
- Тестируйте с аудиофайлами на реальном устройстве перед развёртыванием — воспроизведение аудио варьируется в разных версиях Android и браузерах.
Ограничения
- Таймер только отображается — форма не отправляется автоматически по истечении времени; респондент должен отправить её вручную.
- Для аудиообратной связи требуется включённый (не отключённый) звук на устройстве.
- Функция экзамена является расширением rtSurvey и не является частью стандартной спецификации XLSForm.