BLOG

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

Por [N4] rcueto.velneo el | 6 Comments

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 )

Velneo es el entorno ágil para el desarrollo
de aplicaciones empresariales

PRUEBA VELNEO

6 Responses to "Optimización en la carga de formularios usando la señal “on show”"
  1. [N3] juanv dice:

    Muy bien explicado, acorde con lo que se pedía en el foro en el hilo: “Perdidos en el mundo Velneo”

  2. [N2] Comercial.arhes2000 dice:

    Hola, pues, de estas explicaciones, se han escrito muchas en el foro, en estos últimos años, problema: son muy difíciles de encontrar , si alguien que tenga medios, pudiera ponerlas todas juntas y actualizadas, en una especie de Howto’s, sería genial. Esperemos a AyudaVelneo a ver que tal.

    Saludos.
    Miguel.

  3. [N2] Comercial.arhes2000 dice:

    De todas maneras el blog de Miguel Pérez Oliver: http://mpoliver.wordpress.com/ es lo mas parecido, gracias tocayo.

  4. Hola Miguel:

    Acabo de crear en el blog una página que se llama Imprescindibles V7 para recopilar aquellos artículos que sean de utilidad y ver si puedo crear una enciclopedia V7

    Espero que te sirva de ayuda.

    Podéis pasarme aquellos artículos que creáis que deben ser incluidos en ella

    Un saludo

    Francisco José Vila Martín

    http://ayudavelneo.com

  5. Y no estaría bien que esto lo hiciera ya el sistema, y que no cargara los las rejillas que no están visibles hasta que se muestren o las pida un proceso interno? Sería una optimización muy útil en cloud.

  6. [N3] cribera dice:

    Concuerdo totalmente con lo que dice el usuario inverca, ¿no debería ser este el comportamiento por DEFAULT en v7?, cuando hayan subformularios, o vistas de datos que muestren rejillas, solo hacer el llenado cuando la rejilla sea visible?

    Para que serviría la forma actual de operar de v7, si hay que estarla cada vez cambiando y usando cestas? No debería de origen ya actuar así?

Deja un comentario

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información. ACEPTAR

Aviso de cookies