Saltar al contenido principal

Campos condicionales

A veces un formulario tiene campos que solo tienen sentido en ciertos casos. Ejemplos:

  • Si el estado es "Enviado" → mostrar "Número de guía" y "Fecha de envío".
  • Si el tipo de propiedad es "Departamento" → mostrar "Piso" y "Número".
  • Si el usuario marca "Sí, tengo mascota" → mostrar "Tipo de mascota".

Los campos condicionales te dejan expresar exactamente esto: este campo aparece solo si tal otro campo tiene tal valor.

Cómo se configura

Al crear o editar una columna, encuentras una opción "Reglas de visibilidad" (o "Condicional") con este formato:

Mostrar este campo cuando:
[Estado] [ es igual a ] [ Enviado ]

Puedes agregar más de una condición y combinarlas con Y / O.

Ejemplo con varias reglas:

Mostrar este campo cuando:
[Estado] [ es igual a ] [ Enviado ]
Y [Cliente] [ está definido ]

Operadores disponibles

Depende del tipo del campo referenciado, pero los comunes son:

  • es igual a / no es igual a — comparación exacta.
  • está definido / no está definido — para saber si tiene algún valor.
  • es mayor que / es menor que — para números y fechas.
  • contiene / no contiene — para textos.
  • es alguno de — múltiples valores permitidos (para "estado es Enviado O Entregado").

Ejemplo: formulario de propiedades

Imagina una tabla Propiedades con estos campos:

  • Título
  • Tipo (selección: "Casa", "Departamento", "Terreno")
  • Piso (número) — solo si tipo = Departamento
  • Número (texto) — solo si tipo = Departamento
  • Superficie construida (número) — no aplica a terrenos
  • Superficie terreno (número) — aplica a Casa y Terreno

Configurarías:

Piso: aparece si Tipo = "Departamento"
Número: aparece si Tipo = "Departamento"
Superficie construida: aparece si Tipo ≠ "Terreno"
Superficie terreno: aparece si Tipo ≠ "Departamento"

Con solo estas reglas, el formulario se adapta al tipo de propiedad y el usuario nunca ve campos irrelevantes.

Comportamiento en el listado

Los campos condicionales existen en la base de datos aunque estén ocultos. Es decir:

  • Un campo oculto puede tener valor (si antes estaba visible y el usuario cargó algo).
  • En el listado se muestra igual con su valor, o vacío.
  • No hay "borrado automático" cuando el campo pasa a estar oculto — el valor queda guardado.

Si quieres que un campo se borre cuando ya no aplica, eso hay que hacerlo manualmente al editar el registro (o desde reglas más avanzadas).

Cuándo NO usar condicionales

Si los campos condicionales de una tabla son muchos y muy diferentes, quizás lo que necesitas son varias tablas separadas en vez de una sola con muchas condiciones.

Ejemplo: si "Propiedades" tiene 15 campos que solo aplican a Casa y otros 15 solo a Departamento, considera dos tablas: casas y departamentos. Es más limpio y más fácil de mantener.

Buenas prácticas

  • Empieza sin condicionales. Solo agrega reglas cuando notes que un campo está siempre vacío en ciertos casos.
  • Regla clara. Una regla por campo, corta y directa. Las combinaciones complejas confunden.
  • Testea. Crea registros con diferentes valores del campo "controlador" y verifica que los condicionales aparezcan/desaparezcan como esperas.

¿Qué sigue?