4

ここで説明されているように、確認スクリプトをまとめようとしています: http://alamoxie.com/blog/tech-tips/sending-confirmation-emails-google-docs-form/

しかし、私はいつもこのエラーコードを受け取ります:

TypeError: Cannot read property "values" from undefined. (line 5, file "Confirmation Email")

標準的な確認よりもスクリプトを使用する目的は、12 ページを吐き出す標準的な確認ではなく、簡単に読み取って印刷できるフォームを作成することです。

この場合、私はそれを使用して食品の注文を作成しています。リクエスタは、イベントに必要なアイテムを選択して送信し、確認メールが管理者に送信され、印刷してキッチンに渡してプルすることができます. 差し込み印刷タイプのドキュメントを正常に作成できましたが、リストにあるすべてのものに対して確認が送信され、最後に入力した行だけが必要です (したがって、確認スクリプトが必要です)。

だからここに私のコードがあります:

    function onFormSubmit(e) {

  // First establish the variables. Name each variable by the e.values (column number in the spreadsheet).

  var timeStamp = e.values[0];
  var Activity = e.values[2];
  var pickUp = e.values[3];
  var pickUptime = e.values[4];
  var nPeople = e.values[5];
  var submitUser = e.values[6];
  var Equipment = e.values[7];
  var Drinks = e.values[8];
  var Breakfast = e.values[9];
  var Lunch = e.values[10];
  var Dinner = e.values[11];
  var eveningProgram = e.values[12];  
  var Event = e.values[13];
  var Snacks = e.values[14];
  var Notes = e.values[15];
  var userEmail = e.values[17];

  // These are the components of the email confirmation

   var emailTo = userEmail;
   var CCAddr = "admin@adminaddress.com";
   var subject = "Food Order Request";
   var emailBody =  "Food Order Requisition\n\n" +
                    "Pick up Date:" + pickUp + 
                    "\nPick up Time:" + pickUptime +
                    "\nSubmitted by:" + submitUser +
                    "\nDate Submitted:" + timeStamp +
                    "\n\nActivity:" + Activity +
                    "\nPeople:" + nPeople +
                    "\nMeal:" +Event +
                    "\nThe following is needed for" + Activity + "by" + submitUser + "who can be reached at" + userEmail +
                    "\n\nEquipment and Supplies:\n" + Equipment +
                    "\n\nDrinks:\n" + Drinks +
                    "\n\nSnacks:\n" + Snacks +
                    "\n\nBreakfast:\n" + Breakfast +
                    "\n\nLunch:\n" + Lunch +
                    "\n\nDinner:\n" + Dinner +
                    "\n\nEvening Program/Special Events:\n" + eveningProgram +
                    "\n\nThe following special notes were also requested:\n" + Notes +
                    "\n\nProcessed by:___________________ Processed Date & Time:_________________________Food Order Requisition";

  /**
   * Un-comment this to use it for debugging
   */
//  for (var i in e.values) {
//    Logger.log("" + i + ":" + e.values[i]);
//  }

                    MailApp.sendEmail(emailTo, subject, emailBody);


}

問題は、値が定義されていないことがわかり、その理由がわからないことです...誰でもこれを手伝ってもらえますか?

4

1 に答える 1

5

このスクリプトは、スクリプト エディターから実行することはできません。フォームの送信によってトリガーされた場合にのみ機能します。これeは、(イベント情報) がそのパラメーターを取得する方法です。スクリプト エディタから起動した場合、イベント情報は ですundefined。これは、イベントが発生していないため論理的です。

したがって、フォームを送信してテストする必要があります。

編集:onFormSubmit triggerフォームが送信されたときにスクリプトを実行するには、を作成する必要があります:こことここのドキュメントを参照してください

于 2013-03-06T19:26:00.550 に答える