Problemas con ventanas en Forms.

Poseo varias ventanas en una aplicación MDI, y cada ventana tiene bloques de datos de una base de datos, el problemas es que cuando quiero grabar con commit_form en alguna de las pantallas, el forms me genera un error y me pide datos de otra pantalla; esto ocurre cuando tengo más de una ventana abierta, ¿qué puedo hacer para soluionar esto?

2 respuestas

Respuesta
1
No se si he entendido bien, de todas formas comentarte que si desde una ventana que me imagino que te refieres a un form se hace commit y esta ventana ha sido llamada desde otra a través del comando OPEN_FORM, si lo has hecho por defecto te va a hacer commit sobre todas las ventanas que han sido llamadas y sobre la origen.
Para ello cuando haces el OPEN tienes que decirle en los atributos SESSION que significa que cada ventana tiene su propia sesión de base de datos.
No se si es tu problema !!!!
OK, mi aplicación como le conté anteriormente es MDI, cuando corro por primera vez el programa ninguna ventana sale pues ellas se encuentran ocultas y para llamarlas yo utilizo Show_Window y es en el momento que tengo varias ventanas abiertas que me ocurre esto que le he explicado, por tal motivo no se si con show_window se pueda hacer algo como lo que dices de las sesiones.
Lo siento mucho pero nunca he utilizado el show_window y no se muy bien que particularidades tiene.
De todas formas, el show window lo que hace es mostrar una ventana, pero esa ventana tiene que haber sido abierta o llamada anteriormente, ¿verdad? Si no es así no puedes mostrarla, o eso creo yo.
Respuesta

El problema es que cada ventana( a la que llamas también pantalla) está
en una misma sesión que le pertenece a tu aplicación. Y el commit_form afecta a todos los bloques
en la sesión. Lo que debes hacer es separar las ventanas en
aplicaciones diferentes(archivos .fmb) y usar OPEN_FORM(NB_FORM, ACTIVATE, SESSION);
Con el tercer parámetro: SESSION. Lograrás tener diferentes sesiones para cada aplicación y de esta
manera hacer commits independientes sin que te solicite datos de otro bloque perteneciente a otra aplicación.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas