Visual Basic.NET - Funcion Guardar Cambios..

 
Vista:

Funcion Guardar Cambios..

Publicado por Manuel (10 intervenciones) el 31/10/2009 23:36:17
Saludos, tengo un software casi terminado para la administración de Alumnos. Necesito la funcion de guardar cambios, es decir que cuando le de cerrar en algun modulo donde se editen los datos me aparezca un mensaje para confirmar si se desea o no guardar los cambios realizados.

Pero nose de que maner implementarla. Se me ocurren 3:

1.- Cuando se presione el botón Guardar se cuente el numero de letras ingresadas en cada textbox, al presionar cerrar que compare ese número guardao con el actual, si es diferente que aparezca el mensaje. Aunque en este caso seria un problema con los datetimepicker alos que tendria que validar de otra forma.

2.-Agregar todos los datos de cada textbox en un arreglo al presionar el boton Guardar. Al presionar cerrar que los datos actuales se guarda en otro arreglo y que con un ciclo compare cada uno de los elementos haber si son distintos. Si alguno es diferente que aparezca el mensaje.

3.-Utilizar el evento TextChange, en esto no se me ocurre tanto, solo una variable bool que cambie a true si se llegara a meter a dicho evento.


¿Cual es el mejor? ¿Se les ocurre otro más sencillo o con una mejor tecnica?

Gracia por 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:Funcion Guardar Cambios..

Publicado por Gustavo A. Rivarola (24 intervenciones) el 01/11/2009 00:23:45
Una forma fácil es guardar siempre ( halla o no habido algún cambio),
Creo que funciona bien, quisas afecta un poquito la performance del programa, pero es muy poquito, y si es un programa chiquito, diria que casi nada
Por ej..

dim i as itneger
i = MsgBox("...", MsgBoxStyle.OkCancel)

if i= 1 then
guardar()
else
me.close()
end if

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:Funcion Guardar Cambios..

Publicado por Manuel (10 intervenciones) el 01/11/2009 03:06:54
Gracias por tu respuesta Gustavo.
Bueno la verdad es que necesitaba hacerlo un poco más inteligente, la aplicación si es algo grande. Bueno en si lo que no quiero es que cuando el susuario se meta simplemente a ver el expediente del alumno, al cerrar el modulo le aparezca el cuadro de dialogo, pues porque es algo confuso ya que si no hizo ningun cambio no tendría porque aparecerle la opcion de guradar...simplemente cerrarlo y ya.
Es algo asi como cuando abres un documento de word solo para verlo, sino le cambias nada al cerrar word simplemente se cierra sin preguntar nada.

Gracias, se aceptan otras sugerencias.
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:Funcion Guardar Cambios..

Publicado por Gustavo A. Rivarola (24 intervenciones) el 02/11/2009 00:56:56
una pregunta, como guardas los cambios,
Varios registros al mismo tiempo?
o uno por uno?

o sea modificas un alumno por ejemplo y tenes que guardar los cambios, o podes modificar varios alumnos y despues guardas
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:Funcion Guardar Cambios..

Publicado por Gustavo A. Rivarola (24 intervenciones) el 02/11/2009 01:36:58
Estube probando y se me ocurrio una buena forma y lo mejor de todo es que es reutilizable,

Pero solo te va a servir si vas guardando las modificaciones de los registros, uno por uno,

te dejo mi mail cualquier cosa, [email protected]
saludos
-------------------------------------------------------------------------------------
Option Strict On
Option Explicit On

Public Class Form1
' Guarda el Registro Original
Dim Original As String = ""
' Guarda el Registro Modificao, si no hay cambios Origianl y Modificado son iguales
Dim Modificado As String = ""

Dim cant As Integer

Private Sub Form1_Load(ByVal sender As System.Object, _
ByVal e As System.EventArgs) _
Handles MyBase.Load

cant = Me.Controls.Count - 1
Dim i As Integer

For i = 0 To cant
Original &= Me.Controls(i).Text
Next

End Sub

Private Sub btnComprobarCambios_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) _
Handles btnComprobarCambios.Click

Dim i As Integer
Modificado = ""

While i <= cant
Modificado &= Me.Controls(i).Text
i += 1
End While

If Original = Modificado Then
MsgBox("sin cambios" & vbCrLf & Original & vbCrLf & Modificado)
Else
MsgBox("hubo cambios" & vbCrLf & Original & vbCrLf & Modificado)
End If

End Sub

Private Sub btnSiguienteRegistro_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) _
Handles btnSiguienteRegistro.Click

Dim i As Integer

For i = 0 To cant
Original &= Me.Controls(i).Text
Next
End Sub

End Class

If Original = Modificado Then
MsgBox("sin cambios" & vbCrLf & Original & vbCrLf & Modificado)
Else
MsgBox("hubo cambios" & vbCrLf & Original & vbCrLf & Modificado)
End If

End Sub

Private Sub btnSiguienteRegistro_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) _
Handles btnSiguienteRegistro.Click
Dim i As Integer

For i = 0 To cant
Original &= Me.Controls(i).Text
Next
End Sub
End Class
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
sin imagen de perfil

RE:Funcion Guardar Cambios..

Publicado por gon (31 intervenciones) el 03/11/2009 21:50:57
Hola, tambien podes hacer una estructura por ahi te sirve

'te creas una estructura
Public Structure Alum
Dim Nombre As String
Dim Apellido As String
Dim edad As Integer
End Structure

'abris las dos variables
Dim AlumnosOriginal As Alum
Dim AlumnosModificado As Alum

'cuando llenes los controles con los datos tambien llena o carga los datos
AlumnosOriginal.Nombre = "Nombrea a"
AlumnosOriginal.Apellido = "Apellido a"
AlumnosOriginal.edad = 14


'cuando guardes o salgas carga la 2º estructura con los datos de los controles
AlumnosModificado.Nombre = txtNombre.Text
AlumnosModificado.Apellido = txtApellido.Text
AlumnosModificado.edad = txtEdad.Text

Dim guardar As Boolean
If AlumnosOriginal.Apellido <> AlumnosModificado.Apellido Then guardar = True
If AlumnosOriginal.Nombre <> AlumnosModificado.Nombre Then guardar = True
If AlumnosOriginal.edad <> AlumnosModificado.edad Then guardar = True

If guardar = True Then
guardas(todo)
Else
End o me.close o lo que sea
End If
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