On this page
manage_search
Exams
exam機能は調査にタイマー付きクイズモードを追加し、正解と不正解に対するオプションの音声フィードバックを提供します。
Exam機能は調査をタイマー付きクイズに変えます。回答者にカウントダウンタイマーが表示され、調査は終了したときに残り時間を記録します。オプションで、正解と不正解に対して音声が再生されます。
これは知識評価、識字能力テスト、フィールドスタッフのコンピテンシーチェック、およびタスクにかかる時間が意味のあるデータとなるあらゆる調査に便利です。
check-exam()関数
フォームの先頭に配置されたcalculateフィールドの**calculation**列でcheck-exam()を使用して試験を設定します:
check-exam(examTime, questionToStoreRemainingTime)
check-exam(examTime, questionToStoreRemainingTime, rightSound, wrongSound, excludeQuestion)
パラメーター
| # | パラメーター | 説明 |
|---|---|---|
| 1 | examTime | 試験の合計時間(秒) |
| 2 | questionToStoreRemainingTime | 試験終了時に残り時間を保存するcalculateまたはintegerフィールドのname |
| 3 | rightSound | *(オプション)*正解が与えられたときに再生する音声ファイルのファイル名(フォームのメディアファイルとして添付) |
| 4 | wrongSound | *(オプション)*不正解が与えられたときに再生する音声ファイルのファイル名 |
| 5 | excludeQuestion | *(オプション)*試験タイマーから除外するフィールド名のカンマ区切りリスト(例:'intro_note,consent') |
基本セットアップ
ステップ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 | 1日に少なくとも2リットルの水を飲む必要があります。 | |
| select_one yesno | q3 | マラリアはウイルスによって引き起こされます。 |
ベストプラクティス
- 開始前に回答者に制限時間を知らせてください —
check-exam()フィールドの前にnoteまたはtriggerを使用してください。 excludeQuestionパラメーターを使用してタイマーから導入ノートと同意質問を除外してください。- タイムアウトを検出するために
remaining_timeを後続の計算で使用してください:if(${remaining_time} = 0, 'タイムアウト', '完了')。 - 許可された時間に対して質問の数を比例させてください — ほとんどの知識評価では質問ごとに2〜3分が合理的なベースラインです。
- デプロイ前に実際のデバイスで音声ファイルをテストしてください — 音声再生はAndroidバージョンとブラウザによって異なります。
制限事項
- タイマーは表示のみです — 時間切れになってもフォームが自動的に送信されるわけではありません;回答者はまだ手動で送信しなければなりません。
- 音声フィードバックはデバイスの音量がオンでミュートされていないことが必要です。
- exam機能はrtSurvey拡張機能であり、標準XLSForm仕様の一部ではありません。
このページは役に立ちましたか?