Programación General > Visual Basic 6.0 e inferiores
Mshflexgrid Y Consulta
(1/1)
solcito:
Hola queridos amigos. Tengo la siguiente situacion:
Hago una consulta a una base de datos y me trae estos datos (a modo de ejemplo)
IdDia Persona Horario
1 Juan Perez 8:00
2 Juan Perez 8:15
3 Juan Perez 8:04
4 Juan Perez 8:05
5 juan Perez 8:06
y asi por cada persona q yo traiga, mi consulta me trae los horarios de trabajo que han realizado las persona de una determinada dependencia, en una semana.
muestro los datos al usuario en una MSHFLEXGRID, lo que no quiero es que se vea un solo registro por cada persona, de esta manera:
Persona Lunes Martes Miercoles Jueves Viernes
Juan perez 8:00 8:15 8:04 8:05 8:06
y asi con cada uno.
lo q habia pensado es hacer es usarlo con Recordset Jerarquico, pero eh aqui un problema:
la presentacion de las bandas puede ser en forma horizontal , se acercaria mas a lo q necesito, pero se veria de la siguiente manera:
- Juan perez Lunes 8:00
Martes 8:15
....
Viernes 8:06
y asi con cada persona, lo cual seria algo muy engorroso para ver.
y con las bandas de forma vertical lo mismo,
Necesitaria saber si de alguna menera puedo hacer que se vea como quiero yo?
Desde ya Muchas Gracias
Brroz:
Hola solcito.
La verdad es que no consigo comprender como deseas visualizar los datos.
Por lo que entendí, dices que no te vale una vista de este estilo:
--- Código: Text --- Persona_________ Lunes____Martes__Miercoles__Jueves__Viernes__Juan perez________8:00_____8:15_____8:04_____8:05____8:06 y tampoco esta:
--- Código: Text --- Persona________Día__________Hora__Juan pérez_____LUNES_______8:00_______________MARTES______8:15_______________MIÉRCOLES___8:04_______________JUEVES______8:05_______________VIERNES_____8:06
Tal vez pudieras describir más la vista que necitas...
Chao.
solcito:
Perdon, esta es la vista que necesito, de tanto escribir me termine mareando :blink:
--- Código: Text --- Persona_________ Lunes____Martes__Miercoles__Jueves__Viernes__Juan perez________8:00_____8:15_____8:04_____8:05____8:06
y mi consulta me va a traer 5 registros correspondientes a juan Perez
Brroz:
Vale.
No sé cómo es la vista que obtienes en la consulta, pero suponiendo que obtienes
dos campos por registro: nombre y valor para el día y que los registros están ordenados de esta forma: reg 1 = lunes, reg 2 = martes, reg 3= mierc ... reg 5 =viernes, reg 6 = lunes, ... La cosa podría hacerse así:
Suponiendo que el recordset se llame rs1 y que el Grid se llame flx1
--- Código: Text --- flx1.Clear flx1.FixedRows = 1 flx1.FixedCols = 0 flx1.Rows = 50 / 5 flx1.Cols = 6 flx1.TextMatrix(0, 0) = "Nombre" flx1.TextMatrix(0, 1) = "Lunes" flx1.TextMatrix(0, 2) = "Martes" flx1.TextMatrix(0, 3) = "Miércoles" flx1.TextMatrix(0, 4) = "Jueves" flx1.TextMatrix(0, 5) = "Viernes" Dim i1 As Integer, lCta As Long rs1.MoveFirst Do Until rs1.EOF lCta = lCta + 1 flx1.TextMatrix(lCta, 0) = rs1.Fields(0).Value flx1.TextMatrix(lCta, 1) = rs1.Fields(1).Value For i1 = 2 To 5 rs1.MoveNext flx1.TextMatrix(lCta, i1) = rs1.Fields(1).Value Next i1 rs1.MoveNext Loop
Por supuesto que este código puede cascar o producir resultados inesperados si la secuencia de los registros no es como comentaba... pero bueno, esas son cosas que deberás ir ajustando.
De todas formas, te recomendaría intentar usar una (o varias) sentencias SQL que devolvieran una vista de los datos tal y como la necesitas (la cosa sería por lo menos 4 veces más rápida).
Suerte.
Brroz:
Oye... que acabo de caer da burra fijándome bien: utilizas un flexgrid jerárquico y el ejemplo es para uno corriente y moliente. Supongo que te sirve igual... pero si no es así, avisa.
chau.
Navegación
Ir a la versión completa