Refresco Formulario


([N4] CEESA) #1

Hola:

Tengo un formulario con un control objeto que contiene una rejilla. En esta rejilla me posiciono en los diferentes registros de la misma y se posiciona correctamente, ya que lo estoy comprobando por eventos. Los campos que tengo en el formulario correspondientes a esta rejilla no se refrescan, ni cuando entro al control edit de cada campo.

He probado esto mismo con variables globales (modificando las variables globales desde el evento doble-click de rejilla) sacándolas en campos de edición del formulario y tampoco refresca.

Saludos.


([N4] rcueto.velneo) #2

Hola:

¿Podrías enviar una captura de pantalla del evento que disparas desde la rejilla? Nosotros hemos probado un caso sencillo: Un formulario de altas con una rejilla, que tiene asociado un evento de cambio de item seleccionado que modifica los campos editados en el formulario con los valores del item seleccionado en la rejilla y el refresco sí se produce.

Un saludo.

 

 


([N4] CEESA) #3

Hola Rafa:

Te adjunto una imágen con el evento. Esta es la segunda prueba que hice con variables globales. La primera, la de los campos la cambié, pero ocurría lo mismo. La conexión del evento es item:doble-click. El mensaje me lo está devolviendo correctamente, pero el objeto de edición no se refresca hasta que salgo y vuelvo a entrar en el formulario.

Saludos.

[attachment=2856,288]


([N4] CEESA) #4

Si pongo un timer en el formulario, y una conexión de evento al evento timer (en dicho evento solo dejo una línea en blanco, no hago nada), se refresca perfectamente. Supongo que con campos lo hará también bien. Aún así, creo que esto es un truco, pero hay algún problema en el refresco.

Saludos.


([N4] rcueto.velneo) #5

Hola:

Por lo que comentas parece que se trata de un evento creado a nivel de rejilla, no a nivel de formulario; si estamos en lo cierto decirte que ese es el motivo por el que el formulario solamente se refresca cuando fuerzas su refresco mediante un timer, ya que la modificación del campo o la variable no lo has hecho en un evento del formulario, sino en un evento de la rejilla incrusta en el mismo.

Lo más adecuado sería crear el evento a nivel de formulario, usando el comando de instrucción Interfaz: procesar control (rejilla), por ejemplo:

 

[attachment=2863,289]

 

Y crear una señal asociada al control rejilla.

En este caso modifico directamente un campo de la ficha en curso (la del formulario) en lugar de una variable.

Un saludo.

 


([N4] CEESA) #6

Gracias, Rafa. Tu ejemplo está muy bien si quiero actuar desde el formulario, pero lo que quiero es refrescar el formulario en cuanto me hacen doble click en la rejilla, con los valores del registro seleccionado.

Estaría muy bien por ejemplo que se pudieran lanzar señales nuevas. Imagimemos en rejilla, desde el evento doble click llamar a una nueva instrucción  "Interfaz: Señal Custom" (por ejemplo que el nombre de la señal fuese definible) y en el formulario crear una conexión de evento a esta señal, en cuyo evento introduciría el código que me acabas de enviar.

De todas formas ahora mismo lo tengo resuelto, con el timer en formulario.

Saludos.


([N4] rcueto.velneo) #7

Hola:

Una pregunta, ¿Pero no tienes la rejilla incrustada en el formulario? Te lo pregunto porque la solución que te había dado es lo que hace.

Un saludo.

 


([N4] CEESA) #8

Si. Con un control objeto. Entonces no te he entendido la solución. Le voy a dar una vuelta al tema. Gracias.

 


([N4] CEESA) #9

Vale Rafa. Resuelto. No entendía donde ponerlo. Ya se lo he asociado al control objeto. Estaba pensando las cosas al revés.

Cada día alucino mas con V7. Si es que tiene una versatilidad sin límites.

Gracias nuevamente.