Jump to content
lau1993

substitui na datagrid

Recommended Posts

lau1993

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....

Share this post


Link to post
Share on other sites
Andrepereira9

Boas  :P

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.

Share this post


Link to post
Share on other sites
bioshock

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

Share this post


Link to post
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.