Este es un formulario con 3 preguntas para un ejemplo ficticio de como se pueden evaluar con Google apps script cada ítem o pregunta y obtener una evaluación global del tema.
solo pretende dar ideas genéricas y no constituye un ejemplo real o caso para poner en practica ya que el propósito es el de servir de ejemplo básico de lo que se puede lograr usando apps script
Actualmente el formulario esta cerrado, ya que recibia mucha edición de las personas, para ser mas preciso 266 hasta el momento del cierre como se puede apreciar en la imagen 🔍
Por lo tanto he creado este post, para facilitara todos los interesados la información necesaria para su implementación o puesta en practica, iniciando con las analíticas que se recopilaron con las intervenciones de todas las personas, las cuales pueden revisar en este link:
https://docs.google.com/forms/d/1ruHuQN1BcsNPf1kNG_jblzhElKuoWaocWHeatJsxGqI/viewanalytics
Al ser un simple ejemplo, esta compuesto de 3 preguntas de opción múltiple :
¿Te gusta hacer ejercicio?
¿Te gusta la comida saludable?
¿Qué tanto ejercicio haces?
Cada pregunta tiene las opciones siguientes:
Mucho
Regular
Poco o nada
Lo que hace posible la evaluación es el código de Google apps script, el cual podrán revisar al final de este post, pero de poco servirá copiar y pegar si no se entiende lo que hace cada una de las funciones de los scripts redactados.
Por ello los invito a que revisen las guías de Google apps script que he creado con el fin de que tengan nociones básicas para poder entender el código y en su caso puedan hacer modificaciones a los ejemplos que verán en ellos, incluyendo este mismo ejercicio.
el código tiene los siguientes scripts:
function MensajEdodeSalud().- es la función maestra que se ejecutara y llamara a otras funciones auxiliares
function valor().- realiza el calculo matemático de los valores asignados a cada tipo de respuesta, obteniendo así un resultado que será enviado a la función maestra, mediante la variable "puntaje"
function mensajeEspecifico(valor).- recie coo parametro el resultado de la funcion valor y emite un mensaje segun el resultado o valor obtenido
function limpiaMensaje().-resetea limpia el mensaje que se muestra al final
para ver los detalle mira cada línea del código.
para poner todo en funcionamiento es necesaria la implementación de un trigger, activador o disparador instalable (para saber mas sobre los triggers, revisa esta Guía)
deberas entonces añadir un activador desde la opcion Activadores > añadir un activador
Después debes configurar el activador de la forma que muestra la imagen:
debes seleccionar la función maestra MensajeEdoSalud
elije la opción desde un formulario, ya que no saldremos del entorno del Google Form.
finalmente la opción: al enviarse el formulario, para que la función maestra se ejecute de forma automática cuando se envíe el formulario, es decir cuando las personas den clic en el botón "Enviar"
function MensajEdodeSalud(){
var form = FormApp.getActiveForm(); //form activo
var puntaje = valor();
Logger.log("el puntaje es " + puntaje);
var msj = mensajeEspecifico(puntaje);
var mensaje ='Gracias por usar nuestra herramienta!' + '\n\n'
+'>** por favor actualiza con F5 para ver tus resultados <**' + '\n\n'
+ 'A continución te presento los resultados obtenidos de tu autoevaluación' + '\n\n'
+ 'Total: ' + puntaje + ' puntos'+'\n' + msj
+ '\n\n' + 'toma las mejores decisiones por tu salud!!' + '\n\n'
+ 'fue un placer haberte servido!'
form.setConfirmationMessage(mensaje)
.setShowLinkToRespondAgain(true); //false para NO permitir que descarguen nuevamente.
}
function valor(){
var form = FormApp.getActiveForm();
var uResp = form.getResponses().length;
//Logger.log(uResp);
var uRespForm = form.getResponses()[uResp-1];
var respIndividuales = uRespForm.getItemResponses();
var val = 0;
for (var i = 0; i < respIndividuales.length; i++) {
if(respIndividuales[i].getResponse() == 'Mucho'){//respIndividuales[i].getResponse());//respIndividuales[i].getItem().getTitle(),
val = val +2;
}else if(respIndividuales[i].getResponse() == 'Regular'){
val = val +1;
}else{
val = val +0
}
val = val;
}
Logger.log(val);
return val
}
function mensajeEspecifico(valor){
if (valor >= 4) {
mensaje="Eres todo un deportista, sigue asi";
}else if (valor < 4 && valor > 2) {
mensaje="Procura hacer más ejercicio";
}else{
mensaje="Eres una piedra, muevete más";
}
return mensaje
}
function limpiaMensaje(){
var form = FormApp.getActiveForm(); //form activo
form.setConfirmationMessage("");
}
NOTA IMPORTANTE.- este es un ejemplo bastante viejo y tiene el inconveniente de que es necesario refrescar la pagina para que muestre el resultado correcto, actualmente yo optaría por crear mejor una Web App, para tener mejor control sobre las ventanas de resultado final, pero estas tienen otro nivel de dificultad, así que como recurso rápido y fácil puede ser una buena opción
NO olvides que tienes que probar antes las funciones para asegurarte de que te están regresando el dato correcto, para lo cual deberás autorizar por primera vez el código delo contrario no funcionará ❌