Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Reiniciar un MSFLEXGRID y cambiar de color una linea

Estas en el tema de Reiniciar un MSFLEXGRID y cambiar de color una linea en el foro de Visual Basic clásico en Foros del Web. Compañer@s,, Tengo en realidad dos consultas: 1. Tengo un MSFLEXGRID que al cargar el formulario, se llena con datos de una consulta SQL. Debajo del ...
  #1 (permalink)  
Antiguo 17/12/2005, 14:49
 
Fecha de Ingreso: noviembre-2003
Ubicación: Costa Rica
Mensajes: 85
Antigüedad: 20 años, 5 meses
Puntos: 0
Reiniciar un MSFLEXGRID y cambiar de color una linea

Compañer@s,,

Tengo en realidad dos consultas:

1. Tengo un MSFLEXGRID que al cargar el formulario, se llena con datos de una consulta SQL. Debajo del GRID hay varias opciones de filtrado de los datos, cada una de ellas, una consulta con un parametro diferente. El asunto es que cuando rellena el Grid con los nuevos datos, me deja las lineas anteriores en blanco y em coloca los nuevos datos debajo de estas. Ya intente con CLEAR, REFRESH y nada. Hay alguna propiedad para reiniciar el GRID?

2. En la misma consulta inicial, que es de socios de la empresa, se muestran varios datos, entre ellos su STATUS (activo, inactivo o borrado). Como hago para que depende del Status me muestre la linea (toda) en un color especifico, asi los inactivos pueden ser azules, borrados en rojo, etc.

la consulta inicial es esta

Do While Not rst.EOF
gridplayers.AddItem rst.Fields("ID") & Chr(9) & rst.Fields("NAME") & Chr(9) & rst.Fields("STATUS") & Chr(9) & rst.Fields("BALANCE") & Chr(9) & rst.Fields("PENDING") & Chr(9) & rst.Fields("CREDITLIMIT")
rst.MoveNext
Loop


Muchas gracias por su ayuda..
  #2 (permalink)  
Antiguo 17/12/2005, 16:48
Avatar de hernanmdq  
Fecha de Ingreso: julio-2005
Ubicación: Argentina - Entre Rios
Mensajes: 167
Antigüedad: 18 años, 9 meses
Puntos: 1
Para "reiniciar un flexgrid" pones flex.rows = 1 , con esto dejas la cabecera si es que tienes, sino pon flex.rows = 0.

Lo segundo seria recorrer el flex con un for y poner el backcolor del color que prefieras de acuerdo atus condiciones de activo y demas.

Salu2
__________________
| Codigo Geek | Blog de Cine |
  #3 (permalink)  
Antiguo 19/12/2005, 08:54
 
Fecha de Ingreso: noviembre-2003
Ubicación: Costa Rica
Mensajes: 85
Antigüedad: 20 años, 5 meses
Puntos: 0
Compañero,,

Muchas gracias, me funciono a la perfeccion lo de las lineas. Lo del color lo voy a probar. Me imagino que es recorriendo con for las columnas.. De cualquier forma, ahora que lo pruebo le escribo como me fue,..

Muchas gracias de nuevo

Alejandro
  #4 (permalink)  
Antiguo 19/12/2005, 11:58
 
Fecha de Ingreso: noviembre-2003
Ubicación: Costa Rica
Mensajes: 85
Antigüedad: 20 años, 5 meses
Puntos: 0
No me funciona todavia lo de los colores por Status, lo hice asi.

Do While Not rst.EOF
Gridplayers.AddItem rst.Fields("ID") & Chr(9) & rst.Fields("NAME") & Chr(9) & rst.Fields("STATUS") & Chr(9) & rst.Fields("BALANCE") & Chr(9) & rst.Fields("PENDING") & Chr(9) & rst.Fields("CREDITLIMIT")
If rst.Fields("STATUS") = "Inactive" Then
Gridplayers.CellBackColor = &H80FF80
Else
Gridplayers.CellBackColor = &HFFFFFF
End If
rst.MoveNext
Loop

Hay otra forma de hacerlo??

Gracias
  #5 (permalink)  
Antiguo 19/12/2005, 12:18
 
Fecha de Ingreso: noviembre-2003
Ubicación: Costa Rica
Mensajes: 85
Antigüedad: 20 años, 5 meses
Puntos: 0
Compañero,,

Lo hice asi y me cambio el color de la linea de encabezados

gridplayers.Rows = 1
Do While Not rst.EOF
gridplayers.AddItem rst.Fields("ID") & Chr(9) & rst.Fields("NAME") & Chr(9) & rst.Fields("STATUS") & Chr(9) & rst.Fields("BALANCE") & Chr(9) & rst.Fields("PENDING") & Chr(9) & rst.Fields("CREDITLIMIT")
If rst.Fields("STATUS") = "Inactive" Then
For cont = 0 To 5
gridplayers.Col = cont
gridplayers.CellBackColor = &H80FF80
Next cont
End If
rst.MoveNext
Loop

Saludos

Alejandro
  #6 (permalink)  
Antiguo 19/12/2005, 13:29
Avatar de hernanmdq  
Fecha de Ingreso: julio-2005
Ubicación: Argentina - Entre Rios
Mensajes: 167
Antigüedad: 18 años, 9 meses
Puntos: 1
Esta bien lo que haces solo te falta el gridplayers.refresh al final. Suerte
__________________
| Codigo Geek | Blog de Cine |
  #7 (permalink)  
Antiguo 20/12/2005, 10:59
 
Fecha de Ingreso: noviembre-2003
Ubicación: Costa Rica
Mensajes: 85
Antigüedad: 20 años, 5 meses
Puntos: 0
Gracias..

Le agrege el Refresh en varias parts y no hay forma de que me funcione. El primer registro con Status "Inactive" es el numero 8 y asi varios mas hacia abajo. Sin embargo, solo me cambia el color de la linea 1 donde estan los nombres de las columnas.

No hay otro metodo de hacer esto??

Muchas gracias por su paciencia.

Alejnadro
  #8 (permalink)  
Antiguo 20/12/2005, 11:42
Avatar de hernanmdq  
Fecha de Ingreso: julio-2005
Ubicación: Argentina - Entre Rios
Mensajes: 167
Antigüedad: 18 años, 9 meses
Puntos: 1
Este codigo lo utilizo para resaltar un flex cuando se da que la columna 7 esta vacia. Tu cambialo por tu condicion, ahi tiene que funcionar.

Código:
Private Sub ResaltarGrid()
    Dim i As Long
    Dim j As Long
    For i = 1 To mshListado.Rows - 1
        mshListado.Col = 7
        mshListado.Row = i
        If mshListado.Text = "" Then
            For j = 0 To mshListado.Cols - 1
                mshListado.Col = j
                mshListado.CellBackColor = RGB(250, 84, 61)
            Next j
        End If
    Next i
    mshListado.Refresh
End Sub
__________________
| Codigo Geek | Blog de Cine |
  #9 (permalink)  
Antiguo 20/12/2005, 11:44
Avatar de hernanmdq  
Fecha de Ingreso: julio-2005
Ubicación: Argentina - Entre Rios
Mensajes: 167
Antigüedad: 18 años, 9 meses
Puntos: 1
Ahora que veo, por el nombre de la variable no uso el flex, sino el herachicalflex, pero no creo que haya mayores diferencias.
__________________
| Codigo Geek | Blog de Cine |
  #10 (permalink)  
Antiguo 21/12/2005, 16:17
 
Fecha de Ingreso: noviembre-2003
Ubicación: Costa Rica
Mensajes: 85
Antigüedad: 20 años, 5 meses
Puntos: 0
Compañero,,

Te agradezco mucho,, me funciono a la perfeccion.. Le estoy muy agradecido..

Saludos

Alejandro
  #11 (permalink)  
Antiguo 27/02/2007, 08:02
Nav
 
Fecha de Ingreso: febrero-2007
Mensajes: 8
Antigüedad: 17 años, 2 meses
Puntos: 0
Re: Reiniciar un MSFLEXGRID y cambiar de color una linea

Hola Una Vez Hice Eso 0 Fue Medio Chanta Pero Funciono, Lo Hice En El Momento Del Keypress De La Grilla, Valede Las Teclas Supr, Enter Las Letras Y Numeros Y Espacio Le Dia Algo Como Para Enpesar Rescataba La Col Y Row Donde Se Presiono La Tecla Despues Pasaba Algo Como Grilla.text = Grilla.text & Str(keysacii) Bueno Era Algo Asi , No Me Recuerdo Muy Bien Pero Si Funciona
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:10.