作成日:2024年08月30日
アンケートを作ろう(3)


どうも、にゃん太です
アンケートを作ろうの3回目です
今回のメモでは、アンケート回答画面のレイアウトを作成していきます
アンケート開始前の待機画面

iPadで開いた時の起動画面です
この画面では、アンケートの回答を開始する処理が行えます
また、アンケート回答時に一定時間処理しなかった場合にTOP画面へ戻る処理も開始します
「回答開始」
# ################################################## # アンケートへの回答を開始する # 作成日:2024年08月30日 # ################################################## # グローバルフィールドの初期化 フィールド設定 [G_survey::surveyNo; ""] フィールド設定 [G_survey::text; ""] フィールド設定 [G_survey::answerType; "5段階評価"] フィールド設定 [G_survey::answer1; ""] フィールド設定 [G_survey::answer2; ""] フィールド設定 [G_survey::answer3; ""] フィールド設定 [G_survey::answer4; ""] フィールド設定 [G_survey::answer5; ""] レイアウト切り替え [「edit_survey」(survey); アニメーション: なし]
「編集」
# ################################################## # アンケート設問を編集する # 作成日:2024年08月30日 # ################################################## # 新しい回答を開始する 新規レコード/検索条件 変数を設定 [$$respondentKey; respondent::respondentKey] 変数を設定 [$$no; 1] スクリプト実行 [指定: 一覧から; 「設問表示」; 引数: ] # OnTimer開始 変数を設定 [$$timer; 値: 60] OnTimerスクリプトをインストール [「OnTimer」; 間隔: 1]
「設問表示」
# ################################################## # アンケート設問を表示する # 作成日:2024年08月30日 # ################################################## # 次の設問のタイプを取得 変数を設定 [$type; 値: ExecuteSQL ( "SELECT answerType FROM survey WHERE surveyNo=?"; ""; ""; $$no )] If [$type = "5段階評価"] レイアウト切り替え [「fivePoint」(responce); アニメーション: なし] Else If [$type = "選択式"] レイアウト切り替え [「select」(responce); アニメーション: なし] Else If [$type = "複数選択式"] レイアウト切り替え [「multiple」(responce); アニメーション: なし] Else # 回答終了登録 レイアウト切り替え [「fin」(respondent); アニメーション: なし] フィールド設定 [respondent::responceEnd; Get ( タイムスタンプ )] #終了画面の表示時間 変数を設定 [$$timer; 値: 5] 現在のスクリプト終了 [テキスト結果: ] End If 新規レコード/検索条件 フィールド設定 [responce::respondentKey; $$respondentKey] フィールド設定 [responce::surveyNo; $$no]
「OnTimer」
# ################################################## # OnTimer # 作成日:2024年08月30日 # ################################################## 変数を設定 [$$timer; 値: $$timer - 1] ウインドウ内容の再表示 [] If [$$timer ≤ 0] レイアウト切り替え [「TOP」(respondent); アニメーション: なし] 変数を設定 [$$timer; 値: ""] 変数を設定 [$$no; 値: ""] 変数を設定 [$$respondentKey; 値: ""] OnTimerスクリプトをインストール [] End If
アンケート回答を行う画面



アンケートタイプ毎の回答画面です
一定時間操作がない場合に表示する警告が前面を覆っているのでちょっと見にくいかもしれません
これらの画面で行う処理は次の通りです
- アンケート回答画面で行える事
- アンケート回答を選択する
- 次のアンケートへ進む
- 回答をしないで次のアンケートへ進む
- 一定時間操作しない場合に表示される警告画面を閉じて回答を継続する
それぞれの処理を行う為のスクリプトを作成します
「回答選択」
# ################################################## # アンケート回答を選択する # 作成日:2024年08月30日 # ################################################## フィールド設定 [responce::answer; Get ( スクリプト引数 )] ウインドウ内容の再表示 [] # OnTimerの残り時間を初期化 変数を設定 [$$timer; 値: 60]
「回答選択」
# ################################################## # 複数回答を選択する # 作成日:2024年08月30日 # ################################################## 変数を設定 [$param; 値: Get ( スクリプト引数 )] If [PatternCount ( responce::answer; $param )] フィールド設定 [responce::answer; Substitute ( responce::answer; $param & ¶; "" )] Else フィールド設定 [responce::answer; responce::answer & Get ( スクリプト引数 ) & ¶] End If ウインドウ内容の再表示 [] # OnTimerの残り時間を初期化 変数を設定 [$$timer; 値: 60]
「次のアンケート」
# ################################################## # 次のアンケートへ進む # 作成日:2024年08月30日 # ################################################## # OnTimerの残り時間を初期化 変数を設定 [$$timer; 値: 60] # 次のアンケートを表示 変数を設定 [$$no; $$no + 1] スクリプト実行 [指定: 一覧から; 「設問表示」; 引数: ]
「回答なしで次へ」
# ################################################## # アンケートに回答しないで進む # 作成日:2024年08月30日 # ################################################## # 回答は未回答(0)とする フィールド設定 [responce::answer; 0] スクリプト実行 [指定: 一覧から; 「次のアンケート」; 引数: ]
「継続」
# ################################################## # アンケート回答を継続 # 作成日:2024年08月30日 # ################################################## # OnTimerの残り時間を初期化 変数を設定 [$$timer; 値: 60] ウインドウ内容の再表示 []
これで完成です
どうでしょうか、今度こそ実用的なOnTimerスクリプトが出来たのではないかと思います
完成品はこちらからダウンロードできますので、ご興味がありましたらどうぞ

以上で今日のメモ書きは終了です
内容はいかがでしたか?
もしご意見やご要望、誤りの指摘などありましたら、下記フォームよりお気軽にご連絡ください