MUDAR COR DE FONTE DO GRID
possuo o seguinte código:
esse código preenche meu flexgrid
na coluna 3 eu mostro o var_STATUS_OS que somente pode ser exbido 2 textos... ou apararece [Ô]ABERTO[Ô] ou aparece [Ô]FECHADO[Ô]
Como eu faço para se aparecer ABERTO ele ficar com a cor da fonte azul e quando aparecer FECHADO ele aparecer da cor vermelha?
OBS: somente a cor da fonte....
Private Sub FormatarGridFiltros()
With Grid
.Clear
.Cols = 5
.Rows = 2
.ColWidth(0) = 0
.ColWidth(1) = 0
.ColWidth(2) = 1300
.ColWidth(3) = 1000
.ColWidth(4) = 3700
.TextMatrix(0, 1) = [Ô]COD_OS[Ô]
.TextMatrix(0, 2) = [Ô]SITUAÇÃO[Ô]
.TextMatrix(0, 3) = [Ô]STATUS[Ô]
.TextMatrix(0, 4) = [Ô]CLIENTE[Ô]
[ô]colocar os cabeçalho em negrito
Dim X As Integer
For X = 0 To .Cols - 1
.Col = X
.Row = 0
.CellFontBold = True
Next X
[ô]centralizar o titulo
Dim f As Integer
For f = 0 To .Cols - 1
.Row = 0
.Col = f
.CellAlignment = flexAlignCenterCenter
Next f
Do Until RS.EOF
[ô]mudar a cor da coluna
Dim i As Integer
For i = 1 To .Rows - 1
.Row = i
.Col = 2: .CellBackColor = &HC0FFFF
Next
Grid.Redraw = False
Grid.Redraw = True
If Not IsNull(RS!Cod_OS) Then .TextMatrix(.Rows - 1, 1) = RS!Cod_OS
If Not IsNull(RS!var_STATUS) Then .TextMatrix(.Rows - 1, 2) = RS!var_STATUS
If Not IsNull(RS!var_STATUS_OS) Then .TextMatrix(.Rows - 1, 3) = RS!var_STATUS_OS
If Not IsNull(RS!NOME) Then .TextMatrix(.Rows - 1, 4) = RS!NOME
RS.MoveNext
.Rows = .Rows + 1
Loop
.Rows = .Rows - 1
End With
End Sub
esse código preenche meu flexgrid
na coluna 3 eu mostro o var_STATUS_OS que somente pode ser exbido 2 textos... ou apararece [Ô]ABERTO[Ô] ou aparece [Ô]FECHADO[Ô]
Como eu faço para se aparecer ABERTO ele ficar com a cor da fonte azul e quando aparecer FECHADO ele aparecer da cor vermelha?
OBS: somente a cor da fonte....
[ô]ZEBRAR
Dim Acor As ColorConstants
For X = MSS.FixedRows To MSS.Rows - 1
If MSS.TextMatrix(X, 4) = [Ô]ABERTO[Ô] Then
Acor = vbBLUE
Else
Acor = vbRED
End If
For Y = MSS.FixedCols To MSS.Cols - 1
MSS.Col = Y
MSS.Row = X
MSS.CellForeColor = Acor
Next Y
Next X
mais ou menos isso ?
Dim Acor As ColorConstants
For X = MSS.FixedRows To MSS.Rows - 1
If MSS.TextMatrix(X, 4) = [Ô]ABERTO[Ô] Then
Acor = vbBLUE
Else
Acor = vbRED
End If
For Y = MSS.FixedCols To MSS.Cols - 1
MSS.Col = Y
MSS.Row = X
MSS.CellForeColor = Acor
Next Y
Next X
mais ou menos isso ?
nesse caso ele pegou valores da coluna 4, depois é só vc acertar ai q oluna ele pega o aberto ou fechado
Ficou perfeito amigo...
Como eu faço para somente a celula que tem o nome ABERTO ou FECHADO mudar a cor e as outras celulas das outras colunas ficarem normal?
Como eu faço para somente a celula que tem o nome ABERTO ou FECHADO mudar a cor e as outras celulas das outras colunas ficarem normal?
Ai vc tira o segundo for:
Dim Acor As ColorConstants
For X = MSS.FixedRows To MSS.Rows - 1
If MSS.TextMatrix(X, 4) = [Ô]ABERTO[Ô] Then
Acor = vbBLUE
Else
Acor = vbRED
End If
MSS.Col = 3 [ô]a coluna do aberto ou fechado
MSS.Row = X
MSS.CellForeColor = Acor
Next X
Dim Acor As ColorConstants
For X = MSS.FixedRows To MSS.Rows - 1
If MSS.TextMatrix(X, 4) = [Ô]ABERTO[Ô] Then
Acor = vbBLUE
Else
Acor = vbRED
End If
MSS.Col = 3 [ô]a coluna do aberto ou fechado
MSS.Row = X
MSS.CellForeColor = Acor
Next X
Amigo está dando problema somente na cor da celula da ultima linha
Independente se é [Ô]ABERTO[Ô] ou [Ô]FECHADO[Ô] ela sempre fica vermelha.
As outras linhas estão corretas... somente a ultima q tá dando esse erro!
Independente se é [Ô]ABERTO[Ô] ou [Ô]FECHADO[Ô] ela sempre fica vermelha.
As outras linhas estão corretas... somente a ultima q tá dando esse erro!
Estranho viu, aqui comigo funciona normal, é q meu sistema faz quase isso q vc precisa,
é algum detalhe que ta fazendo esse erro.
é algum detalhe que ta fazendo esse erro.
If Ucase(MSS.TextMatrix(X, 4)) = [Ô]ABERTO[Ô] Then
fiz com o UCASE e ficou a mesma coisa...
Olha o codigo completo:
Olha o codigo completo:
Private Sub FormatarGridFiltros()
With Grid
.Clear
.Cols = 5
.Rows = 2
.ColWidth(0) = 0
.ColWidth(1) = 0
.ColWidth(2) = 1300
.ColWidth(3) = 1000
.ColWidth(4) = 3700
.TextMatrix(0, 1) = [Ô]COD_OS[Ô]
.TextMatrix(0, 2) = [Ô]SITUAÇÃO[Ô]
.TextMatrix(0, 3) = [Ô]STATUS[Ô]
.TextMatrix(0, 4) = [Ô]CLIENTE[Ô]
[ô]colocar os cabeçalho em negrito
Dim X As Integer
For X = 0 To .Cols - 1
.Col = X
.Row = 0
.CellFontBold = True
Next X
[ô]centralizar o titulo
Dim f As Integer
For f = 0 To .Cols - 1
.Row = 0
.Col = f
.CellAlignment = flexAlignCenterCenter
Next f
Do Until RS.EOF
[ô]mudar a cor da coluna
Dim i As Integer
For i = 1 To .Rows - 1
.Row = i
.Col = 2: .CellBackColor = &HC0FFFF
Next
Grid.Redraw = False
[ô]mudar a cor da fonte
Dim Acor As ColorConstants
For X = .FixedRows To .Rows - 1
If .TextMatrix(X, 3) = [Ô]ABERTO[Ô] Then
Acor = vbBlue
Else
Acor = vbRed
End If
.Col = 3 [ô]a coluna do aberto ou fechado
.Row = X
.CellForeColor = Acor
Next X
Grid.Redraw = True
If Not IsNull(RS!Cod_OS) Then .TextMatrix(.Rows - 1, 1) = RS!Cod_OS
If Not IsNull(RS!var_STATUS) Then .TextMatrix(.Rows - 1, 2) = RS!var_STATUS
If Not IsNull(RS!var_STATUS_OS) Then .TextMatrix(.Rows - 1, 3) = RS!var_STATUS_OS
If Not IsNull(RS!NOME) Then .TextMatrix(.Rows - 1, 4) = RS!NOME
RS.MoveNext
.Rows = .Rows + 1
Loop
.Rows = .Rows - 1
End With
End Sub
Tópico encerrado , respostas não são mais permitidas