Apps脚本-创建Google表单,但在同一数据库(电子表格)中获得响应

总体思路

通过电子邮件发送form2,根据第一用户提交的form1创建form2,以进行更高级别的批准。

已修订 问题

我需要创建form2,其中所有数据都根据form1的响应而有所不同,表单项问题的总体布局将相同,但是内容将有所不同。如果有人知道,我可以偶然地将一个表单(称为v1)修改为person1,并将相同的表单(v2)修改为person2,在这里我使用相同的表单ID来进行批准工作流,在任何地方, v1不会根据v2中的详细信息进行更新(通常google表单会更新所有项目问题更改并自动重新发布),也许会在每个表单中添加UID?

尝试过的方法:创建新表单,太多电子表格链接到其他表单

方法2尝试:使用相同的表单,更改其中的内容,但是将form2修改1次以上会发生错误。发送两个表单时,form2的version1将实时更新为form2的version2

请帮助。如有其他建议,请反馈。

以后添加的代码:

function myFunction() {
  var ss = Spreadsheetapp.openByUrl("https://docs.google.com/spreadsheets/d/1_ANufFqk/edit#gid=681916147");
  var formsDB = Spreadsheetapp.openByUrl("https://docs.google.com/spreadsheets/d/1hGe1oStPoft9kfUNFA/edit#gid=138650439");
  var ws = ss.getSheetByName('ManagerRequest');
  var AllRange = ws.getRange(2,1,ws.getRange("A1").getDataRegion().getLastRow(),12).getvalues();
  var LastRequest = ws.getRange(1,ws.getRange("B1").getDataRegion().getLastRow(),12).getvalues();
  ws.getRange(1,9).setvalue("Operation Lead Approval"); 
  ws.getRange(1,10).setvalue("NOC Approval"); 

  var data = ws.getDataRange().getvalues();

// to find last request proceed
  LastTicket = LastRequest.length;
  while(LastTicket > 0 && data[LastTicket][1] == "") {
    LastTicket--;
    if (data[LastTicket][1] == "Request Number"){ NewTicket = 0}
    else {NewTicket = data[LastTicket][1]}
  }
  Logger.log("LastRequestNo " + LastTicket + " and NewRequestNo " + (+NewTicket + 1));


  for (var i = (+LastTicket); i < AllRange.length - 1; i++) {
   NewTicket += 1
   ws.getRange(i+2,2).setvalue(NewTicket);
   var session = AllRange[i];
   var TicketNo = NewTicket;
   var ManagerName = session[2];
   var Country = session[4];
   var RequestReason = session[5];
   var ManRequest = session[6];
   var OperationLead = session[7];
   Logger.log("Request Number " + NewTicket + "; " + ManagerName + " is requesting " + ManRequest + " manpower for country " + Country + " because " + RequestReason );



    var form = FormApp.openByUrl('https://docs.google.com/forms/d/1xeNFpSxxmQUqfDdFo504/edit')

    var formid = form.getId();
    Logger.log(formid);

    form.getTitle('Request ticket:-').setHelpText(NewTicket);
    form.getTitle('Detail for recruitment:-').setHelpText("Requester: " + ManagerName + "\nmanpower Requesting: " + ManRequest + "\nCountry: " + Country + "\nReason: " + RequestReason);


    var publishURL = form.getPublishedUrl();
    GmailApp.sendEmail(OperationLead,'Manpower request from ' + Country,"Hi "+Country +" Operation Lead,\n\n\nPlease review the google form link below and make decision upon the request.\n "+publishURL+"\n\nThanks and Regards,\nHuman Resource Auto Sender");
    ScriptApp.newTrigger('onFormSubmit').forForm(FormApp.getactiveForm()).onFormSubmit().create();


  }

}


  function onFormSubmit(e){
    //var forms = FormApp.openById(e);
    var forms = FormApp.getactiveForm();
    var formResponses = forms.response();

    for (var i=0; i < formResponses.length; i++){
      var formResponse = formResponses[i];
      var itemReponses = formResponse.getItemResponses();
      for ( var j = 0; j < itemResponses.length; j ++){
        itemReponse = itemReponses[j];
        Logger.log('Response #%s to the question "%s" was "%s"',(i + 1).toString(),itemResponse.getItem().getTitle(),itemResponse.getResponse());

      }
     }
    var formsDB = Spreadsheetapp.openByUrl("https://docs.google.com/spreadsheets/d/1hGe1oPoft9kfUNFA/edit#gid=138650439");
    var ss = Spreadsheetapp.openByUrl("https://docs.google.com/spreadsheets/d/1ebobAddzEP3i_ANufFqk/edit#gid=681916147");
    var ws = ss.getSheetByName('ManagerRequest');
    var AllRange = ws.getRange(2,12).getvalues();

    for (var j=1; j< AllRange.length; j++){
      if (ws.getRange(j,2).getvalue() == ResponsesTicket)
      {ws.getRange(j,9).setvalue(OlApproval);
      ws.getRange(j,10).setvalue(Comment);}

    }
  } 
songweixu 回答:Apps脚本-创建Google表单,但在同一数据库(电子表格)中获得响应

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3080470.html

大家都在问