NAO PERMITIR A DUPLICACAO DE LINHAS

BIDJOLAS 20/03/2013 09:12:32
#420778
Boa tarde a todos,
Tenho uma dificuldade pois tenho dois forms cada um com seu datagridview e consigo passar os items de um datagrid para outro, so que o grande problema me repete os items cada vez que adiciono, querendo que seja somente um item, ai vai o codigo:

Dim Linha As DataGridViewRow = Me.DataGridItens.CurrentRow

Try
frmFatura.DR = frmFatura.DT.NewRow
frmFatura.DR(frmFatura.DcIDItem) = Linha.Cells(0).Value
frmFatura.DR(frmFatura.DcNome_Item) = Linha.Cells(1).Value
frmFatura.DR(frmFatura.DcIDFornecedor) = Linha.Cells(2).Value
frmFatura.DR(frmFatura.DcNome_Fornecedor) = Linha.Cells(3).Value
frmFatura.DT.Rows.Add(frmFatura.DR)
frmFatura.DataGridFactura.DataSource = frmFactura.DT
Me.Close()
Catch ex As Exception
End Try

Dim Valor As Decimal
For Each coluna As DataGridViewRow In frmFatura.DataGridFatura.Rows
Valor = Valor + coluna.Cells(3).Value
Next

Desde ja agradeco qualquer ajuda
LITTLEBOY 20/03/2013 09:35:58
#420780
você pode fazer um laço foreach do datagrid de destino e verificar se id do item já existe lá

Citação:


For Each coluna As DataGridViewRow In frmFatura.DataGridFatura.Rows
if coluna.Cells(0).Value=Linha.Cells(0).Value then
exit sub
end if
Next



obs: só estou te informando a ideia a seguir. O código ai pode não funcionar visto que estou mais familiarizado com a sintaxe C#
BIDJOLAS 24/03/2013 05:28:06
#420965
Littleboy, pegando na sua dica ficou assim, crieu um botao que addiciona ao seleccionar o item no primeiro Datagridview (DataGridItens), ai vai o codigo para quem possa interessar, obrigado a todos:

Private Sub btnAdicionarItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAdicionarItem.Click
Dim Linha As DataGridViewRow = Me.DataGridItens.CurrentRow
Dim Duplicacao As Boolean = True

For i As Integer = 0 To frmFatura.DataGridFatura.Rows.Count - 1
For Each row As DataGridViewRow In frmFatura.DataGridFatura.Rows
If frmFatura.DataGridFatura.Rows(i).Cells(0).Value = Linha.Cells(0).Value Then
Duplicacao = False
Exit For
End If
Next
Next

If Duplicacao Then
frmFatura.DR = frmFatura.DT.NewRow
frmFatura.DR(frmFatura.DcIDItem) = Linha.Cells(0).Value
frmFatura.DR(frmFatura.DcNome_Item) = Linha.Cells(1).Value
frmFatura.DR(frmFatura.DcIDFornecedor) = Linha.Cells(2).Value
frmFatura.DR(frmFatura.DcNome_Fornecedor) = Linha.Cells(3).Value
frmFatura.DT.Rows.Add(frmFatura.DR)
frmFatura.DataGridFatura.DataSource = frmFatura.DT
Me.Close()
Else
MsgBox([Ô]O Item já foi adicionado à fatura[Ô], MsgBoxStyle.Information)
Me.Close()
End If

Dim Valor As Decimal
For Each coluna As DataGridViewRow In frmFatura.DataGridFatura.Rows
Valor = Valor + coluna.Cells(3).Value
Next

frmFatura.LabelTotal.Text = Format(Valor, [Ô]MZM #,##0.00[Ô])
frmFatura.LabelIVA.Text = Format(Valor * 0.17, [Ô]MZM #,##0.00[Ô])
End Sub
Tópico encerrado , respostas não são mais permitidas