A continuacion utilizaremos.
RemoveList : Elimina un objeto de la List(Of T).
En nuestro caso eliminaremos registros basándose en la columna código siempre y cuando cumpla la condición.
Código fuente
Paso 1: Creamos una clase llamada oProducto
Public Class oProducto
Public Property Codigo As Integer
Public Property producto As String
Public Property precio As Double
Public Property cantidad As Integer
Public Property estado As String
End Class
Paso 2: Declaramos una variable tipo Lista
Dim loProducto As New List(Of oProducto)
Paso 3: Declaramos una variable, Asiendo referencia a la clase oProducto
Private Sub btnAgregar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAgregar.Click
Try
'Declaramos una variable, Asiendo referencia a la clase oProducto
Dim oProducto As New oProducto
With oProducto
.Codigo = txtCodigo.Text
.producto = txtProducto.Text
.cantidad = CInt(txtCantidad.Text)
.precio = CDbl(txtPrecio.Text)
'Verificamos si esta seleccionado sera Activo de lo contrario Inactivo
.estado = If(chkEstado.Checked = True, "Activo", "Inactivo")
End With
'Agregamos los elementos
loProducto.Add(oProducto)
'llamamos al procediento
Listar_productos()
'invocamos al evento Click del boton Nuevo
btnNuevo_Click(sender, e)
Catch ex As Exception
MessageBox.Show("Error al registrar producto.", "vb.net", MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try
End Sub
Paso 4: Capturamos el código del producto a eliminar
Private Sub btnEliminar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnEliminar.Click
Try
Dim resultado As DialogResult = MessageBox.Show("Desea eliminar producto", _
"vb.net", _
MessageBoxButtons.YesNo, _
MessageBoxIcon.Question)
If (resultado = MsgBoxResult.Yes) Then
'Capturamos el código del producto a eliminar
Dim _Codigo As Integer = CInt(txtCodigo.Text)
Dim removeList As List(Of oProducto) = loProducto
removeList.RemoveAll(Function(p As oProducto) p.Codigo = _Codigo)
btnNuevo_Click(sender, e)
'Listamos los producto
Listar_productos()
MessageBox.Show("Registro eliminado", "vb.net", _
MessageBoxButtons.OK, MessageBoxIcon.Information)
End If
Catch ex As Exception
MessageBox.Show(ex.Message, "vb.net", _
MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try
End Sub
Paso 5: Función Listar_productos
Sub Listar_productos()
Try
If (loProducto IsNot Nothing) Then
dtgProductos.Rows.Clear()
For rows As Integer = 0 To loProducto.Count - 1
dtgProductos.Rows.Add()
'asignamos los valores
dtgProductos("txt_dtgCodigo", rows).Value = loProducto(rows).Codigo
dtgProductos("txt_dtgProducto", rows).Value = loProducto(rows).producto
dtgProductos("txt_dtgCantidad", rows).Value = loProducto(rows).cantidad
dtgProductos("txt_dtgPrecio", rows).Value = loProducto(rows).precio
dtgProductos("txt_dtgEstado", rows).Value = loProducto(rows).estado
Next
End If
Catch ex As Exception
MessageBox.Show("Error mientras se listaba los productos...", "vb.net", MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try
End Sub
Paso 6: Programar botón btnNuevo
Private Sub btnNuevo_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnNuevo.Click
txtCodigo.Clear()
txtProducto.Clear()
txtCantidad.Clear()
txtPrecio.Clear()
chkEstado.Checked = True
txtCodigo.Focus()
End Sub
Paso 7: Programar Datagridview
Private Sub dtgProductos_CellClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles dtgProductos.CellClick
Try
If (e.RowIndex > -1) Then
txtCodigo.Text = CInt(dtgProductos("txt_dtgCodigo", e.RowIndex).Value)
txtProducto.Text = dtgProductos("txt_dtgProducto", e.RowIndex).Value
txtCantidad.Text = dtgProductos("txt_dtgCantidad", e.RowIndex).Value
txtPrecio.Text = dtgProductos("txt_dtgPrecio", e.RowIndex).Value
chkEstado.Checked = If(dtgProductos("txt_dtgEstado", e.RowIndex).Value = "Activo", True, False)
End If
Catch ex As Exception
MessageBox.Show("Error", "vb.net", MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try
End Sub
Resultado
Mostramos el reporte luego de haber eliminado el registro de la lista genérica.
No hay comentarios:
Publicar un comentario