• Jueves 14 de Noviembre de 2024, 17:04

Autor Tema:  Mshflexgrid Y Consulta  (Leído 2387 veces)

solcito

  • Miembro MUY activo
  • ***
  • Mensajes: 143
    • Ver Perfil
Mshflexgrid Y Consulta
« en: Miércoles 16 de Marzo de 2005, 22:27 »
0
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
Everything that has a beginning has an end.....

Brroz

  • Miembro de PLATA
  • *****
  • Mensajes: 1058
    • Ver Perfil
Re: Mshflexgrid Y Consulta
« Respuesta #1 en: Jueves 17 de Marzo de 2005, 15:01 »
0
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
  1.  
  2. Persona_________ Lunes____Martes__Miercoles__Jueves__Viernes__
  3. Juan perez________8:00_____8:15_____8:04_____8:05____8:06
  4.  
  5.  
y tampoco esta:
Código: Text
  1.  
  2. Persona________Día__________Hora__
  3. Juan pérez_____LUNES_______8:00
  4. _______________MARTES______8:15
  5. _______________MIÉRCOLES___8:04
  6. _______________JUEVES______8:05
  7. _______________VIERNES_____8:06
  8.  
  9.  

Tal vez pudieras describir más la vista que necitas...

Chao.

solcito

  • Miembro MUY activo
  • ***
  • Mensajes: 143
    • Ver Perfil
Re: Mshflexgrid Y Consulta
« Respuesta #2 en: Jueves 17 de Marzo de 2005, 15:13 »
0
Perdon, esta es la vista que necesito, de tanto escribir me termine mareando  :blink:

Código: Text
  1.  
  2. Persona_________ Lunes____Martes__Miercoles__Jueves__Viernes__
  3. Juan perez________8:00_____8:15_____8:04_____8:05____8:06
  4.  
  5.  

y mi consulta me va a traer 5 registros correspondientes a juan Perez
Everything that has a beginning has an end.....

Brroz

  • Miembro de PLATA
  • *****
  • Mensajes: 1058
    • Ver Perfil
Re: Mshflexgrid Y Consulta
« Respuesta #3 en: Jueves 17 de Marzo de 2005, 15:37 »
0
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
  1.  
  2.     flx1.Clear
  3.     flx1.FixedRows = 1
  4.     flx1.FixedCols = 0
  5.     flx1.Rows = 50 / 5
  6.     flx1.Cols = 6
  7.     flx1.TextMatrix(0, 0) = "Nombre"
  8.     flx1.TextMatrix(0, 1) = "Lunes"
  9.     flx1.TextMatrix(0, 2) = "Martes"
  10.     flx1.TextMatrix(0, 3) = "Miércoles"
  11.     flx1.TextMatrix(0, 4) = "Jueves"
  12.     flx1.TextMatrix(0, 5) = "Viernes"
  13.     Dim i1 As Integer, lCta As Long
  14.     rs1.MoveFirst
  15.     Do Until rs1.EOF
  16.         lCta = lCta + 1
  17.         flx1.TextMatrix(lCta, 0) = rs1.Fields(0).Value
  18.         flx1.TextMatrix(lCta, 1) = rs1.Fields(1).Value
  19.         For i1 = 2 To 5
  20.             rs1.MoveNext
  21.             flx1.TextMatrix(lCta, i1) = rs1.Fields(1).Value
  22.         Next i1
  23.         rs1.MoveNext
  24.     Loop
  25.  
  26.  

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

  • Miembro de PLATA
  • *****
  • Mensajes: 1058
    • Ver Perfil
Re: Mshflexgrid Y Consulta
« Respuesta #4 en: Jueves 17 de Marzo de 2005, 15:44 »
0
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.