Visual Basic - Colorear filas en grid

Life is soft - evento anual de software empresarial
 
Vista:

Colorear filas en grid

Publicado por Omar (56 intervenciones) el 21/07/2009 20:26:58
Que tal foro. Tengo una pantalla en la cual muestro unos reportes que tienen fecha de vencimiento y fecha de alarma, los muestro sin problemas, pero necesito colorear la fila en la cual el reporte su fecha de alarma ya halla pasado la fecha actual.

Este es mi codigo:

Private Sub LlenarGrid()
Cadena = "SELECT * FROM (MesaControl INNER JOIN Clientes ON MesaControl.iDClienteMesaControl=Clientes.iDCliente) INNER JOIN Sucursales ON MesaControl.iDSucursalMesaControl=Sucursales.iDSucursal WHERE StatusMesaControl='Abierto' ORDER BY FechaLimiteMesaControl ASC"

AbrirDAO
Set Dr = BaseDatos.OpenRecordset(Cadena)

VarFecha1 = Format(TxtFecha.Text, "dd/MM/yyyy HH:mm:ss")
VarFecha2 = Format(Dr!FechaAlarmaMesaControl, "dd/MM/yyyy HH:mm:ss")

If Dr.EOF <> Empty Then
Exit Sub
End If
Do While Not Dr.EOF
If VarFecha1 >= VarFecha2 Then
MSFlexGrid.BackColor = &HFF&
Else
MSFlexGrid.BackColor = &H80000005
End If
MSFlexGrid.AddItem vbTab & Trim(Dr!NombreCliente) & vbTab & Trim(Dr!NombreSuc) & vbTab & Trim(Dr!Folio) & vbTab & Trim(Dr!FechaMesaControl) & vbTab & Trim(Dr!ProblemaReportadoMesaControl) & vbTab & Trim(Dr!PrioridadMesaControl) & vbTab & Trim(Dr!FechaAlarmaMesaControl) & vbTab & Trim(Dr!FechaLimiteMesaControl)
MSFlexGrid.TextMatrix(MSFlexGrid.Rows - 1, 0) = MSFlexGrid.Rows - 1
MSFlexGrid.ColAlignment(2) = 0
Dr.MoveNext
Loop
CerrarDAO
End Sub

Lo que hace es pintarme todo, o todo blanco o todo rojo.

De antemano mil gracias.

Saludos.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Colorear filas en grid

Publicado por JaImE GuErReRo (361 intervenciones) el 21/07/2009 22:56:37
esto se usa para pintar una celda

MSFlexGrid1.CellBackColor = vbRed

como no tengo el visual 6 instalado, prueba buscando si existe la propiedad rowbackcolor. o algo relacionado con la fila
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Colorear filas en grid

Publicado por Julio Aguilar (69 intervenciones) el 23/07/2009 18:57:43
Tiera razon Jaime, yo busque y no encontre algo directamente con la fila asi que este ejemplo puedes adaptarlo para que te pinte la fila que quieras.

Pintar la Fila 1

MSHFlexGrid1.Row = 1 '-- fila 1
For i = 1 To MSHFlexGrid1.Cols - 1
MSHFlexGrid1.col = i
MSHFlexGrid1.CellBackColor = vbRed
Next i
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Colorear filas en grid

Publicado por Omar (56 intervenciones) el 23/07/2009 22:29:02
Gracias Jaime y Julio por sus respuestas, tenian razon despues de tanto buscar y batallar por encontre lo que busco, a no ser por el pequeno inconveniente que la ultima fila no me la pinta no se porque funciona bien.

Saludos.

Private Sub ColorearFecha()
Dim Fila As Integer
Dim Columna As Integer
With MSFlexGrid
For Fila = 1 To .Rows - 1
For Columna = 1 To .Cols - 1
If CDate(Format(VarFecha1, "dd/MM/yyyy HH:mm:ss")) <= CDate(Format(.TextMatrix(Fila, 7), "dd/MM/yyyy HH:mm:ss")) Then
.Row = Fila
.Col = Columna
.CellBackColor = vbRed
End If
Next Columna
Next Fila
End With
End Sub
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Colorear filas en grid

Publicado por JaImE GuErReRo (361 intervenciones) el 23/07/2009 22:35:57
cambia
For Columna = 1 To .Cols - 1
por
For Columna = 1 To .Cols

se usa el cols-1 cuando inicias en 0
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

No, no es eso

Publicado por Omar (56 intervenciones) el 23/07/2009 23:02:39
Ya lo habia intentado
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar