Prueba Velneo Gratis

Te ofrecemos todo el poder de Velneo durante 1 mes para desarrollar la aplicación que tu empresa necesita.

Saber más
Thank you! Check your email for confirmation.

Optimización en la carga de formularios usando la señal "on show"

En este artículo explicaré cómo podemos optimizar la carga de formularios usando la señal "on show".Cuando cargamos un formulario que contiene un separador de subformularios o similar, el sistema ha de construir tanto el formulario principal como todos los subformularios incluidos dentro del separador.Si en esos subformularios incluimos objetos de lista, por ejemplo, al cargar el formulario el sistema deberá calcular todas las listas para crear cada uno de los subformularios, lo que puede hacer que en algunos casos, la apertura del formulario se demore unos segundos.Para evitarlo, lo que podemos hacer es que solamente se cargue la lista contenida en un subformulario, no en la apertura del formulario principal, sino cuando el usuario acceda a la pestaña correspondiente. Para ello haremos uso de la señal "on show", implementada en la versión 7.11 de Velneo V7.Veamos un típico ejemplo, el de una rejilla incrustada dentro de un formulario.Haríamos lo siguiente:La rejilla estará alimentada por un proceso con origen ficha de la tabla asociada al formulario y salida lista de la tabla asociada a la rejilla. Este proceso no hará nada, es decir, será un proceso vacío.En el formulario crearemos un manejador de evento, que cargará la lista de registros a presentar en la rejilla que, apoyándose en una cesta local, recalculará el contenido de la rejilla:

En el formulario crearemos una conexión de evento, asociada a la rejilla, que dispare el manejador de evento anterior con la señal "on show".En el caso de que no queramos que el contenido de la rejilla sea recalculado siempre que se muestre la rejilla, entonces añadiremos al formulario una variable local de tipo boolenao y en el evento, condicionar su ejecución a valor de esa variable:

La variable inicialmente tendrá valor 0, por lo que se ejecutará el subproceso del else. Al final del mismo, le asignaremos el valor 1 a dicha variable.NOTA: En el proceso he añadido un if...else para que se vea más clara la explicación pero podremos usar un if, sin else, evaluando la condición del modo siguiente:IF ( !NO_CARGAR )

Regístrate ahora y nuestro equipo se pondrá en contacto muy pronto