Problemas reload control visor HTml


([N1] cristianvg2003) #1

Hola,

He notado desde la v7.15 que el control visor html hace un reload cada vez que el control pierde foco, es decir, si en control tengo algo que visualiza data o un formulario y cambio el foco para cambiar de pestaña o editar algún cuadro de edición el visor html automáticamente recarga su contenido inicial y se pierde lo que se este trabajando.

a alguien más le sucede esto hay una solución ?

Un saludo


([N3] pacosatu) #2

Hola Cristian.

¿Has confirmado este fallo?
Yo he creado un pequeño Test con un HTML que muestra un contador JavaScript y de momento funciona bien. Solo se inicializa el contador cuando Recargo manualmente el control Visor HTML.

Saludos
Paco Satué


([N1] Juan) #3

Es un fallo? a mi tampoco me refresca ni con js, solo cuando pierde el foco y retoma el foco.
var control = theRoot.dataView().control( “IMG_HTML” );
//Refrescamos
control.reload();
control.repaint();
Esto en un evento.


([N1] Juan) #4

Bueno lo solucione con :
//Refrescamos
var frm = theRoot.dataView();
frm.updateControls();


([N3] Humberto) #5

He reportado este fallo en centro de soporte hace unos meses, esto solo ocurre cuando el contenido del visor es Texto HTML, soporte ha logrado reproducir el problema, esperemos lo resuelvan pronto.

Saludos!


([N3] pacosatu) #6

Hola.

¿ Qué pasa con este comportamiento ? ¿ Habéis tenido respuesta de Soporte ?
Con la 7.16 sigue todo igual.
El problema es con el recálculo de las fórmulas en un formulario.

Cada vez que cambia un componente de una fórmula del formulario se recalculan todas las fórmulas de dicho formulario aunque no hayan cambiado los componentes, es decir, que el evento en una sola fórmula desecadena el evento de Recálculo en todas las fórmulas. Además el Recálculo se ejecuta simplemente con el evento "Perder foco" de un control que tenga fórmual asociada.

Consecuencias de este comportamiento:

  • En un principio parece que solo pasaba con el control Visor HTML pero ocurre con todos los controles.
    Por ejemplo poner la fórmula “currentDateTime()” en un control de edición alfabética y veréis que la Hora se actualiza cada vez que el control pierde foco o que cualquier fórmula del formulario se actualize. En el Visor HTML el efecto es más espectacular porque simplemente con perder el foco del Visor u otro evento de refresco el código HTML se vuelve a recargar.
  • No se puede usar un Timer que cambia una variable local en un formulario si éste contiene controles de edición de maestro porque, aparte de otros efectos, la búsqueda incremental deja de funcionar con cada evento timer.

Yo creo que este mecanismo de refresco de los formularios es como mínimo poco óptimo y además incumple la norma de que sólo deberían de actualizarse las fórmulas cuyos miembros han cambiado.

¿Qué pensáis vosotros?¿Qué piensa Velneo de esto?¿Qué hacéis para evitar este desaguisado?

Saludos
Paco Satué


([N3] pacosatu) #7

Hola.

Para el control Visor HTML la solución de momento es dejar el campo Contenido en blanco y rellenar el Visor con la función setSourceCode(" … código HTML … ") de la clase VCWebView.

Saludos
Paco Satué