LACO EM DATAGRID

ADHEL 16/02/2011 15:48:11
#365654
Pessoal preciso fazer um laço em um datagrid
Digito um valor na caixa de texto e ele fará uma subtração em CADA linha do grid
Datagrid com duas colunas.A primeira chamada pedido e a segunda chamada valor

Não coloquei a imagem para melhor entendimento aqui, pq não sei como faz.

Pedido Valor
1 100
2 120
3 140

digito na caixa de texto um valor de 300 e apos clicar no botão ele faria a subtracao e ficaria assim

Pedido Valor
1 0
2 0
3 60

Desculpe o jeito que postei (meio confuso).
Aceito qualquer sugestão.
Obrigado desde já a todos



JONATHANSTECKER 16/02/2011 18:15:27
#365685
Resposta escolhida

Em anexo segue o código que faz esse cálculo,
é claro que tem que colocar alguns limites e algumas exceções para não ficar preso no loop.
Mas é só um exemplo!
Acredito que com isso você já consiga tirar suas dúvidas!

Public Class frmSubtrair

[ô] Adiciono alguns valores ao DataGridView
Private Sub frmSubtrair_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Me.dgvSubtrair.Rows.Add(Me.dgvSubtrair.RowCount.ToString, [Ô]100[Ô])
Me.dgvSubtrair.Rows.Add(Me.dgvSubtrair.RowCount.ToString, [Ô]120[Ô])
Me.dgvSubtrair.Rows.Add(Me.dgvSubtrair.RowCount.ToString, [Ô]140[Ô])
End Sub

Private Sub btnSubtrair_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSubtrair.Click
Subtrair()
End Sub

[ô] Método para subtrair
Protected Sub Subtrair()
Dim Valor As Integer = CInt(Me.txtSubtrair.Text)
Dim Contador As Integer = 0

While Valor > 0
Dim ValorDGV As Integer = CInt(Me.dgvSubtrair.Rows(Contador).Cells(1).Value)
If Valor >= ValorDGV Then
Valor -= ValorDGV
Me.dgvSubtrair.Rows(Contador).Cells(1).Value -= ValorDGV
Else
Me.dgvSubtrair.Rows(Contador).Cells(1).Value -= Valor
Valor = 0
End If
Contador += 1
End While
End Sub

End Class
ADHEL 17/02/2011 08:52:15
#365714
Jonathan
Vou testar e depois posto algo.
Mais uma vez OBRIGADO(esse OBRIGADO é muito pouco em relação ao que você tem me ajudado)
VALEU
ADHEL 17/02/2011 14:26:38
#365772
JONATHAN
Consegui adaptar a sua lógica a minha necessidade.
Obrigado

Tópico encerrado , respostas não são mais permitidas