Visor HTML (reload)

Hola,
Tengo un visor HTML con “Contenido=texto html”. Al iniciar el formulario cargo en una variable código de Google Charts. La primera vez que hablo el formulario el contenido del control se adapta perfectamente al ancho y alto, pero cuando se cierra y vuelve a entrar, tengo que darle al botón derecho y presionar la única opción que me sale que es “Reload”. Al código se le pasa siempre “width: 100%; height: 100%”
Lo he estado mirando y no encuentra la forma de poder refrescar este control automáticamente.
Lo curioso es que solo se ve bien la primera vez que visualizas un gráfico.
Gracias

Hola.

El control visor HTML tiene un método void reload() por js.

Prueba a crear un manejador js:

theRoot.dataView().control("NOMBRE_CONTROL_VISOR").reload();

Y ponerlo en el onshow a ver si recargando la página se soluciona.

Gracias Infortic,
No hay forma, una cosa tan trivial y que haya manera de hacerlo funcionar.
He provado en el ONSHOW, ONINIT, después de generar el código,antes, al ganar foco, etc… solo funciona si pongo un botón y lanzo el evento que me has pasado.

Si pulsando el botón funciona, puedes intentar que se “autopulse” con el método click() de la clase Widget.

Algo así de cabeza:

theRoot.dataView().control("BTN_RELOAD").click();

Hola Luis.

Lo extraño es que ejecutando el mismo formulario, con el mismo tamñao y con el mismo código HTML en el Visor, la primera vez se vea bien y el resto mal.

Yo, para el Visor HTML, utilizo la técnica de demorar la carga del Gráfico y ésto se consigue mediante un evento Timer.

En el ON_SHOW pon en marcha el evento Timer del formulario con la función js theRoot.dataview().startTimer(200).
En el manejador TIMER:

  • Paras el Timer con la función js theRoot.dataview().stopTimer()
  • Asigna el código HTML al Visor y a ver qué pasa.

Con esto consigues demorar la carga del HTML a un momento en que ya está mostrado el Formulario.

Saludos
Paco Satué

Solucionado, gracias a todos por vuestras aportaciones.
Al final he utilizado el método que propone Paco. Gracias