Google Script - for in循环语句返回未定义的值

时间:2014-05-19 08:49:19

标签: google-apps-script google-sheets

这是我上一篇文章的重新发布。我真的试图修复代码并失败!我在这篇文章上寻求一些帮助,请

需要一些代码帮助。我能够使用工作代码中的代码生成我想要的结果,但是当我在另一个工作表(即主代码)上实现此代码时,它不起作用。我试图弄清楚这个问题

以下是包含完整代码的共享Google电子表格。转到脚本编辑器。 Google Docs Link

非常感谢任何帮助。先谢谢你。

编辑#3提交无工作代码部分

function submit(e){
  var app = UiApp.getActiveApplication();
  var sheet = SpreadsheetApp.openById(submissioSSKey).getActiveSheet();
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var projectname = e.parameter.projectname;
  var projectid = e.parameter.projectid;
  var projectmanager = e.parameter.projectmanager;
  var salesrep = e.parameter.salesrep;
  var duedate = e.parameter.duedate;
  var projectphase = e.parameter.projectphase;
  var disctype = e.parameter.disctype;
  var mediatype = e.parameter.mediatype;
  var encryptiontype = e.parameter.encryptiontype;
  var password = e.parameter.password;
  var quantity = e.parameter.quantity;
  var specialinstructions = e.parameter.specialinstructions;
  var update = "Colombo Save"; 

  //var sheet = ss.getSheets()[0];
  var uiData = [[
    projectname,
    projectid,
    projectmanager,
    salesrep,
    duedate,
    projectphase,
    disctype,
    mediatype,
    encryptiontype,
    password,
    quantity,
    specialinstructions,
    update
  ]];
  sheet.getRange(sheet.getLastRow()+1, 1, uiData.length, uiData[0].length)
  .setValues(uiData);

  var app = UiApp.getActiveApplication();
  var result = {};
  var numMembers = parseInt(e.parameter.table_tag);
  result.members = [];

    for(var i=1; i<=numMembers; i++){
      var member = {};
      member.firstName = e.parameter['fName'+i];
      member.lastName = e.parameter['lName'+i];
      member.company = e.parameter['company'+i];
      member.address = e.parameter['address'+i];
      result.members.push(member);
     }

var htmlBody = 'Shipping Information: <br>'
  for(var a in result.members) {
    var member = result.members[a];
    var fname = member.firstName;
    var lname = member.lastName;
    var company = member.company;
    var address = member.address;    

  var timestamp = Utilities.formatDate(new Date(), "America/New_York", "MMMM dd, yyyy hh:mm:ss"); // Timestamp
  var activeSessionuser = Session.getActiveUser();//Session.getEffectiveUser(); Get the current user in the spreadsheet
  var emailAddress = 'test@email.com'; //Venue Colombo Team
  var subject = "**Test Email** DVD Request Submitted - **Test Email**"+ projectname +" - "+projectid+" - "+ projectmanager;
  /^var emailBody =*/
  var emailBody = 
  "<br><font color=\"Blue\"><b><h2>Request Submitted</h2></b></font>"
  +"<br/>Hi Venue Colombo Team,<br/>"
  +"<br/>The following data room(s) will need a disc creation. Please begin bulk save data room and create ISO to upload to the FTP site:<br/>"
  +"<br/><b>Project Name:</b> " + projectname
  +"<br/><b>Project ID:</b> " + projectid
  +"<br/><b>Project Manager:</b> " + projectmanager
  +"<br/><b>Sales:</b> " + salesrep
  +"<br/>" + htmlBody + 'Client Name: '+ fname + ' ' + lname +'<br>'+ 'Company Name: '+ company +'<br>' + 'Address: ' + address +'<br>'+'<br>'+
  +"<br/>"
  +"<br/><b>Phase:</b> " + projectphase
  +"<br/><b>Disc Type:</b> " + disctype
  +"<br/>"
  +"<br/><b>Encryption:</b> " + encryptiontype
  +"<br/><b>Password:</b> " + password
  +"<br/><b>Quantity:</b> " + quantity
  +"<br/>"
  +"<br/><b>Client Due Date:</b> " + duedate
  +"<br/>"
  +"<br/><font color=\"Red\"><b>Special Instructions:</b></font> " + "<br/>"+ specialinstructions

  +"<i><br/>&nbsp;<br/>This request was submitted by:</i> "
  +"<br/><font color=\"blue\">Name:</font> " + activeSessionuser
  +"<br/>Time Stamp: "  + timestamp
  +"<br/>"
  +"&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;"
  + //Line divider code &#8212;
   "<br/>Venue Client Services"
  +"<br/>United States: "
  +"<br/>UK/International: "
  +"<br/>France: "
  +"<br/>Asia: ";

    htmlBody += 'Client Name: '+ fname + ' ' + lname +'<br>'+ 'Company Name: '+ company +'<br>' + 'Address: ' + address +'<br>'+'<br>';
  }
  var optAdvancedArgs = {name: "Venue Client Services", htmlBody: emailBody};
  //MailApp.sendEmail('fake@email.com', subject, '', optAdvancedArgs);
  Logger.log(htmlBody);
  Logger.log(emailBody);
  var html = app.createHTML('First Name: '+ fname + ' ' + lname +'<br>'+ 'Company Name: '+ company +'<br>' + 'Client Address: ' + address);
  app.add(html);
  //dvdForm();
return app;
 }

以下是应用程序的结果

UiApplication

这是记录器日志

Logger.log(htmlBody);
Logger.log(emailBody);

Logger.logs

1 个答案:

答案 0 :(得分:0)

我终于能够弄清楚问题是什么&#34; for loop语句返回未定义的值&#34;

我没有在包含表单字段的面板中添加.addCallbackElement