Lentitud en formularios


([N3] GSI) #1

Hola, llevo un tiempo que en una aplicación cuando estamos facturando, en el fichero de lineas si te pones a escribir un texto, las letras van apareciendo con cuentagotas o de golpe, es decir, le ha entrado una lentitud pasmosa, esto puede ser por los campos formula??

En caso de ser así, esto se resolvería llevándomelos a tablas de extensión, o seguiría teniendo el mismo problema, como puedo acelerar la entrada de datos en el formulario???


([N1] Synetic) #2

Eso me pasaba a mi al principio con variables globales en disco.


([N2] AyudaVelneo) #3

Hola:

Es probable que sea por los campos fórmula… Como apunta synetic las variables globales también ralentizan.

No olvides revisar también singulares de plural que puedas tener en el formulario y carga de plurales en otras pestañas (con el evento on show puedes resolver la carga de los plurales en otros formularios)

Un saludo


([N4] velneador) #4

@GSI

Ampliando un poco la información de los compañeros, podemos evitar o controlar el cálculo de las fórmulas haciendo uso de las instrucciones siguientes:

- Modificar campo solamente

- Calcula campos dependientes

Un saludo,


([N3] GSI) #5

No utilizo variable globales, si hay bastantes formulas, y se muestra una imagen que normalmente esta vacía, hay alguna forma de solucionar la ralentización del formulario por los campos formula.

Si los llevo a una tabla de extensión se soluciona el problema ???

En cuanto a lo de “modificar campo solamente” este control que yo sepa no esta disponible en el formulario, ni puedo controlar que se recalcule sólo cuando acepte.


([N1] Synetic) #6

A los controles no les asignes campos, sino variables locales del formulario. Al aceptar, ejecuta un manejador de evento que asigne esas variables a los campos y guardar ficha.

Saludos.


([N4] velneador) #7

@GSI

“Modificar campo solamente” y “Calcula campos dependientes” son instrucciones de proceso que sí están disponibles en los formularios y que puedes emplear mediante el manejador de eventos. Distinto es que solucione tu problema.

Te paso la url de Jesús Arboleya donde precisamente realiza un ejemplo de uso de estas instrucciones.

http://jarboleya.com/2013/03/15/pildora-5-optimiza-las-altas-y-modificaciones-de-registros-que-tengan-muchos-campos-formula-o-con-contenido-inicial/

Un saludo,


([N3] GSI) #8

Llevo varios días investigando la optimización y leyendo todo lo que encuentro en el foro, ahora se me plantea otra pregunta:

En la tabla tengo diversas actualizaciones de datos, si a todas les pongo como condición que no se ejecute la actualización si el valor es cero, realmente no se realiza el proceso de actualización y se gana tiempo???

Alguna experiencia que compartir.


([N4] ns) #9

Buenas,
tienes funciones en condiciones de visibilidad o de activo? porque eso relantiza de la manera que comentas.

Tambien como ya han comentado, cuidado con los singulares de plurales pués penalizan una barbaridad.

saludos,

Santi.


([N4] eic) #10

Hola, GSI.

Me da la impresión de que tocar las actualizaciones no te va a ayudar. Las actualizaciones se lanzan al guardar / crear el registro, pero no cuando lo estás editando, así que no explican la lentitud que estás experimentando.

Como te han dicho varios por ahí, algunas fuentes de lentitud son:

  • Uso de variables globales directamente en el formulario (o en las condiciones de visibilidad/activo)
  • Utilizar muchas condiciones de visibilidad/activo
  • Tener muchos campos fórmula o campos con contenido inicial, especialmente si dependen de maestros o, mucho peor, de enlaces singular de plural. Una manera de paliar esto es indicar, en los controles en los que introduces datos, el estilo “Retardo señal valueChanged”. Eso hace que no se recalcule todo “a cada tecla que pulses”, sino 500 ms después de pulsar la última tecla, optimizando la actualización de fórmulas o condiciones iniciales.
  • Utilizar eventos “tecla pulsada, tecla soltada”

No es fácil poder dar más sugerencias sin poder ver el formulario en cuestión.


([N3] GSI) #11

Quiero puntualizar que esta lentitud en la entrada de datos de formularios ha coincidido con la versión 7.14, puede ser casualidad, pero ya me paso con la 7.12 hasta que salió la 7.12.1 que me volví loco buscando errores porque se cortaba el vserver. ¿ a alguien le esta pasando ?, por supuesto en cloud.

En cuanto al tema que nos ocupa, no uso variables globales para nada, prácticamente no hay condiciones de visibilidad en los campos, si hay eventos, pero pocos, lo que si utilizo en los eventos (¿puede ser el problema?) en condiciones “IF” en las que las variables las cojo el fichero maestro, estoy trabajando con un submaestro.

Esto me ocurre en la entrada de líneas de albaranes, facturas, etc., algo que hasta ahora funcionaba muy bien…