Возникла проблема при чтении значения выбранного переключателя в форме Google с помощью скрипта Google App - PullRequest
0 голосов
/ 17 апреля 2020

Я новичок в скрипте Google App. У меня есть форма с несколькими вариантами выбора. Например, у меня есть два варианта, как оплата и баланс. Если я выберу оплату и нажму кнопку «Отправить», произойдет какая-то операция. Если я выберу баланс, произойдет какая-то другая операция. Для этого я пытаюсь прочитать выбранный вариант. Но я не мог. Ниже приведен код, который я пытался прочитать. Может кто-нибудь помочь.

Я пытался с этим. Это дает все ответы формы. Также этот дает значения во время выполнения скрипта. Но пробуя через форму, это не работает.

function myFunctiontest() {
   var form = FormApp.getActiveForm();
   var formResponses = form.getResponses();
  var itemr,title,res;
  for (var i = 0; i < formResponses.length; i++) {
  var formResponse = formResponses[i];    
  var itemResponses = formResponse.getItemResponses();
  for (var j = 0; j < itemResponses.length; j++) {
    var itemResponse = itemResponses[j]   
    var item =  itemResponse.getItem();//.asMultipleChoiceItem();
                itemResponse.getItem().getType(),    
                itemResponse.getItem().getTitle(),
                itemResponse.getResponse();
                res = itemResponse.getResponse().;
    if (item.getType() == 'MULTIPLE_CHOICE' && res == 'A')  
    {
       itemr= itemResponse.getItem().asMultipleChoiceItem(),    
       title =itemResponse.getItem().getTitle(),
       res =  itemResponse.getResponse();
       Logger.log('Response Type : ',itemr );
       Logger.log('Response Type title  :',title );    
       Logger.log('Response Type  res:',res ); 
    }

     }            
  }

}

1 Ответ

0 голосов
/ 17 апреля 2020

Я даю ниже функцию, которую я использую для отправки электронного письма (со ссылкой на два других листа) при получении ответа формы.

Вы должны сделать триггер "onFormSubmit" из скрипта приложения Редактор (щелкните значок часов).

function onFormSumbit(e) {
  var emp = e.source.getActiveSheet().getRange(e.range.rowStart,2).getValue();
  var lvss = SpreadsheetApp.openById("1ywKQViIU2k"); // leave applied
  SpreadsheetApp.setActiveSpreadsheet(lvss);
  var lvsht = lvss.getSheetByName("Form responses 1");
  var lvlr = lvsht.getLastRow();
  var vA =lvsht.getRange("A:L").getValues();
  var html="<style>th,td{border:1px solid black;}</style><table>";
  html+='<tr>';
  for(var i=0;i< 12 ;i++) {//make title
       html+=Utilities.formatString('<th>%s</th>',vA[0][i]);
     }
  html+='</tr>';
  for (i=1;i<lvlr;i++){
    if (vA[i][1]==emp){
      html+='<tr>';
      for (j=0;j<12;j++) {
         if (j==0 || j==2 ){
            vA[i][j]=Utilities.formatDate(vA[i][j],"GMT+05:30", "dd-MM-yy");
          }//if date
         if ( j==4 && vA[i][j] !=="" ){
            vA[i][j]=Utilities.formatDate(vA[i][j],"GMT+05:30", "dd-MM-yy");
          }//if date
          html+=Utilities.formatString('<td>%s</td>',vA[i][j]);
      }//for emp
      html+='</tr>';
    }//if
  }//for
  html+='</table><br>';
  var empss = SpreadsheetApp.openById("1_87o"); // emp master 
  SpreadsheetApp.setActiveSpreadsheet(empss);
  var empsht = empss.getSheetByName("Emp");
  var emplr = empsht.getLastRow();
  var empvals =empsht.getRange("A:H").getValues();
  for (i=1;i<emplr;i++){
    if (empvals[i][0]==emp){
      var em1=empvals[i][7];
      var name=empvals[i][1]
      break;
    }//if
  }//for
  var subject="Your Online Leave History of "+name;
  if (em1=="") {} else {
  //MailApp.sendEmail(em1, subject, html);}
    MailApp.sendEmail({
      to: em1,
      subject: subject,
      htmlBody: html
    });
  }
}
//
//



...