onFormSubmit (e) мне нужно сложить 4 столбца и вывести в PDF - PullRequest
0 голосов
/ 19 февраля 2019

Это кажется простой задачей: добавить 4 столбца «Событие формы» (Стоимость 1, Стоимость 2, Стоимость 3, Стоимость 4) и вывести рассчитанный «Итог» в PDF по электронной почте с использованием шаблона.У меня нет проблем с получением данных о событии (e) в шаблон и отправкой по электронной почте, но я не могу получить общую сумму.Я пробовал много разных скриптов Google App с этого сайта, но безрезультатно.В настоящее время у меня есть отдельный лист под названием «Итого», и я создал массив, который захватывает столбцы данных события и отображает именно то, что я хочу, но я не могу получить его в шаблоне, код проблемы может быть в строке 20. Я включил ссылки нашаблон, а также электронная таблица и скрипт приложения Google

// Get template from Google Docs and name it
  var docTemplate = "1Ti1n71wpA-U5X9yLqSIfLC9VXqcxOGGsZQhYq0ZwJX4";  // *** replace with your template ID ***
  var docName     = "Calculate the total";

// When Form Gets submitted
function onFormSubmit(e) { 

    var name = "Rick"
    var ss = SpreadsheetApp.getActiveSpreadsheet();
    var sheet = ss.getSheetByName('Total');   //Get 'Total' sheet
    var row = sheet.getLastRow();             //Get 'Total' last row


//Get information from form and set as variables
  var todaysDate = Utilities.formatDate(new Date(), "CST", "MM/dd/yyyy, hh:mm");
  var email_address = "MyEmail address";
  var cost1 = e.values[1];
  var cost2 = e.values[2];
  var cost3 = e.values[3];
  var cost4 = e.values[4];
  var total = sheet.getRange(row, [1]).getValue();  //Is this the problem?




//  Logger.log(e.namedValues);

// Get document template, copy it as a new temp doc, and save the Documents ID
   var copyId = DriveApp.getFileById (docTemplate)
              .makeCopy(docName + ' for '+ name)
              .getId();

// Open the temporary document
   var copyDoc = DocumentApp.openById(copyId);

// Get the documents body section
   var copyBody = copyDoc.getActiveSection();

// Replace place holder keys,in our google doc template  
   copyBody.replaceText('<<name>>', name);
   copyBody.replaceText('<<cost1>>', cost1);
   copyBody.replaceText('<<cost2>>', cost2);
   copyBody.replaceText('<<cost3>>', cost3);
   copyBody.replaceText('<<cost4>>', cost4);
   copyBody.replaceText('<<total>>', total);
   copyBody.replaceText('<<timeStamp>>', todaysDate);

// Save and close the temporary document
   copyDoc.saveAndClose();

// Convert temporary document to PDF by using the getAs blob conversion
   var pdf = DriveApp.getFileById(copyId).getAs("application/pdf"); 

// Attach PDF and send the email
   var subject = "Your Total Cost Project Script";
   var body    = name + ", here is the total cost for your project ";
   MailApp.sendEmail(email_address, subject, body, {htmlBody: body, attachments: pdf}); 

// Delete temp file
   DriveApp.getFileById(copyId).setTrashed(true);
}

электронная таблица - https://docs.google.com/spreadsheets/d/144t33X98eZIAH2k5hCA--fFeUzmJCGefKI7lC1EE4Xc/edit?usp=sharing шаблон - https://docs.google.com/document/d/1Ti1n71wpA-U5X9yLqSIfLC9VXqcxOGGsZQhYq0ZwJX4/edit?usp=sharing

...