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

[0] Índice de Mensajes

Ir a la versión completa