Visual Basic - chequear si se grabo antes de salir

Life is soft - evento anual de software empresarial
 
Vista:

chequear si se grabo antes de salir

Publicado por Buka (94 intervenciones) el 08/10/2003 22:19:14
Hola,
como dice mi titulo, la idea es como saber si se grabo un formulario antes de salir de la aplicación, mas detalles: En mi proyecto estoy usando MDIChild, seguramente a alguno de ustedes se le ocurrio esta inquietud y algunos encontraron una solucion optima, la idea es que el usuario lea un mensaje (ej "desea guardar antes de salir?") en el caso que haya cambiado algun dato del formulario, sin grabar, y presione el boton de salida. se que al precionar el boton de salida el evento que se gatilla es QueryUnload, bien puede ir el mensaje en este evento, pero solo cuando pase la situación anterior, no se si la mejor idea seria chequear cada campo del formulario activo si se modifico algo, pienso que seria muy engorroso y poco eficiente.

Veamos si alguno de ustedes resovio esto de mejor manera :)

se les agradece su ayuda.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:chequear si se grabo antes de salir

Publicado por Victor Collado (51 intervenciones) el 08/10/2003 23:16:33
Hola

No se exactamente que controles tienes en un tu formulario pero por ejemplo, voy a suponer que tenemos dos textbox , un radio button , checkbox etc, cada uno de estos controles cuando alguien realiza una accion se dispara un evento, bien ahora hace falta saber si estos controles ya tienen unvalor traidos de alguna base de datos o de un archivo de texto etc, si estos controles no estan vacios, una solucion es cuando estas cargando e form y llenando estos controles , crear por ejemplo un objecto dictionary que le pasas el control y el valor , su contenido, asi cuando alguien hace clic para cambiar el textbox se dispara el evento change del textbox, en este evento revisamos cual es el contenido actual del textbox y lo controlamos con el objecto dictionary y el contenido que tenia anteriormente si cambio tenemos una variable de tipo Integer y de ambito global a la que le sumamos + 1 , cuando alguien va a cerrar revisas si tu variable es mayor que 0 y ahi disparas el mensaje, si por el contrarios los controles no tienen ningun dato como valor cuando se carga el form es mas sencillo por que solo tienes que hacer lo mismo sin revisar con el objto dictionary.

Espero te ayude

Saludos
Victor Collado
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:chequear si se grabo antes de salir

Publicado por Buka (94 intervenciones) el 08/10/2003 23:38:21
hola

Mira no encontre el objeto dictionary, estoy trabajando con VB5 Pro.
la idea de las flags (variable global) ya se me habia ocurrido, pero lo encuentro algo engorroso de manejar, de todas manera no descarto la idea, pero si alguien tiene algo de mas facil manejo mejor, siempre trato de hacer un codigo lo mas eficiente que puedo.

Gracias amigo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:chequear si se grabo antes de salir

Publicado por Victor Collado (51 intervenciones) el 09/10/2003 00:11:41
Hola

No hay nada de ineficiencia en el uso de una variable de ambito global o de formulario, para poder ir sumando los diferentes cambios, necesitas almacenar el valor que tenga un alcance mas alla de un Procedimiento.

Para declarar una variable de ambito del formulario solo tienes que declarar en generales y antes de cualquier Sub.

El objecto dictionary no es mas que un Array de dos dimensiones, una dimension para el Key y otra para el valor, donde en tu caso el Key puede ser el control y el Valor el contenido. No se si esta disponible este objeto en VB 5 pero puedes usar collection..

Victor Collado
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:chequear si se grabo antes de salir

Publicado por Buka (94 intervenciones) el 09/10/2003 19:34:57
Hola,
No me referia a el uso de las variables globales, yo las ocupo. Si no al manejo de el control de cambios, es muy engorroso chequear cada control de cada formulario cada vez que se cambia algo. Debe existir otra forma de hacerlo.

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:chequear si se grabo antes de salir

Publicado por kikecg (352 intervenciones) el 10/10/2003 22:40:44
Hola.
¿Que tal si defines una variable de tipo Boolean por cada formulario?. Así, cuando durante la ejecución del programa el usuario cambia algo, pones a True la variable correspondiente.
De esta forma, al mostrar el mensaje, sólo tienes que evaluar esas variables. Si todas son falsas, no hay cambios. Si sólo una o algunas de ellas son Verdaderas, sabes exactamente en que formulario se hicieron los cambios, así puedes grabar los datos directamente sin tener que comprobar nada mas.
Es una idea...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar