I have a custom form which requires you to build an N quantity of inputs and store them in a spreadsheet, each data must be registered as a list according to the number of inputs created. It is possible to do it from the main so that it registers only the amount of created inputs (I have a limit of 10 but I do not want it to store null records)
function processRef(e){
for (var i=1; i<11; i++){
var sNroref[i] = e.nroref[i];
}
var hojaDatos = spreadSheet.getSheetByName('Refs');
var ultimaFila = hojaDatos.getLastRow();
for (var i=1; i<11; i++){
hojaDatos.getRange(ultimaFila+1,1).setValue(sNroref[i]);
SpreadsheetApp.flush();
}
}
So far I've only made this work:
function processReferenciaDetalle(e){
var sMtempo = new Date();
var sMTpRec = e.MTpRec;
var sFecent = e.fecent;
var sNroref1 = e.nroref1;
var sNroref2 = e.nroref2;
var sNroref3 = e.nroref3;
var sNroref4 = e.nroref4;
var sNroref5 = e.nroref5;
var sDirent = e.dirent;
var hojaDatos = spreadSheet.getSheetByName('Referencias');
var ultimaFila = hojaDatos.getLastRow();
hojaDatos.getRange(ultimaFila+1,1).setValue(sMtempo);
hojaDatos.getRange(ultimaFila+1,2).setValue(sMTpRec);
hojaDatos.getRange(ultimaFila+1,3).setValue(sFecent);
hojaDatos.getRange(ultimaFila+1,4).setValue(sNroref1);
hojaDatos.getRange(ultimaFila+1,5).setValue(sDirent);
if (sNroref2!=""){
hojaDatos.getRange(ultimaFila+2,1).setValue(sMtempo);
hojaDatos.getRange(ultimaFila+2,2).setValue(sMTpRec);
hojaDatos.getRange(ultimaFila+2,3).setValue(sFecent);
hojaDatos.getRange(ultimaFila+2,4).setValue(sNroref2);
hojaDatos.getRange(ultimaFila+2,5).setValue(sDirent);
}
...
if (sNroref5!=""){
hojaDatos.getRange(ultimaFila+5,1).setValue(sMtempo);
hojaDatos.getRange(ultimaFila+5,2).setValue(sMTpRec);
hojaDatos.getRange(ultimaFila+5,3).setValue(sFecent);
hojaDatos.getRange(ultimaFila+5,4).setValue(sNroref5);
hojaDatos.getRange(ultimaFila+5,5).setValue(sDirent);
}
SpreadsheetApp.flush();
}
With a loop I would have a cleaner code but I can not get it to work.