Esta documentación está en fase de desarrollo y puede contener errores.

Scripts y eventos

Asocia lógica a los eventos de tus secciones y campos para que Dinaup ejecute acciones cuando el usuario opera con los datos.

Un script es lógica que se ejecuta cuando ocurre un evento. El evento es el disparador (el usuario abre un formulario, cambia un campo, pulsa un botón); el script es lo que pasa a continuación (recalcular un total, validar antes de guardar, lanzar un informe).

Esta es la pieza de Flex que da comportamiento a tus secciones: mientras las secciones y los campos definen qué datos hay, los scripts definen qué ocurre cuando se trabaja con ellos.

Un script siempre responde a la pregunta "cuándo" antes que a la de "qué". Primero eliges el evento que lo dispara; después decides la lógica que ejecuta. Sin evento no hay script.


Tipos de script

Según la lógica que quieras ejecutar, eliges un tipo. Todos se asocian a un evento de la misma forma; lo que cambia es lo que hacen al dispararse.

TipoPara qué sirve
TerminalEjecuta instrucciones en el terminal del dispositivo: abrir una ventana, navegar a otra sección, refrescar datos, mostrar un mensaje. Es la forma de orquestar la interfaz.
AlgoritmoCalcula valores y aplica reglas con DinaScript. Se usa para totales, validaciones y derivar campos a partir de otros. → Ver Algoritmos.
Plantilla de impresiónGenera un documento (factura, albarán, listado) a partir de los datos. → Ver Documentos dinámicos.
Función APIInvoca una operación expuesta por la API para integrar con servicios externos o disparar procesos.

Scripts de formulario y scripts de campo

Hay dos ámbitos según dónde viva el script. Es la primera decisión que tomas: ¿reacciona a algo que pasa en todo el formulario, o a algo que pasa en un campo concreto?

ÁmbitoReacciona a…Ejemplo
Script de formularioEl ciclo de vida del registro completo: abrirlo, cargarlo, aceptarlo, cancelarlo, recalcularlo.Recalcular el total de una factura justo antes de aceptarla.
Script de campoLo que ocurre en un campo individual: cambiar su valor, ganar o perder el foco, pulsarlo.Al cambiar la cantidad, recalcular el subtotal de esa línea.

La diferencia práctica: un script de formulario se dispara una vez por operación sobre el registro; un script de campo se dispara cada vez que el usuario interactúa con ese campo. Elige el ámbito según la granularidad que necesites.


Eventos de formulario

Se disparan en distintos momentos del ciclo de vida del registro que el usuario tiene abierto.

EventoCuándo se dispara
Iniciado al agregar nuevoAl empezar a crear un registro nuevo, antes de que el usuario escriba nada. Ideal para fijar valores por defecto.
Pre-aceptarJusto antes de guardar. El momento para validar y bloquear el guardado si algo no cuadra, o para recalcular totales finales.
Pre-cancelarJusto antes de descartar los cambios. Útil para confirmar o limpiar estado.
Tick de recálculoEn cada ciclo de recálculo del formulario, para mantener valores derivados al día mientras se edita.
Recalcular listadoAl refrescar el listado de líneas o registros asociados.
CargadoCuando el formulario termina de cargar sus datos. Para ajustes que dependen del registro ya disponible.
Valores de catálogos establecidosCuando los catálogos (listas de opciones) ya están cargados y disponibles para usarse.
Atajo de teclado / MacroAl pulsar una combinación de teclas asociada, para lanzar una acción rápida.

Eventos de campo

Se disparan por la interacción del usuario con un campo concreto del formulario.

EventoCuándo se dispara
CambiadoEl valor del campo cambia. El evento más habitual para recalcular dependencias.
Pierde focoEl usuario sale del campo. Buen momento para validar lo que acaba de introducir.
Gana focoEl usuario entra en el campo.
Cierra relaciónSe cierra una relación asociada al campo.
Pre-agregar relaciónJusto antes de añadir un registro relacionado, para validar o preparar la nueva relación.
Combo aplicar filtroAl aplicar un filtro sobre un campo de tipo lista o combo, para acotar las opciones que se muestran.
ClickEl usuario pulsa el campo (típico en campos que actúan como botón o acción).

Otros disparadores

Más allá del formulario y los campos, un script puede ejecutarse de forma independiente o desde los informes.

DisparadorQué hace
IndependienteEl script no cuelga de un formulario ni de un campo: se ejecuta por sí mismo cuando se invoca.
InformeSe lanza sobre el resultado de un informe completo.
Informe (filas seleccionadas)Se lanza solo sobre las filas que el usuario ha seleccionado en un informe, para actuar sobre un subconjunto.

Contextos

El contexto indica dónde aparece y se puede activar un script. Determina en qué parte de la interfaz queda disponible para el usuario.

ContextoDónde aparece
TodosDisponible en todos los contextos aplicables.
Campos personalesAsociado a campos personalizados de la sección.
Botones de informeComo acción accesible desde los botones de un informe.
Botones de widgetComo acción accesible desde los botones de un widget.

Cómo encajan los scripts en Flex

Los scripts son el pegamento entre las piezas de Flex: las secciones aportan los datos, los algoritmos calculan, los documentos imprimen, y los scripts deciden cuándo se dispara cada cosa.

  • Operan sobre secciones y sus campos, reaccionando a lo que el usuario hace con ellos.
  • Un script de tipo Algoritmo ejecuta lógica de DinaScript para calcular o validar valores. → Ver Algoritmos.
  • Un script de tipo Plantilla de impresión genera salida con documentos dinámicos.
  • Los disparadores de informe conectan los scripts con los informes, para actuar sobre sus resultados.

Un script es lógica que se ejecuta sola sobre tus datos. Defínelo con criterio y prueba el resultado antes de dejarlo en producción, igual que cualquier automatización. Un Pre-aceptar mal planteado puede bloquear guardados; un Cambiado que recalcula de más puede ralentizar la edición.


Preguntas frecuentes


SeccionesCamposAlgoritmosDocumentos dinámicosInformes

On this page