Condiciones de visibilidad, activo y editable. V7.18


([N4] sat) #1

Hola a todos:

Recientemente hemos migrado nuestras proyectos a la versión V7.18 (en nuestros servidores de pruebas). Hemos observado que durante la escritura, en los controles de los formularios o rejillas editables, se produce un “parpadeo” constante del cursor, y además una penalización en algunos casos importante durante la escritura, que da la sensación al usuario de ir “a tirones”.

Hemos constatado que dichos retardos se producen debido a la existencia de condiciones de visibilidad, condición de activo y también en el caso de rejillas editables, de condición de edición. A mayor complejidad del formulario y más número de condiciones, mayor retardo.

Este retardo no era prácticamente apreciable en la versión V7.16, así que todo parece indicar que algo “ha cambiado”.

La solución aportada por soporte, es traspasar las condiciones de visibilidad a una variable local, y cargar dicha variable en el evento pos-ini del formulario (“poco life is soft”). Eso sí, esto parece menos viable cuando las condiciones de visibilidad, y sobre todo las de activo de un control dependen de los valores de los campos del registro en curso. Ya no digamos nada de las condiciones de edición de las columnas en las rejillas editables, que penalizan aún más, ya que se suman las condiciones de la propia rejilla con las de los controles del formulario.

No parece muy lógico que no se puedan utilizar expresiones en dichas condiciones si va a penalizar considerablemente a la aplicación.

¿Veis alguna solución al problema?

Un saludo a todos.


([N4] gontorre) #2

Estuvimos tratando este mismo problema hace unas semanas

http://velneo.es/foros/topic/lentitud-en-campo-objeto-texto/

En mi caso se solucionó en parte al quitar las funciones en las condiciones de visibilidad y editable.

Un saludo


([N2] overBCN) #3

Hola Luis,
Tuve el mismo problema cuando migré a la versión 7.17, algunos formularios eran insufribles.
La solución que he tomado es la misma que te da soporte. El tema es que a cada pulsación, da un repaso a todos los objetos que tienen condicionan.
Creo que debería haber alguna opción que solo pida la condición de activo o visible al crear al formulario. Ya se que hay controles que necesitan ser refrescados en tiempo real, a éstos se le pide directamente que estén en espera.
Saludos.


([N2] Mgalvezh) #4

Creo que se matan moscas con escopeta, si, para controlar las condiciones es complicado, pues se lanzan los controles a cada golpe de tecla, esto hace que los formularios con muchos controles y varias condiciones sean inoperantes (creo que las variables en disco tienen el mismo problema cada vez que se digita una letra se actualiza la variable en disco), se debería trabajar un poco mas en el control de las condiciones, o permitir que lo lancemos nosotros con un comando en la pérdida de foco, de esta manera al inicializar el form se miran las condiciones ‘estáticas’ y en los campos implicados ya nos ocuparemos nosotros de lanzar el ‘refresco’.

Saludos.
Miguel.


([N3] blavan) #5

Aprovechando este hilo pregunto
En las rejillas es mejor utilizar campo formula definidos en la base de datos o escribir la condición en el contenido de la columna
Gracias