Curso de Software de Ventas Parte 30, Ventana de Ventas 5 – Subtotal

En esta vídeo, se trabajará que al escribir el nombre del producto y aparezca la lista de productos me pueda desplazar en ella al presionar la Tecla Flecha Abajo   y Al desplazarme con las teclas Fecha Arriba y Flecha Abajo busque los datos del producto seleccionado y lo segundo es calcular el valor total de ese producto seleccionado.

 

Colabora y Suscribete a mi canal de   

 

Se agrego unas lineas adicional al evento KeyUp del control txtNombrePro

Private Sub txtNombrePro_KeyUp(KeyCode As Integer, Shift As Integer)
    If Len(txtNombrePro.Text) > 2 Then
       Call BuscarProductoNombre
    Else
       lstListaRapida.Visible = False
    End If
    If KeyCode = 40 Then         'Línea nueva
       lstListaRapida.SetFocus   'Línea nueva
    End If                       'Línea nueva
End Sub

Se actualizo el procedimiento — donde agregamos el IdProducto a la propieda ItemData del control List que nos permite guardarlo con un indice para luego poderlo obtener, creamos un contador en la variable Index que nos ayuda a guardar ese datos en el control.

Sub BuscarProductoNombre()
    Dim Sql As String
    Dim Index As Long  'linea nueva
    
    Sql = "Select * From tblProductos Where NombrePro Like '" & txtNombrePro.Text & "%'"
    Set RecordSet_Producto = ConexionADO.Execute(Sql)
    
    If RecordSet_Producto.RecordCount > 0 Then
       lstListaRapida.Clear
       Index = 0   'linea nueva
       Do While Not RecordSet_Producto.EOF
                lstListaRapida.AddItem RecordSet_Producto("NombrePro")
                lstListaRapida.ItemData(Index) = RecordSet_Producto("IdProducto")  'linea nueva
                Index = Index + 1   'linea nueva
                RecordSet_Producto.MoveNext
       Loop
       lstListaRapida.Visible = True
       lstListaRapida.ListIndex = 0  'linea nueva
    Else
       lstListaRapida.Visible = False
    End If
        
End Sub

En el evento KeyUp de control List agregamos las siguientes lineas que nos permiten primero obtener los datos del producto seleccionado en la lista, segundo ocultar la lista y devolver el foco al control txtNombrePro para poder buscar otro producto y tercero presionar la tecla Enter y así poder digitar la cantidad del producto a comprar:

Private Sub lstListaRapida_KeyUp(KeyCode As Integer, Shift As Integer)
    Dim IdPro As Long
    
    If KeyCode = 40 Or KeyCode = 39 Then  'Tecla Direccionar Arriba y Abajo
       IdPro = lstListaRapida.ItemData(lstListaRapida.ListIndex)
       Call DatosProducto(IdPro)
    End If
    If KeyCode = 27 Then 'Tecla ESC
       lstListaRapida.Visible = False
    End If
    If KeyCode = 13 Then 'Tecla Enter
       txtCant_Pro.SetFocus
       lstListaRapida.Visible = False
    End If
End Sub

Después de tener la lista ya programada podemos cargar la ubicación de esta en el evento Load del Formulario para no tener control List encima de otro controles. Para esto tomamo su propiedad Top y Left y se las asignamos de la siguiente manera:

Private Sub Form_Load()
    Call Inicial
    lstListaRapida.Top = 2605  'Linea Nueva 
    lstListaRapida.Left = 1920 'Linea Nueva 
End Sub

Luego de esto podemos mover la lista a cualquier otro lugar para poder trabajar mejor.

Necesitamos calcular el Valor Total del producto que estamos buscando ejemplo si quisiéramos comprar 2 productos hay que multiplicar la cantidad comprada por el precio de venta del producto y si queremos hacer el descuento ya sea por valor o por porcentaje se calcularía de la siguiente manera :

'Si Tipo = 1 %
'Si tipo = 2 Valor

Sub CalcularVTotal(Tipo As Integer)
    Dim CantP As Long
    Dim ValorP, ValorTotal, TotalDesc As Currency
    Dim PorcDes As Double
    
    CantP = txtCant_Pro.Text
    ValorP = txtPrecioV_Pro.Text
    
    ValorTotal = CantP * ValorP
       
    'calcular el Descuento
    If Tipo = 1 Then '%
       PorcDes = (txtPorcDescuentoPro / 100)
       TotalDesc = PorcDes * ValorTotal
       txtDesuentoVPro.Text = TotalDesc
       
    ElseIf Tipo = 2 Then 'Valor
       TotalDesc = CCur(txtDesuentoVPro)
       PorcDes = (TotalDesc / ValorTotal)
       PorcDes = Round(PorcDes, 1)
       txtPorcDescuentoPro.Text = PorcDes
    Else
       TotalDesc = CCur(txtDesuentoVPro.Text)
    End If
    
    
    ValorTotal = ValorTotal - TotalDesc
    
    txtValorTotalPro.Text = Format(ValorTotal, "currency")
    
End Sub

Despues que tenemos el procedimiento de calculo de Valor Total Producto llamamos esta funciones desde los controles Cantidad, Descuento Porcentaje y Descuento por Valor en sus eventos KeyUp:

Private Sub txtCant_Pro_KeyUp(KeyCode As Integer, Shift As Integer)
    If txtCant_Pro.Text <> "" Then
       Call CalcularVTotal(0)
    End If
End Sub

Private Sub txtPorcDescuentoPro_KeyUp(KeyCode As Integer, Shift As Integer)
    If txtPorcDescuentoPro.Text <> "" Then
       Call CalcularVTotal(1)
    End If
End Sub

Private Sub txtDesuentoVPro_KeyUp(KeyCode As Integer, Shift As Integer)
    If txtDesuentoVPro.Text <> "" Then
       Call CalcularVTotal(2)
    End If
End Sub

El vídeo donde explico paso a paso:

 

Si tienes problemas deja tus comentario.

 

 

Apóyanos siguiendo las redes sociales:

Suscribete a Youtube

Siguenos en Twitter

Siguenos en Facebook

Total Page Visits: 4316 - Today Page Visits: 1

Deja una respuesta