======Formulario Google Apps Script - Monocurso====== ------ ====Inicios==== Mediante este formulario, buscamos una adaptacion al googleForm pero más personal... Se debe crear un nuevo "sheet", y desde allí acceder a la pestaña extensiones y seleccionar Apps Script. ====Modulos==== La app se resuelve en 5 modulos o archivos, cada uno con la extensión .gs o .html, propias de apps script. ==server.gs== function doGet(e) { return HtmlService.createTemplateFromFile('index') .evaluate() .setTitle('Agrega aquí el titulo de tu app'); } function include(filename) { return HtmlService.createHtmlOutputFromFile(filename).getContent(); } Este módulo: * Recibe una petición web. * Carga index.html. * Procesa el template. * Define el título. * Permite incluir archivos HTML adicionales. ==index.html== EJEMPLO DE TITULO

Curso para Docentes:

PRE-INSCRIPCIÓN AL CURSO

h2

h3

Logo

Importante: "Texto que quieras".

//Un Select
Este archivo es la interfaz de usuario de tu Web App, que muestra un formulario dinámico con validación básica y campos condicionales, usando modularización de HTML, CSS y JS dentro de Apps Script. ==CSS.html== Este modulo o archivo hace el estilo de la web app ==JS.html== Este modulo: * Intercepta el envío del formulario. * Valida los datos en el navegador. * Muestra un loading profesional. * Envía los datos al servidor (Apps Script). * Maneja todas las posibles respuestas del backend. * Muestra mensajes según el resultado. Es el controlador frontend que valida datos, se comunica con Apps Script y maneja la lógica de inscripción según la respuesta del servidor. ==validator.gs== function registrarConductor(nombre, apellido, telefono, dni, email, localidad, condicion, institucion, nivelEducativo) { var ss = SpreadsheetApp.openById('Acá pones el ID de tu Sheet'); // ID de la hoja var sheet = ss.getSheetByName('registro'); //Acá el nombre de tu hoja, o tabla var registros = sheet.getDataRange().getValues(); var MAX_CUPOS = 400; // Puse un cupo, para tener un freno. if ((registros.length - 1) >= MAX_CUPOS) { return "cuposCompletos"; } // Verificar si el DNI ya existe (columna D - índice 3) for (var i = 1; i < registros.length; i++) { // Empezamos en la fila 1 para omitir encabezados if (registros[i][3] == dni) { // Columna D (DNI) return "existente"; // DNI ya registrado } } // Verificar si el Email ya existe (columna F - índice 5) for (var i = 1; i < registros.length; i++) { // Empezamos en la fila 1 para omitir encabezados if (registros[i][5] == email) { // Columna F (Email) return "emailExistente"; // Email ya registrado } } // Calcular el siguiente ID (columna A) var id = registros.length; // Agregar un nuevo registro (orden correcto según las columnas) sheet.appendRow([ id, // A: ID nombre, // B: NOMBRES apellido, // C: APELLIDOS dni, // D: DNI telefono, // E: TELÉFONO email, // F: EMAIL localidad, // G: LOCALIDAD condicion, // H: CONDICIÓN institucion, // I: INSTITUCIÓN nivelEducativo // J: NIVEL EDUCATIVO ]); return "registrado"; // Confirmación de registro exitoso } Esta función es el controlador de negocio que valida cupos, previene duplicados y guarda la inscripción en Google Sheets, devolviendo estados específicos al frontend. [[CoDES:CoDES|← Volver al Codes]]