En vErp (y en casi todas las aplicaciones desarrolladas con Velneo) las opciones de un modulo (familias, artículos, albaranes, etc) están integradas dentro de un formulario sin origen que actúa a modo de menú. Desde esté menú se realizan todas las operaciones relacionadas con los datos de la tabla (dar altas, editar un registro, localizar, buscar, etc).

¿Quieres aprender a desarrollar un formulario de este tipo? Pues sigue leyendo

Construyendo el menú

DESTRIPANDO UN FORMULARIO MENÚ DE VERP

He cogido como ejemplo el menú de «Formas de pago» de vErp:

Formulario menú de vErp Destripando un formulario menú de vErp

Como diría Jack «destriparemos el menú de vErp por partes»

Vamos a comenzar detallando los distintos objetos que aparecen en el formulario:

Menu_For_Pag_Sup

  • Control de edición alfabética NOM_BUS_1: Lo primero que nos encontramos es un control de edición para que el usuario introduzca la palabra por la que va a querer buscar los registros… después veremos como se lanza esa búsqueda. El contenido de este control es una variable local al formulario llamada NOM. Estará visible si no se ha disparado la búsqueda avanzada.
  • Botón «Buscar»: Este botón llamado «BTN_BUS_1» lanza el manejador de evento BUS (lo veremos en detalle después). Este botón es el que ejecuta la búsqueda de registros en la tabla relacionada.
  • Botón «Prismáticos»: Este botón, llamado «BTN_BUS_AVA» lanza el manejador de evento «BTN_BUS» que muestra u oculta la búsqueda avanzada que se muestra mas abajo (lo veremos en detalle a continuación)
  • Botón «Lupa»: Este botón, llamado «BTN_LOC» ejecuta una acción que lanza el localizador de la tabla asociada (en este caso «Formas de pago»)

Menu_For_Pag_Cen

Este segundo grupo de controles, sólo estará visible si hemos disparado la búsqueda avanzada explicada anteriormente.

  • Control de edición alfabética NOM_BUS_2: Idéntico a su gemelo «NOM_BUS_1». El contenido de este control es la misma variable local al formulario NOM.
  • Botón «Buscar»: Este botón llamado «BTN_BUS_2» es idéntico a su gemelo «BTN_BUS_1» y lanza también el manejador de evento BUS.
  • Botón de check «Desactivados»: Este botón, llamado «OFF» sirve para visualizar en la búsqueda aquellos registros marcados como desactivados. El contenido de este control es la variable local al formulario «OFF»
  • Botones de radio «Tipo de Búsqueda»: Estos botones están asociados a la variable local al formulario «BUS_TIP» y servirán para indicar como queremos buscar los registros: por trozos (valor T), por palabras (valor P), por alguna de las palabras (valor G) o alfabéticamente (valor A).

Menu_For_Pag_Inf

En esta vista de datos mostraremos los registros de la tabla «Formas de pago». La vista de datos tiene como primer objeto el proceso «FPG_M_LST_VAC»:

Pro_For_Pag

Si os fijáis en el proceso, para lo único que nos sirve es para indicar correctamente el flujo. Desde un proceso con origen ninguno, devolvemos una lista de formas de pago.

Estudiando los manejadores de evento

Vamos a revisar en detalle los distintos manejadores de evento del formulario.

Manejador de evento «BTN_BUS»

Lo único que hace este manejador es mostrar u ocultar la búsqueda avanzada. Para ello se vale de la variable local «BTN_BUS» a modo de semáforo cambiando su valor a 0 o 1

For_Pag_Btn_Bus

Manejador de evento «POS_INI»

En este manejador se pone por defecto el valor de la búsqueda a T (es decir se buscaría por trozos) y nos deja el foco en el control de edición alfabética «NOM_BUS_1». Además se lanza el manejador de evento «BUS» para que en la vista de datos aparezcan todos los registros de la tabla.

Si la tabla tiene muchos registros y queremos que por defecto no aparezcan los registros, simplemente tenemos que comentar esta línea. De esta forma, damos la posibilidad al usuario de que introduzca algo para buscar antes de mostrarle todos los registros de la tabla.

For_Pag_Pos_Ini

Este manejador se lanza desde la conexión de evento «POST_INI» con la señal «Post-Inicializado» del formulario.

Manejador de evento «BUS»

Desde este manejador de evento, ejecutaremos la búsqueda de registros:

For_Pag_Bus

Vamos a verlo en detalle:

  • Creamos una «Cesta local» para pasar los registros desde la búsqueda a la vista de datos del formulario.
  • Creamos un «manejador de objeto» de la búsqueda «FPG_M_SIN_FRM» que nos devolverá los registros encontrados (ahora veremos esa búsqueda en detalle)
  • Con las instrucciones «Set variable local de objeto» le indicamos a la búsqueda el tipo que queremos (trozos, palabras, alfabética o por alguna de las palabras) así como el texto a buscar (además si también queremos ver los «Desactivados»
  • Disparamos el objeto búsqueda y añadimos los registros encontrados a la cesta con la instrucción «Cesta: Agregar lista a la cesta»
  • Agregar los registros a la vista de datos. Con las siguientes instrucciones, procesamos la vista de datos del formulario y con la instrucción «Cesta: Agregar a la lista en curso» pasamos los registros que tenemos en la cesta a la vista de datos.
  • Las siguientes instrucciones sirven para situar el foco en el control de edición en función de si tenemos activa o no la búsqueda avanzada.

Búsqueda «FPG_M_SIN_FRM»

En la búsqueda simplemente tendremos que ir añadiendo o cruzando componentes y condicionándolos en función de si le hemos pasado algo en las variables y de su valor:

For_Pag_Bus_Com

Pues ya hemos «destripado» nuestro formulario menú de vErp.