lau1993 0 Posted March 16, 2011 Report Share Posted March 16, 2011 Boas, eu tenho uma datagridview com 3 colunas (qtd , nome_produto, Referencia), e tenho botões de produtos com variáveis definidas com o nome do produto, a qtd e a referencia , a medida que clico nos botões produtos adiciono itens a datagridview. eu quero que ao clicar nos botoes de produto, procura-se na datagridview se ja existia esse produto, e se já existir então mudava qtd para qtd + 1 e mantinha o nome do produto e a referencia. Exemplo: Botão sumol ; variáveis : qtd(int) , btn.designação(string) e btn.preço_produto(double) clicava uma vez e aparecia na datagridview : (1 , sumol lata , Sumol ) qtd , nome , referencia Clicava pela segunda vez e deveria aparecer: (2, sumol lata, referencia) Se me poderem ajudar agradecia.... Link to post Share on other sites
Andrepereira9 4 Posted March 16, 2011 Report Share Posted March 16, 2011 Boas Deixo-te aqui uma função que em principio, faz o que pretendes Private Function verifica() 'Inicia um ciclo em todas as linhas For Each row As DataGridViewRow In Me.DataGridView1.Rows ' Caso não seja um nova linha (a última) If Not row.IsNewRow Then ' Inicia um ciclo em todas as células/colunas da linha actual For Each cell As DataGridViewCell In row.Cells ' Verifica se a célula, activa, já contém o nome do produto a adicionar. 'Se tiver, altera a quantidade If cell.Value.ToString = N.Text.ToString Then Dim aux As Integer = row.Cells(0).Value Dim aux2 As Integer = Q.Text Dim Quantidade As Integer = aux + aux2 row.Cells(0).Value = Quantidade.ToString Return 1 Exit For End If Next End If Next End Function Depois no botão para adicionar o produto ' Se a função retornar 1, é porque já existe esse produto If verifica() = 1 Then Else 'Se retornar 0, é porque ainda não existe, e adiciona-o 'Q = quantidade, N = Nome, R = Referencia DataGridView1.Rows.Add(Q.Text.ToString, N.Text.ToString, R.Text.ToString) End If Podes também consultar este Site Foi de lá que eu tirei esse código, e adaptei (Thanks Jpaulino) A informática chegou para resolver problemas que antes não existiam Quem ri por último é porque está conectado a 52 Kbs. Link to post Share on other sites
bioshock 180 Posted March 16, 2011 Report Share Posted March 16, 2011 Essa tua última condição não me parece estar correcta. Deverá ser: If verifica() <> 1 Then DataGridView1.Rows.Add(Q.Text.ToString, N.Text.ToString, R.Text.ToString) End If Link to post Share on other sites
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now