概要
はじめて投稿致します。ご不備がありましたらご指摘をお願いします。
現在、私はGoogle Apps Scriptで「アンケートフォームの回答を送信後に表示する」機能を実装しようとしています。(※メール送信は考えておりません)試してみた方法は、
・アラート
・ダイアログ
・サイドバー
・確認メッセージ
の4つです。どれもうまく通りませんでした。仕様でしたら、最終手段のGoogleサイトにデータを流して結果を表示しようと思っています。
###ためしてみたコード(コメントアウト含め)
sumPointは合計値、title_pointはアンケートの回答結果を配列に格納したものです。
/*** ダイアログとかサイドバーとか実装試し ※実装できませんでした。 function showPoints(sumPoint,title_point){ var ui = FormApp.getUi(); var html = ""; for(var i = 0; i < title_point.length; i++){ //html = html + title_point[i] + "<br>"; html = html + title_point[i] + "\n"; } /*ここからサイドバーとダイアログの実装コード*/ //url = "<a href = \"" + url + "\">再編集をする</a>"; //ui.showDialog(HtmlService.createHtmlOutput("<p>" +html+ "<br>合計点 = "+sumPoint+" 点<br><br>"+url+"</p>").setTitle("お疲れ様でした!")); //ui.showSidebar(HtmlService.createHtmlOutput("<p>" +html+ "<br>合計点 = "+sumPoint+" 点<br><br>"+url+"</p>").setTitle("お疲れ様でした!")); /*ここまで*/ /*ここからアラートの実装コード*/ //var input = ui.alert("合計 : "+sumPoint+"点です。送信しますか?", ui.ButtonSet.OK_CANCEL); var input = ui.alert(html + "\n合計 ="+sumPoint+"点 です。\n 送信しますか?", ui.ButtonSet.OK); if (input == ui.Button.OK) { ui.alert("送信しました"); return 1; }else{ ui.alert("再編集します"); return 0; } /*ここから確認メッセージ*/ form.setConfirmationMessage("お疲れ様でした。\n\n" + html + "\n合計 ="+sumPoint+"点 です。\n 再編集をする場合、下記のリンクから再編集を行って下さい。\n"); }
動きとしては、テストで実行をする場合のみ、フォームの編集画面できちんと表示できます。(ShowDialogは、中身のリンクをダイアログ内で表示するので難ありですが・・・)トリガーとしてフォーム送信をした場合、「このコンテキストからFormApp.getUi() を呼び出せません」とエラー報告をだしてくるので、仕様の問題かなと感じています。
確認メッセージはトリガーから動きました。が、回答の集計対象が一つ前の分になってしまうのが難点です。(リアルタイムの送信データは、フォームの編集画面にある確認メッセージにただ転記されたのみでした)
もし「uiの機能が実装できないよ~」といった記述が公式からありましたら、教えていただければ助かります。
以上です、お力添えをお願いします!
あなたの回答
tips
プレビュー