Cita:
Iniciado por future89 me funciono exelenta gracias !
lo ultimo alguien sabe como eliminar un producto del listview y
en la columna cantidad del listview necesito que si al ingresar un libro me aparesca 1 y si ingreso el mismo libro otra vez me aumente en 2
una orientación por favor....
Bueno para eliminar un producto basta con solo tener seleccionada la fila del producto que deseas eliminar ...
Pero influyen otros factores como si vas a realizar la eliminacion del producto añadido entonces tendrias que volver a realizar la operacion para que en el textbox total te quite el monto de ese producto.
Puedes volver hacer esto:
Código vb:
Ver originalFor s = 0 To listview1.Items.Count - 1
Subtotal = CDbl(Subtotal) + CDbl(listview.Items(s).SubItems(2).Text)
Next
TxtTotal.Text = "$" & Format(Subtotal, "0.00")
Lo de aumento de la columna cantidad pudiera ser ...
Te lo voy a poner con el codigo que tu tienes y también yo diría que tendrías que poner otra columna por ejemplo que sea
código - nombre - precio - cantidad - importe << donde en importe se va ir haciendo la sumatoria dependiendo de la cantidad de productos por ejemplo al momento que traigas el primer producto entonces la cantidad de precio e importe serán igual si vuelves añadir el mismo producto entonces la columna cantidad cambiaría a 2 y la columna importe cambiaría al total de esos 2. Entonces te pondre el código mas o menos como yo lo haría ...
Código vb:
Ver originalDim j As Integer ' Esta va ir al principio de la clase
Private Sub TbProducto_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TbProducto.KeyPress
'Valido que se ingrese solo numeros
If Char.IsNumber(e.KeyChar) Then
e.Handled = False
'Valido que se presione Backspace,Enter
ElseIf Char.IsControl(e.KeyChar) Then
e.Handled = False
'Las demas teclas quedan bloqueadas
Else
e.Handled = True
End If
'Si mando un ENTER entonces que busque
If e.KeyChar = Convert.ToChar(Keys.Enter) Then
Try
For Me.j = 0 To Me.listview1.Items.Count - 1
If Me.listview1.Items(j).SubItems(0).Text = TbProducto.Text Then
Call MismaFila()
Exit Sub
End If
Next
Call listview()
Catch ex As Exception
MsgBox(ex.Message)
End Try
End If
End Sub
Private Sub MismaFila()
Dim cantidad As Integer
Dim importe, subtotal As Double
cantidad = CInt(Me.listview1.Items(j).SubItems(3).Text) + 1
Me.listview1.Items(j).SubItems(3).Text = cantidad
importe = CInt(cantidad) * CDbl(Me.listview1.Items(j).SubItems(2).Text)
Me.listview1.Items(j).SubItems(4).Text = Format(importe, "0.00")
For s = 0 To listview1.Items.Count - 1
subtotal = CDbl(subtotal) + CDbl(listview1.Items(s).SubItems(2).Text)
Next
txtTotal.Text = "$" & Format(subtotal, "0.00")
End Sub
Private Sub listview()
Dim s As Integer
Dim Subtotal As Double
Try
myConn = New SqlConnection("Initial Catalog=libroteka;Data Source=localhost;Integrated Security=SSPI;")
myCmd = myConn.CreateCommand
myCmd.CommandText = "SELECT * FROM libros WHERE cod_libro ='" & TbProducto.Text & "' "
adaptor.SelectCommand = myCmd
adaptor.Fill(dataset, "0")
Dim count = dataset.Tables(0).Rows.Count
If count > 0 Then
myConn.Open()
With Ltver.Items.Add(TbProducto.Text, "cod_libro")
.SubItems.Add(dataset.Tables(0).Rows(0).Item("nombre_libro"))
.SubItems.Add(dataset.Tables(0).Rows(0).Item("precio"))
.SubItems.Add(dataset.Tables(0).Rows(0).Item("precio"))
End With
End If
TbProducto.Clear()
dataset.Clear()
myConn.Close()
For s = 0 To listview1.Items.Count - 1
Subtotal = CDbl(Subtotal) + CDbl(listview1.Items(s).SubItems(2).Text)
Next
Me.txtTotal.Text = "$" & Format(Subtotal, "0.00")
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub
Es una idea muy muy vaga y no testeada entonces no te puedo asegurar si correría bien, pero la idea ahí esta solo es cuestión de que tu modifiques y hayes el resultado deseado.
Bueno creo que ya te ayude bien con tu tarea jejej saludos!
Edit:
Recuerda que el codigo anterior que te pase hacias la sumatoria de la columna precio para que lo imprimiera en el txtTotal.text entonces por logica ya no sumaras ese si no la de la columna importe...
Saludos