Dedicado a mis proyectos en Gambas ,un lenguaje de programación parecido al Visual Basic + Java pero ampliamente mejorado y...¡¡para gnu/linux!!.La potencia del gnu/linux sumada a la facilidad del Basic



Consultas, Desarrollo de programas y petición de presupuestos:



domingo, 4 de agosto de 2013

Modelo Vista Controlador (MVC): ejemplos usando base de datos sqlite3 (2º parte: mostrando en un gridviews)

Modelo Vista Controlador (MVC): ejemplos usando base de datos sqlite3  (2º parte: mostrando en un gridviews))



Bueno, como os comenté en el anterior post (http://jsbsan.blogspot.com.es/2013/08/modelo-vista-controlador-mvc-ejemplos.html ), le he añadido un gridviews , para mostrar todos los datos, y por supuesto sigo siguiendo el patrón de MVC para la ampliación de la aplicación:

Lo que se le ha añadido ha sido lo siguiente:
En la clase PersonaDAO, una nueva funcion:

Public Function MostrarPersonas() As Result
Dim resultadoConsulta As Result
Dim conectar As New Conexion
Dim sqlstring As String
conectar.Conexion()
SQLString = "Select * from dato"
Try resultadoConsulta = conectar.hconn.Exec(SqlString)
If Error Then Message.Info("No se ha podido obtener el listado de personas. Error: " & Error.Text)
Return resultadoConsulta
End

Que devuelve el resultado de la consulta "Select * from dato". Nota: la base de datos se llama "Personas" , pero la tabla se llama "dato"
En la clase Logica, otra función que haria la validación y llamaria a la funcion de PersonaDao.MostrarPersonas, devolviendo un Result


Public Function validadMostrarPersonas() As Result
Dim miPersonaDao As New PersonaDao
Return miPersonaDao.MostrarPersonas()
End
En la clase Coordinador, que usa la clase lógica para que haga la validación y devuelva un resul



Public Function MostrarPersonas() As Result
Return milogica.validadMostrarPersonas()
End

Y ya por ultimo, en el formulario principal, he definido el gridview, usado el evento DATA para rellenar y colorear las filas, y que cada vez que se Registre o Administre la base de datos, se actualice el gridview.



'--------------------------------formatero del gridview---------------------------------
Public Function gridFormatearColumnas(grid As GridView) As Gridview
With grid
.header = 3
.rows.count = 0
.columns.count = 5
.Columns[0].title = "id"
.Columns[0].width = 80
.Columns[1].title = "nombre"
.Columns[1].width = 80
.Columns[2].title = "edad"
.Columns[2].width = 80
.Columns[3].title = "profesion"
.Columns[3].width = 80
.Columns[4].title = "telefono"
.Columns[4].width = 80
.font.name = "Sans"
.font.size = 10
.Background = 16777215
.Foreground = 0
End With
Return grid
End

'-------------------------- Actualizacion datos gridview-------------------------
Public Sub GridViewMuestraDatos_Data(row As Integer, column As Integer)
' este evento se encarga de dibujar los datos en el gridviews, para que aparezcan en la pantalla.
resultado.MoveTo(row)
GridViewMuestraDatos.Data.text = Str(resultado[GridViewMuestraDatos.Columns[column].text])
' colorea la fila, según sea par o impar
If row Mod 2 = 0 Then GridViewMuestraDatos.Data.Background = Color.LightBackground
End

Public Sub RefrescarDatos()
resultado = coordina.MostrarPersonas()
GridViewMuestraDatos.Rows.count = 0 'lo ponemos a cero el numero de filas
GridViewMuestraDatos.Rows.count = resultado.count 'actualizamso al resultado de la consulta
End

Os dejo aqui el código fuente completo del ejemplo: enlace de descarga


Saludos