Listando etapas o “Fechas”

Aclaro,porque quizá en otros países no sea igual, que aquí llamamos fechas a las etapas del campeonato de fútbol. Había quedado pendiente crear el formulario donde ver en la fecha y desde el cual poder buscar los resultados de tu equipo o de determinada fecha.

Bien, antes que nada , recordemos que en el formulario principal hay un botón para guardar las fechas en la tabla al efecto que se habilita luego de sumar los puntos. Este es su código:

Public Sub btnfecha_Click()

guardarfecha(lbfechas, lb1, vb1, lb2, vb3)‘parámetros entre paréntesis
guardarfecha(lbfechas, lb3, vb5, lb4, vb7)
guardarfecha(lbfechas, lb5, vb9, lb6, vb11)
guardarfecha(lbfechas, lb7, vb13, lb8, vb15)
guardarfecha(lbfechas, lb9, vb17, lb10, vb19)
guardarfecha(lbfechas, lb11, vb21, lb12, vb23)
guardarfecha(lbfechas, lb13, vb25, lb14, vb27)
guardarfecha(lbfechas, lb15, vb29, lb16, vb31)

End

Lo que hace es lanzar el procedimiento guardarfecha, pasándole los distintos parámetros.

Rebobinando un poco, para evitar reescribir código creamos un procedimiento o función al que luego le pasamos los parámetros. Veamos ahora el código del mismo:

Public Sub guardarfecha(lfecha As Listbox, lloc As Listbox, gloc As Valuebox, lvis As Listbox, gvis As Valuebox)‘Aqui declaramos los parámetros por tipo

‘Primero declaramos las variables
Dim fecha As String
Dim local As String
Dim glocal As Integer
Dim visita As String
Dim gvisita As Integer
‘Luego asignamos valores a las variables
fecha = lfecha.Current.text
local = lloc.Current.text
glocal = gloc.value
visita = lvis.Current.text
gvisita = gvis.Value

‘Finalmente insertamos los valores en la base de datos  
Try hconn.exec(“Insert into Fechas values(&1,&2,&3,&4,&5,&6)”, Null, fecha, local, glocal, visita, gvisita)
bloqueabotones ‘ y bloqueamos los botones
End

Los comentarios, resaltados en rojo explican lo que hace cada parte del programa, el null en azul es necesario para que el campo autonúmerico rowid se incremente en una unidad en cada nuevo registro guardado.

Vamos ahora a crear el formulario para ver las tablas y realizar las búsquedas. Como ya es l tercer proyecto no vamos a explicar ni como agregar el formulario ni como “dibujar los controles. En la imagen hemos incluido los nombres y en algún caso el tipo de control.

form1

Form 1 en tiempo de diseño

Me quedó con el nombre por defecto, Form1,pero sería un nombre más adecuado frmfechas. Lo abrimos desde fmain haciendo click en btnlistar (listar fechas).

Ahora el código de form1:

Private hconn As Connection
Private hresu As Result ‘ Gambas class file

Public Function ConectarBase() As Boolean

If hconn <> Null Then Return False

hconn = New Connection
hconn.Host = User.Home &/ “.goles1”
hconn.name = “Futbol”
hconn.type = “sqlite3”
Try hconn.Open()
If Error Then
hconn = Null
Message.Error(“error al conectar con la base”)
Return True
Endif
Return False

End

Public Sub Form_Open()

Dim palabra As String

tabla.Clear ‘limpiar tabla

If ConectarBase() Then Return

tabla.Columns.Count = 6

tabla.Columns[0].text = “id”
tabla.Columns[0].Width = 30
tabla.Columns[0].Alignment = Align.Center
tabla.Columns[1].text = “Local”
tabla.Columns[1].Alignment = Align.Center
tabla.Columns[1].Width = 150
tabla.Columns[2].text = “glocal”
tabla.Columns[2].Width = 60
tabla.Columns[2].Alignment = Align.Center
tabla.Columns[3].text = “Visitante”
tabla.Columns[3].Alignment = Align.Center
tabla.Columns[3].Width = 150
tabla.Columns[4].text = “gvisita”
tabla.Columns[4].Alignment = Align.Center
tabla.Columns[4].Width = 60
tabla.Columns[5].text = “Fecha”
tabla.Columns[5].Alignment = Align.Center
tabla.Columns[5].Width = 100

hresu = hconn.Exec(“Select * from Fechas order by Fecha ASC”)

Do While hresu.Available
palabra = hresu[“rowid”]
tabla.Add(palabra, palabra)
tabla[palabra][1] = hresu[“Local”]
tabla[palabra][2] = hresu[“Glocal”]
tabla[palabra][3] = hresu[“Visitante”]
tabla[palabra][4] = hresu[“Gvisita”]
tabla[palabra][5] = hresu[“Fecha”]
hresu.MoveNext()
Loop
FMain.listado(lbequipo)
modcargar.cargar2
End

Public Sub btnbuscar_Click()

Dim palabra As String
Dim filtro As String
tabla.Clear ‘limpiar tabla

If ConectarBase() Then Return

tabla.Columns.Count = 6

tabla.Columns[0].text = “id”
tabla.Columns[0].Width = 30
tabla.Columns[0].Alignment = Align.Center
tabla.Columns[1].text = “Local”
tabla.Columns[1].Alignment = Align.Center
tabla.Columns[1].Width = 150
tabla.Columns[2].text = “glocal”
tabla.Columns[2].Width = 60
tabla.Columns[2].Alignment = Align.Center
tabla.Columns[3].text = “Visitante”
tabla.Columns[3].Alignment = Align.Center
tabla.Columns[3].Width = 150
tabla.Columns[4].text = “gvisita”
tabla.Columns[4].Alignment = Align.Center
tabla.Columns[4].Width = 60
tabla.Columns[5].text = “Fecha”
tabla.Columns[5].Alignment = Align.Center
tabla.Columns[5].Width = 100
filtro = lbequipo.Current.Text
hresu = hconn.Exec(“Select * from Fechas  where Local like ‘” & filtro & “‘ Or Visitante Like ‘” & filtro & “‘”) ‘consulta sql

Do While hresu.Available
palabra = hresu[“rowid”]
tabla.Add(palabra, palabra)
tabla[palabra][1] = hresu[“Local”]
tabla[palabra][2] = hresu[“Glocal”]
tabla[palabra][3] = hresu[“Visitante”]
tabla[palabra][4] = hresu[“Gvisita”]
tabla[palabra][5] = hresu[“Fecha”]
hresu.MoveNext()
Loop

End

Public Sub btnreset_Click()

Form_Open

End

Public Sub btnbuscarfecha_Click()

Dim palabra As String
Dim filtro As String
tabla.Clear ‘limpiar tabla

If ConectarBase() Then Return

tabla.Columns.Count = 6

tabla.Columns[0].text = “id”
tabla.Columns[0].Width = 30
tabla.Columns[0].Alignment = Align.Center
tabla.Columns[1].text = “Local”
tabla.Columns[1].Alignment = Align.Center
tabla.Columns[1].Width = 150
tabla.Columns[2].text = “glocal”
tabla.Columns[2].Width = 60
tabla.Columns[2].Alignment = Align.Center
tabla.Columns[3].text = “Visitante”
tabla.Columns[3].Alignment = Align.Center
tabla.Columns[3].Width = 150
tabla.Columns[4].text = “gvisita”
tabla.Columns[4].Alignment = Align.Center
tabla.Columns[4].Width = 60
tabla.Columns[5].text = “Fecha”
tabla.Columns[5].Alignment = Align.Center
tabla.Columns[5].Width = 100
filtro = lbfechas.Current.Text
hresu = hconn.Exec(“Select * from Fechas  where Fecha like ‘” & filtro & “‘”) ‘consulta sql

Do While hresu.Available
palabra = hresu[“rowid”]
tabla.Add(palabra, palabra)
tabla[palabra][1] = hresu[“Local”]
tabla[palabra][2] = hresu[“Glocal”]
tabla[palabra][3] = hresu[“Visitante”]
tabla[palabra][4] = hresu[“Gvisita”]
tabla[palabra][5] = hresu[“Fecha”]
hresu.MoveNext()
Loop

End

Public Sub Btncerrar_Click()

Me.Close

End
Vamos a explayarnos sobre algunos fragmentos de código  que aparecen aquí  y no habíamos visto antes. Dados que los equipos alternan la localía , cuando buscamos los resultados de un equipo debemos buscar en ambos campos, tenemos una sentencia sql con dos variables a considerar unidas por el operador lógico “or”, que literalmente significa “o”.

hresu = hconn.Exec(“Select * from Fechas  where Local like ‘” & filtro & “‘ Or Visitante Like ‘” & filtro & “‘”) 

Creo que el resto del código se explica bastante por sí solo, salvo la sentencia modcargar.cargar2, donde modcargar es un módulo del programa  y modcargar 2 es una función escrita en el misma. Veamos el código:

Public Sub cargar()

FMain.lbfechas.Add(“Elige fecha”)
FMain.lbfechas.Add(“fecha 01”)
FMain.lbfechas.Add(“fecha 02”)
FMain.lbfechas.Add(“fecha 03”)
FMain.lbfechas.Add(“fecha 04”)
FMain.lbfechas.Add(“fecha 05”)
FMain.lbfechas.Add(“fecha 06”)
FMain.lbfechas.Add(“fecha 07”)
FMain.lbfechas.Add(“fecha 08”)
FMain.lbfechas.Add(“fecha 09”)
FMain.lbfechas.Add(“fecha 10”)
FMain.lbfechas.Add(“fecha 10”)
FMain.lbfechas.Add(“fecha 12”)
FMain.lbfechas.Add(“fecha 13”)
FMain.lbfechas.Add(“fecha 14”)
FMain.lbfechas.Add(“fecha 15”)
End

Public Sub cargar2()
Form1.lbfechas.Add(“Elige fecha”)
Form1.lbfechas.Add(“fecha 01”)
Form1.lbfechas.Add(“fecha 02”)
Form1.lbfechas.Add(“fecha 03”)
Form1.lbfechas.Add(“fecha 04”)
Form1.lbfechas.Add(“fecha 05”)
Form1.lbfechas.Add(“fecha 06”)
Form1.lbfechas.Add(“fecha 07”)
Form1.lbfechas.Add(“fecha 08”)
Form1.lbfechas.Add(“fecha 09”)
Form1.lbfechas.Add(“fecha 10”)
Form1.lbfechas.Add(“fecha 10”)
Form1.lbfechas.Add(“fecha 12”)
Form1.lbfechas.Add(“fecha 13”)
Form1.lbfechas.Add(“fecha 14”)
Form1.lbfechas.Add(“fecha 15”)

End
Cualquier duda, contestaré a la brevedad posible desde el correo de contacto. 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