Ir al contenido principal

Lección 7 · Reglas: un formulario que reacciona

M
Escrito por Mairu

Ruta

Duración

Nivel

Antes de empezar

🔵 Configurador · Nivel 1

50 min

Intermedio

Un buen formulario solo pide lo necesario en cada momento y hace las cuentas por el usuario. Las reglas son la herramienta para conseguirlo: cambian el formulario mientras se rellena, según lo que el usuario va introduciendo.

🎯 Al terminar sabrás

  • Construir una regla con su condición (Cuando) y su acción (Sucederá esto).

  • Mostrar, ocultar, habilitar u obligar campos de forma dinámica.

  • Calcular valores con fórmulas y scripts (funciones avanzadas).

  • Distinguir cuándo usar una regla y cuándo un evento.


🧠 La idea: Cuando esto, sucederá esto otro

Toda regla tiene dos partes:

CUANDO   Resultado  es igual a  NO OK
SUCEDERÁ ESTO   Mostrar  Acción correctora  ·  Marcar como requerido  Acción correctora

Cuando: un campo, un operador y un valor. Los operadores dependen del tipo de campo: está vacío, es igual a, contiene, mayor que, es igual a otro campo, cambia el valor… Puedes combinar varias condiciones con Y (todas) u O (alguna).

  • Sucederá esto: una o varias acciones sobre campos o bloques: mostrar, ocultar, habilitar, deshabilitar, marcar o desmarcar como requerido, cambiar un valor, calcular con una fórmula, ejecutar un script o lanzar una consulta.

¿Regla o evento?

Regla

Evento

Cuándo actúa

Mientras se rellena

Al guardar

Sobre qué actúa

El propio formulario

Lo que pasa después: avisar, cambiar estado, planificar…

Ejemplo

Si NO OK → mostrar Acción correctora

Si NO OK → enviar un email a Calidad

💡 Mantén las reglas sencillas. Varias reglas cortas y con un nombre claro son mucho más fáciles de mantener que una regla gigante con diez condiciones.


🛠️ Práctica guiada

Regla 1 · Pedir explicaciones solo si el control es NO OK

En la lección 5 dejaste ocultos Motivo de rechazo y Acción correctora. Ahora harás que aparezcan cuando hacen falta.

  1. En el Form Builder abre la pestaña Reglas y pulsa Añadir regla.

  2. Cuando: Resultado es igual a NO OK.

  3. Sucederá esto:

  • Mostrar motivo_rechazo y marcarlo como requerido.

  • Mostrar accion_correctora y marcarla como requerida.

4. Guarda y previsualiza: marca NO OK y luego cambia a OK.

⚠️ Comprueba qué ocurre al volver a OK. Si los campos siguen visibles u obligatorios, crea una segunda regla con la condición inversa (Resultado es igual a OK → ocultar y desmarcar como requerido).

Regla 2 · Calcular la fecha de caducidad con un script

1. Añade al formulario dos campos:

  • Vida útil (días) · Numérico · ID vida_util · valor por defecto 365.

  • Fecha de caducidad · Fecha · ID fecha_caducidad · Deshabilitado (se calcula, no se escribe).

2. Crea una regla: Cuando fecha_envasado no está vacío.

3. Sucederá esto: sobre fecha_caducidad, elige la acción Script. En el valor escribe @ para ver las funciones disponibles y elige addValueDate. Usa { para insertar los campos:

addValueDate({fecha_envasado}, {vida_util}, "days")

addValueDate suma una cantidad de tiempo a una fecha (days, weeks, months, hours…). Si la cantidad es negativa, la resta.

Regla 3 · Una fórmula numérica

Añade un campo Temperatura máxima permitida (Numérico, temp_max, deshabilitado, valor por defecto 4) y un campo Margen (°C) (Numérico, margen, deshabilitado). Crea una regla que calcule el margen con la acción Fórmula:

{temp_max} - {temperatura}

Un margen negativo indica que la temperatura está por encima del límite. Las fórmulas funcionan como las de Excel: admiten paréntesis, potencias, redondeos, máximos y mínimos, entre otras funciones.


🔍 Comprueba que funciona

  • Con OK, Motivo de rechazo y Acción correctora no aparecen; con NO OK aparecen y son obligatorios: no se puede guardar sin rellenarlos.

  • Al poner fecha de envasado 01/01 con 365 días de vida útil, la caducidad es el 01/01 del año siguiente.

  • Con 5 °C, el margen sale −1.


⚠️ Errores habituales

  • "El script no hace nada." Las funciones deben empezar con @ y los campos se insertan con {. Revisa también que el campo destino sea del tipo que devuelve la función (una fecha para addValueDate).

  • Ocultar un campo en el formulario esperando que desaparezca del histórico. Son cosas distintas: lo que se ve en el histórico se configura en Resumen (lección 8).

  • Usar una regla para enviar avisos. Las reglas no avisan a nadie; para eso están los eventos (lección 9).

  • Encadenar demasiadas condiciones en una sola regla. Si no sabes explicar la regla en una frase, divídela.


🏋️ Reto

Haz que, si temperatura es mayor que temp_max, el campo resultado pase automáticamente a NO OK y quede deshabilitado, para que el operario no pueda marcarlo como OK. Pista: el operador comparar con otro campo te evita escribir el 4 a mano. ¿Se mostrarán también los campos de la regla 1?


📚 Para saber más

¿Ha quedado contestada tu pregunta?