MUDAR COR DAS LINHAS DO GRIDVIEW COM CONDICOES

TIDY 05/01/2012 11:46:05
#392444
ola pessoal eu prcurei topicos que me ajudace nesta questão e todos que encontrei nao consegui resolver meu problema!

eu estou cirando um sub onde boto uma condição sobre o gridview para que mude de cor as linhas do grid! a condição é a seguinte:

Se o campo Saldo for menor ou igual ao campo minimo então mudar de cor as linhas que estiverem com saldo menor que o minimo!
porem ao invez de mudar apenas as linhas que estao com o saldo menor que o minimo , esta mudando tudo
aqui esta o codigo:
Private Sub MudaCoresGrid()
For Each row As DataGridViewRow In Me.DataGridView1.Rows


For Each cell As DataGridViewCell In row.Cells


If Saldo.Index <= Minimo.Index Then
With Me.DataGridView1.Rows(row.Index).DefaultCellStyle
.BackColor = Color.SpringGreen
.Font = New Font([Ô]Verdana[Ô], 12)
End With
Exit For
End If
Next

Next

End Sub
JONATHANSTECKER 05/01/2012 11:55:12
#392446
Você tem que dar o valor do saldo nessa condição...
   Private Sub MudaCoresGrid()

Dim Saldo As Integer = 0
Dim SaldoMinimo As Integer = 0

For Each Linha As DataGridViewRow In Me.DataGridView1.Rows

Saldo = Linha.Cells(0).Value
SaldoMinimo = 5

If Saldo <= SaldoMinimo Then

With Me.DataGridView1.Rows(Linha.Index).DefaultCellStyle
.BackColor = Color.SpringGreen
.Font = New Font([Ô]Verdana[Ô], 12)
End With

End If

Next

End Sub

O Saldo eu coloquei como sendo a primeira coluna de cada linha e o SaldoMinimo coloquei um valor fixo de 5.
Basta você alterar conforme necessidade.
TIDY 05/01/2012 11:59:24
#392447
Citação:

:
Você tem que dar o valor do saldo nessa condição...

   Private Sub MudaCoresGrid()

Dim Saldo As Integer = 0
Dim SaldoMinimo As Integer = 0

For Each Linha As DataGridViewRow In Me.DataGridView1.Rows

Saldo = Linha.Cells(0).Value
SaldoMinimo = 5

If Saldo <= SaldoMinimo Then

With Me.DataGridView1.Rows(Linha.Index).DefaultCellStyle
.BackColor = Color.SpringGreen
.Font = New Font([Ô]Verdana[Ô], 12)
End With

End If

Next

End Sub

O Saldo eu coloquei como sendo a primeira coluna de cada linha e o SaldoMinimo coloquei um valor fixo de 5.
Basta você alterar conforme necessidade.



Bom Dia, amigo

eu entendi o que voce quiz dizer, mas eu tenho na Grid um campo com nome saldo e outro campo com nome Minimo, onde é o prorpio Cliente que Define o Estoque minimo e nao eu!

JONATHANSTECKER 05/01/2012 12:06:04
#392448
Certo, e você quer passar por todas as linhas e colunas verificando se algum valor é inferior?
Ou apenas verificar se o Saldo definido pelo cliente é menor que algum saldo em uma coluna especifica?
Private Sub MudaCoresGrid()

Dim Saldo As Integer = 10
Dim SaldoMinimo As Integer = 15

For Each Linha As DataGridViewRow In Me.DataGridView1.Rows

If Saldo <= Linha.Cells(0).Value Then

With Me.DataGridView1.Rows(Linha.Index).DefaultCellStyle
.BackColor = Color.SpringGreen
.Font = New Font([Ô]Verdana[Ô], 12)
End With

End If

Next

End Sub
EDISIMOES 05/01/2012 12:39:52
#392451
Tidy, vc tem que atribuir um valor para variável Saldominimo, através do banco de dados , textbox, ou alguma outra opção , depende do seu projeto.
Edi
TIDY 05/01/2012 13:08:08
#392453
Citação:

:
Tidy, vc tem que atribuir um valor para variável Saldominimo, através do banco de dados , textbox, ou alguma outra opção , depende do seu projeto.
Edi



Edisimoes vou explicar:

primeiramente tenho um formulario onde eu cadastro o produto com o codigo o nome o saldo e o minimo

tudo em um textbox e clico em salvar em um banco de dados

depois em outro formulario eu consulto todos os produtos que foram cadastrados a partir de um DataGrid,

eu queria fazer que quando o produto X estiver com o valor do campo preenchido com um valor menor que o campo do minimo ele me marcasse a linha com uma cor diferente do resto que nao esta com estoque menor que o minimo
TIDY 05/01/2012 13:19:28
#392454
Citação:

:
Certo, e você quer passar por todas as linhas e colunas verificando se algum valor é inferior?
Ou apenas verificar se o Saldo definido pelo cliente é menor que algum saldo em uma coluna especifica?

Private Sub MudaCoresGrid()

Dim Saldo As Integer = 10
Dim SaldoMinimo As Integer = 15

For Each Linha As DataGridViewRow In Me.DataGridView1.Rows

If Saldo <= Linha.Cells(0).Value Then

With Me.DataGridView1.Rows(Linha.Index).DefaultCellStyle
.BackColor = Color.SpringGreen
.Font = New Font([Ô]Verdana[Ô], 12)
End With

End If

Next

End Sub



isso, passar por todas as linhas verificando o saldo do minimo

vou lhe explicar melhor

primeiramente tenho um formulario onde eu cadastro o produto com o codigo o nome o saldo e o minimo

tudo em um textbox e clico em salvar em um banco de dados

depois em outro formulario eu consulto todos os produtos que foram cadastrados a partir de um DataGrid,

eu queria fazer que quando o produto X estiver com o valor do campo preenchido com um valor menor que o campo do minimo ele me marcasse a linha com uma cor diferente do resto que nao esta com estoque menor que o minimo

JONATHANSTECKER 05/01/2012 13:48:56
#392458
Então é isso ai:
Private Sub MudaCoresGrid()

Dim Saldo As Integer = 0
Dim SaldoMinimo As Integer = 15 [ô]Aqui você pega do TextBox

For Each Linha As DataGridViewRow In Me.DataGridView1.Rows

Saldo = Linha.Cells(0).Value [ô]Aqui definimos que o valor do Saldo é o número que estiver na coluna 0

If Saldo <= SaldoMinimo Then

With Me.DataGridView1.Rows(Linha.Index).DefaultCellStyle
.BackColor = Color.SpringGreen
.Font = New Font([Ô]Verdana[Ô], 12)
End With

End If

Next

End Sub
TIDY 05/01/2012 14:21:37
#392460
Citação:

:
Então é isso ai:

Private Sub MudaCoresGrid()

Dim Saldo As Integer = 0
Dim SaldoMinimo As Integer = 15 [ô]Aqui você pega do TextBox

For Each Linha As DataGridViewRow In Me.DataGridView1.Rows

Saldo = Linha.Cells(0).Value [ô]Aqui definimos que o valor do Saldo é o número que estiver na coluna 0

If Saldo <= SaldoMinimo Then

With Me.DataGridView1.Rows(Linha.Index).DefaultCellStyle
.BackColor = Color.SpringGreen
.Font = New Font([Ô]Verdana[Ô], 12)
End With

End If

Next

End Sub




Deu o seguinte erro:

A conversão da cadeia de caracteres [ô] [ô] no tipo [ô]Integer[ô] não é válida.
JONATHANSTECKER 05/01/2012 14:25:45
#392461
Você adequou o index da coluna onde refere-se ao valor?
Saldo = Linha.Cells(IndexDaColunaSaldo).Value
TIDY 05/01/2012 14:27:29
#392463
Citação:

:
Você adequou o index da coluna onde refere-se ao valor?

Saldo = Linha.Cells(IndexDaColunaSaldo).Value



agora sim, entendi! fiz isso agora, e deu certo, mas, ele altera a cor de tudo, enclusive dos produtos que também estao acima do minimno
Página 1 de 2 [12 registro(s)]
Tópico encerrado , respostas não são mais permitidas