https://foro.gambas-es.org/viewtopic.php?f=4&t=1025
-----------------------------------
lnoriega
Martes, 19 Octobre 2010, 18:05

Control  Gridview.
-----------------------------------
Buenas tarde a la comunidad mis saludos codiales.
mi problema es que tengo que cargar un "gridview " de unos datos ya cargados en una base de datos y logro solo cargar las 2 primeras filas nada mas la consulta a la base de datos es correcta. pero no porque no le asignas los datos a las siguientes filas. aqui esta los codigos:

PUBLIC SUB Form_Open()
'abriendo Base de datos
MOD.Connect()
IF MOD.Connect() THEN
  ELSE
    message.Error("Error en la conexion")
ENDIF


'columnas de gridview
WITH gridView1
.Columns.Count = 2
.Columns[0].Text = "Datos"
.Columns[0].Width = 150
.Columns[1].Text = "Descripcion"
.Columns[1].Width = 250
.Rows.Count = 9
END WITH 
gridView1[0, 0].Alignment = Align.Left
gridView1[0, 0].Text = "Cedula:"
gridView1[1, 0].Alignment = Align.Left
gridView1[1, 0].Text = "Nombre:"
gridView1[2, 0].Alignment = Align.Left
gridView1[2, 0].Text = "Apellido:"
gridView1[3, 0].Alignment = Align.Left
gridView1[3, 0].Text = "Sexo:"
gridView1[4, 0].Alignment = Align.Left
gridView1[4, 0].Text = "Fecha de Nacido:"
gridView1[5, 0].Alignment = Align.Left
gridView1[5, 0].Text = "Cargo:"
gridView1[6, 0].Alignment = Align.Left
gridView1[6, 0].Text = "Direccion:"
gridView1[7, 0].Alignment = Align.Left
gridView1[7, 0].Text = "Fecha de Ingreso:"
gridView1[8, 0].Alignment = Align.Left
gridView1[8, 0].Text = "Observaciones:"
ME.Center
END

PUBLIC SUB Button3_Click()
DIM query AS String
DIM resultado AS Result
DIM Foto_in AS String
Dialog.path = "/home/luis/proyecto/sin_foto.jpeg"
foto_in = File.Dir(Dialog.Path) & "/" & File.Name(Dialog.Path)
IF (TextBox1.Text = "") THEN
    message.Info("Debe Introducir un Nº de Cédula")
ELSE
    query = "select * from  voluntarios where cedula ='" & TextBox1.Text & "'"
    resultado = db.Exec(query)
   IF resultado.Count > 0 THEN
    gridView1[0, 1].Alignment = Align.Normal
    gridView1[0, 1].Text = resultado["cedula"]
    gridView1[1, 1].Alignment = Align.Normal
    gridView1[1, 1].Text = resultado["nombre"]
    gridView1[2, 1].Alignment = Align.Normal
    gridView1[2, 1].Text = resultado["apellido"]
    gridView1[3, 1].Alignment = Align.Normal
    gridView1[3, 1].Text = resultado["sexo"]
    GridView1[4, 1].Alignment = Align.Normal
    GridView1[4, 1].Text = resultado["fechanac"]
    GridView1[5, 1].Alignment = Align.Normal
    GridView1[5, 1].Text = resultado["cargo"]
    GridView1[6, 1].Alignment = Align.Normal
    GridView1[6, 1].Text = resultado["direc"]
    GridView1[7, 1].Alignment = Align.Normal
    GridView1[7, 1].Text = resultado["obser"]
    TextBox7.Text = resultado["foto"] 'Carga la ruta de la foto
    PictureBox1.Picture = Picture.Load(TextBox7.Text) 'Carga la foto
    ELSE 
        message.Info("El registro no se encuentra en la base de datos")
 ENDIF
ENDIF 
END

A su pronta ayuda me depido Gracias.

base de datos: mysql
version de gambas:2.19
gb.gui


-----------------------------------
shordi
Martes, 19 Octobre 2010, 20:47

Re: Control  Gridview.
-----------------------------------
Tu problema es que no has implementado el evento Data, que es el encargado de rellenar cada celda a partir de la consulta siempre que se necesite.
Busca en la documentación de GridView, que creo que viene un ejemplo sencillito.

Suerte


-----------------------------------
soplo
Miercoles, 20 Octobre 2010, 03:55

Re: Control  Gridview.
-----------------------------------
Hola
[quote]mi problema es que tengo que cargar un "gridview " de unos datos ya cargados en una base de datos y logro solo cargar las 2 primeras filas[/quote]
En el código veo que primero rellenas la columna 0 (9 celdas). Esto lo veo correcto porque especificaste el rows.count=9 osea que definiste 9 filas.

Y luego rellenas la columna 1. Esto lo veo correcto porque definiste dos columnas .column.count=2

Así que defines 9 filas y dos columnas. Rellenas la columna 0 y la 1 y te quejas de que solo te ha rellenado dos ¿no es así?

No entiendo tu problema ¿cuando dices que no te llena mas que dos filas quieres decir que no llega a llenar la celda [2,0] con el contenido "apellido"?

Porque yo creo que si lo hace. Yo creo que tu te lías entre filas y columnas. Lo que has puesto te saca los datos así:

DATOS      DESCRIPCION
CEDULA       CAMPO_CEDULA
NOMBRE    CAMPO_NOMBRE
APELLIDO    CAMPO_APELLIDO
SEXO    CAMPO_SEXO
FECHA DE NACIDO   CAMPO_FECHA_N
CARGO   CAMPO_CARGO
DIRECCION CAMPO_DIRECCION
FECHA DE INGRESO CAMPO_FECHA_I
OBSERVACIONES CAMPO_OBSERVACIONES

Y yo creo que eso es lo que te sale.
 :mryellow: 

¿Podría ser que no hubieras puesto la propiedad header a gridview.horizontal?


-----------------------------------
lnoriega
Jueves, 21 Octobre 2010, 01:09

Re: Control  Gridview.
-----------------------------------
buenas noches, Saludos Listo compañeros, cierto me faltaba el evento carga datos.
aqui esta el codigo:



PUBLIC id AS Integer
PUBLIC datos AS String
PUBLIC descripcion AS String

PUBLIC SUB Form_Open()
'abriendo Base de datos
MOD.Connect()
IF MOD.Connect() THEN
  ELSE
    message.Error("Error en la conexion")
ENDIF


'columnas de gridview
WITH gridView1
    .Columns.Count = 2
    .Columns[0].Text = "Datos"
    .Columns[0].Width = 150
    .Columns[1].Text = "Descripcion"
    .Columns[1].Width = 250
    .Rows.Count = 9
END WITH 
      gridView1[0, 0].Alignment = Align.Left
      gridView1[0, 0].Text = "Cedula:"
      gridView1[1, 0].Alignment = Align.Left
      gridView1[1, 0].Text = "Nombre:"
      gridView1[2, 0].Alignment = Align.Left
      gridView1[2, 0].Text = "Apellido:"
      gridView1[3, 0].Alignment = Align.Left
      gridView1[3, 0].Text = "Sexo:"
      gridView1[4, 0].Alignment = Align.Left
      gridView1[4, 0].Text = "Fecha de Nacido:"
      gridView1[5, 0].Alignment = Align.Left
      gridView1[5, 0].Text = "Cargo:"
      gridView1[6, 0].Alignment = Align.Left
      gridView1[6, 0].Text = "Direccion:"
      gridView1[7, 0].Alignment = Align.Left
      gridView1[7, 0].Text = "Fecha de Ingreso:"
      gridView1[8, 0].Alignment = Align.Left
      gridView1[8, 0].Text = "Observaciones:"

ME.Center
END

PUBLIC SUB Button3_Click()
DIM query AS String
DIM resultado AS Result
DIM Foto_in AS String
Dialog.path = "/home/luis/proyecto/sin_foto.jpeg"
foto_in = File.Dir(Dialog.Path) & "/" & File.Name(Dialog.Path)
IF (TextBox1.Text = "") THEN
            message.Info("Debe Introducir un Nº de Cédula")
        ELSE
            query = "select * from  voluntarios where cedula ='" & TextBox1.Text & "'"
            resultado = db.Exec(query)
              IF resultado.Count > 0 THEN
                     cargardat(id, datos, descripcion)
                     gridView1[0, 1].Alignment = Align.Normal
                     gridView1[0, 1].Text = resultado["cedula"]
                     gridView1[1, 1].Alignment = Align.Normal
                     gridView1[1, 1].Text = resultado["nombre"]
                     gridView1[2, 1].Alignment = Align.Normal
                     gridView1[2, 1].Text = resultado["apellido"]
                     gridView1[3, 1].Alignment = Align.Normal
                     gridView1[3, 1].Text = resultado["sexo"]
                     GridView1[4, 1].Alignment = Align.Normal
                     GridView1[4, 1].Text = resultado["fechanac"]
                     GridView1[5, 1].Alignment = Align.Normal
                     GridView1[5, 1].Text = resultado["cargo"]
                     GridView1[6, 1].Alignment = Align.Normal
                     GridView1[6, 1].Text = resultado["direc"]
                     GridView1[7, 1].Alignment = Align.Normal
                     GridView1[7, 1].Text = resultado["obser"]
                     GridView1[8, 1].Alignment = Align.Normal
                     GridView1[8, 1].Text = resultado["obser"]
                     TextBox7.Text = resultado["foto"] 'Carga la ruta de la foto
                     PictureBox1.Picture = Picture.Load(TextBox7.Text) 'Carga la foto
                ELSE 
                    message.Info("El registro no se encuentra en la base de datos")
                   ' TextBox1.Clear()
                   ' TextBox2.Clear()
                   ' TextBox3.Clear() 
                   ' TextBox4.Clear()
                   ' TextBox5.Clear()
                   ' TextBox6.Clear()
                   ' PictureBox1.Picture = Picture.Load(Foto_in) 
                   ' TextArea1.Clear()
                   ' TextBox1.SetFocus() 
             ENDIF
        
  ENDIF 
END


PUBLIC FUNCTION cargardat(id AS Integer, datos AS String, descripcion AS String)
GridView1[id, 0].Text = datos
GridView1[id, 1].Text = descripcion
GridView1.Refresh()
END



Saludos....


-----------------------------------
Shell
Miercoles, 16 Febrero 2011, 10:16

Re: Control  Gridview.
-----------------------------------
Se que el mensaje es antiguo. :roll: 

Como estaba empezando a ver el control y no sabía como alinear las celdas.
Entre la documentación de gambas y este mensaje me entere de como hacerlo.

Esto, podrías usar un bucle anidado para las filas y las columnas y ahorrarías parte del código que se repite en la alineación.  ;-)


