总体思路:
通过电子邮件发送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);}
}
}