AJUDA MSFLEXGRID NO VISUAL BASIC 5.0
Senhores,
Trabalho com Visual Basic 5.0, nesta versão sempre trabalhei, com DbGrid, por necessidade estou tentando utilizar a MSFLEXGRID da seguinte forma:
Tenho uma tabela [Ô]despesa[Ô] com os seguintes campos: Controle, Vencimento, Descrição da Despesa, Valor da Despesa, Data de Pagamento, Valor Pago e Situação, quando campo Situação for [Ô]NP[Ô] (Não Pago) o computador devera selecionar a linha e mudar de cor toda a linha. Estou utilizando o codigo abaixo, porém o mesmo só muda de cor o Campo [Ô]situação[Ô]. Por Favor solicito ajuda e informar-me onde estou errando, desde já agradeço.
Ats,
Clebio Coitinho
MSFlexGrid1.TextMatrix(0, 0) = [Ô][Ô]
MSFlexGrid1.TextMatrix(0, 1) = [Ô]Controle[Ô]
MSFlexGrid1.TextMatrix(0, 2) = [Ô]Vencimento[Ô]
MSFlexGrid1.TextMatrix(0, 3) = [Ô]Despesa[Ô]
MSFlexGrid1.TextMatrix(0, 4) = [Ô]Valor[Ô]
MSFlexGrid1.TextMatrix(0, 5) = [Ô]Pagamento[Ô]
MSFlexGrid1.TextMatrix(0, 6) = [Ô]Valor[Ô]
MSFlexGrid1.TextMatrix(0, 7) = [Ô]Sit.[Ô]
For L = 1 To MSFlexGrid1.Rows - 1
For C = 1 To MSFlexGrid1.Cols - 1
MSFlexGrid1.Col = C: MSFlexGrid1.ColSel = MSFlexGrid1.Col: MSFlexGrid1.Row = L
Select Case C
Case Is = 7
If MSFlexGrid1.TextMatrix(L, C) = [Ô]NP[Ô] Then
MSFlexGrid1.RowSel = MSFlexGrid1.Row - 1
MSFlexGrid1.CellBackColor = vbYellow
Else
MSFlexGrid1.RowSel = MSFlexGrid1.Row - 1
MSFlexGrid1.CellBackColor = vbBlue
End If
End Select
Next
Next
MSFlexGrid1.FillStyle = flexFillRepeat
Trabalho com Visual Basic 5.0, nesta versão sempre trabalhei, com DbGrid, por necessidade estou tentando utilizar a MSFLEXGRID da seguinte forma:
Tenho uma tabela [Ô]despesa[Ô] com os seguintes campos: Controle, Vencimento, Descrição da Despesa, Valor da Despesa, Data de Pagamento, Valor Pago e Situação, quando campo Situação for [Ô]NP[Ô] (Não Pago) o computador devera selecionar a linha e mudar de cor toda a linha. Estou utilizando o codigo abaixo, porém o mesmo só muda de cor o Campo [Ô]situação[Ô]. Por Favor solicito ajuda e informar-me onde estou errando, desde já agradeço.
Ats,
Clebio Coitinho
MSFlexGrid1.TextMatrix(0, 0) = [Ô][Ô]
MSFlexGrid1.TextMatrix(0, 1) = [Ô]Controle[Ô]
MSFlexGrid1.TextMatrix(0, 2) = [Ô]Vencimento[Ô]
MSFlexGrid1.TextMatrix(0, 3) = [Ô]Despesa[Ô]
MSFlexGrid1.TextMatrix(0, 4) = [Ô]Valor[Ô]
MSFlexGrid1.TextMatrix(0, 5) = [Ô]Pagamento[Ô]
MSFlexGrid1.TextMatrix(0, 6) = [Ô]Valor[Ô]
MSFlexGrid1.TextMatrix(0, 7) = [Ô]Sit.[Ô]
For L = 1 To MSFlexGrid1.Rows - 1
For C = 1 To MSFlexGrid1.Cols - 1
MSFlexGrid1.Col = C: MSFlexGrid1.ColSel = MSFlexGrid1.Col: MSFlexGrid1.Row = L
Select Case C
Case Is = 7
If MSFlexGrid1.TextMatrix(L, C) = [Ô]NP[Ô] Then
MSFlexGrid1.RowSel = MSFlexGrid1.Row - 1
MSFlexGrid1.CellBackColor = vbYellow
Else
MSFlexGrid1.RowSel = MSFlexGrid1.Row - 1
MSFlexGrid1.CellBackColor = vbBlue
End If
End Select
Next
Next
MSFlexGrid1.FillStyle = flexFillRepeat
O CellBackcolor só funciona pra coluna selecionada. Como ficou selecioanda na última, ele pinta só ela.
For L = 1 To MSFlexGrid1.Rows - 1
For C = 1 To MSFlexGrid1.Cols - 1
MSFlexGrid1.Col = C: MSFlexGrid1.ColSel = MSFlexGrid1.Col: MSFlexGrid1.Row = L
Select Case C
Case Is = 7
If MSFlexGrid1.TextMatrix(L, C) = [Ô]NP[Ô] Then
MSFlexGrid1.RowSel = MSFlexGrid1.Row - 1
MSFlexGrid1.col = C [ô]<<==================
MSFlexGrid1.CellBackColor = vbYellow
Else
MSFlexGrid1.RowSel = MSFlexGrid1.Row - 1
MSFlexGrid1.col = C [ô]<<================
MSFlexGrid1.CellBackColor = vbBlue
End If
End Select
Next
Next
MSFlexGrid1.FillStyle = flexFillRepeat
For L = 1 To MSFlexGrid1.Rows - 1
For C = 1 To MSFlexGrid1.Cols - 1
MSFlexGrid1.Col = C: MSFlexGrid1.ColSel = MSFlexGrid1.Col: MSFlexGrid1.Row = L
Select Case C
Case Is = 7
If MSFlexGrid1.TextMatrix(L, C) = [Ô]NP[Ô] Then
MSFlexGrid1.RowSel = MSFlexGrid1.Row - 1
MSFlexGrid1.col = C [ô]<<==================
MSFlexGrid1.CellBackColor = vbYellow
Else
MSFlexGrid1.RowSel = MSFlexGrid1.Row - 1
MSFlexGrid1.col = C [ô]<<================
MSFlexGrid1.CellBackColor = vbBlue
End If
End Select
Next
Next
MSFlexGrid1.FillStyle = flexFillRepeat
Editado:
Dim linha As Integer
Dim coluna As Integer
For linha = 1 To MSFlexGrid001.Rows - 1
MSFlexGrid001.Row = linha
If MSFlexGrid1.TextMatrix(Linha, 7) = [Ô]NP[Ô] Then
For coluna = 0 To MSFlexGrid001.Cols - 1
MSFlexGrid1.Col = coluna
MSFlexGrid1.CellBackColor = &HC0FFFF [ô]<<--------- Amarelo Claro - pode ser qualquer outra cor
Next coluna
End If
Next linha
Acho que é isso
. . .
Dim linha As Integer
Dim coluna As Integer
For linha = 1 To MSFlexGrid001.Rows - 1
MSFlexGrid001.Row = linha
If MSFlexGrid1.TextMatrix(Linha, 7) = [Ô]NP[Ô] Then
For coluna = 0 To MSFlexGrid001.Cols - 1
MSFlexGrid1.Col = coluna
MSFlexGrid1.CellBackColor = &HC0FFFF [ô]<<--------- Amarelo Claro - pode ser qualquer outra cor
Next coluna
End If
Next linha
Acho que é isso
. . .
Tópico encerrado , respostas não são mais permitidas