Añadiendo Funcionalidades

Bien, ya tenemos lo básico del programa. O casi. Nos haría falta poder agregar o quitar equipos desde el mismo programa sin necesidad de usar un administrador externo de base de datos.En la interfase podemos ver un botón con la leyenda “nuevo equipo” llamado Btnnuevo, cuyo código es el siguiente:
Public Sub Btnnuevo_Click()

If ConectarBase() Then Return
fdata.runnew(hconn)
Form_Open()
End

Si lo lanzamos ahora veremos que el programa da un error, pues fdata aún no existe. Por tanto vamos al árbol de la izquierda y desde la carpeta fuentes, botón derecho,nuevo, formulario y lo nombramos fdata. Su interfase es muy sencilla y no requiere explicaciones

fdata

fdata en tiempo de diseño

Un textbox (txtnombre) y dos botones (btnaceptar y btncancelar) y su código, muy sencillo

Private hconn As Connection
Private hresul As Result

Public Sub runnew(data As Connection)

hconn = data
Me.ShowModal

End

Public Sub btncancelar_Click()

Me.Close()

End

Public Sub btnaceptar_Click()

If txtnombre.Text = “” Then
Message.Warning(“Teclee un nombre”)
Else
   Try hconn.EXEC(“insert into equipos values (&1,&2,&3,&4)”, txtnombre.text, “0”, “0”, “0”)

Me.Close()
Catch
Message.Error(“Imposible introducir los datos solicitados”)
Endif

End

Como podemos ver, el método  runnew lanzado desde fmain se abre en forma modal, es decir, hasta que no interactuemos con él no se cerrará y no podrás seguir adelante con el programa.

Cuando damos aceptar controlamos que el textbox no esté vacío y tratamos de introducir los datos(es el código destacado en rojo) y si no podemos lanzamos el mensaje de error. Los tres ceros entrecomillados son para los campos correspondientes a puntaje, goles a favor y goles en contra.

Para borrar hemos creado el siguiente procedimiento;

Public Sub tabla_KeyRelease()

If Key.Code = Key.Delete Then

If tabla.current = Null Then Return
If tabla.Current.Selected = False Then Return

If ConectarBase() Then Return

Try hconn.exec(“delete from equipos where Equipo=&1”, tabla.Current.Key)
If Error Then
Message.Error(“Imposible borrar el registro”)
Else
tabla.Current.Delete()
Endif
Endif

End

Usamos el evento Keyrelease y si la tecla presionada es suprimir o delete eliminamos el equipo seleccionado. El problema de este procedimiento es que este tipo de acciones no se pueden deshacer. Para ello modificamos el código agregando una variable a la que llamaremos pregunta a la que declaramos al principio del procedimiento, y luego agregamos un cuadro de mensaje con dos opciones. La primera opción vale “1” y la segunda “2”. De acuerdo al valor de esta variable podemos cancelar el borrado del registro si hemos pulsado delete por error. Pongo el código nuevo con las modificaciones en azul.

Public Sub tabla_KeyRelease()
Dim pregunta As Integer
If Key.Code = Key.Delete Then ‘comprueba la tecla pulsada

If tabla.current = Null Then Return
If tabla.Current.Selected = False Then Return

If ConectarBase() Then Return
   pregunta = message.Warning(“¿Esta seguro de eliminar el registro?”, “Si”, “No”)
   If pregunta = 1 Then
Try hconn.exec(“delete from equipos where Equipo=&1”, tabla.Current.Key)
If Error Then
Message.Error(“Imposible borrar el registro”)
Else
tabla.Current.Delete()
Endif
Endif
Endif
End

En el próximo post-que  prometo será pronto-vamos a aprender a listar las fechas en un nuevo formulario donde además podremos buscar por fecha y por equipo.La parte de búsquedas quizá demore un poco ya que tras una rotura de disco duro perdí la última versión del programa y debo rehacerlo. Hasta la próxima.

Anuncios
Esta entrada fue publicada en programación y etiquetada , , . Guarda el enlace permanente.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s