Autor
|
Tema: Ayuda con formulario de cobro. (Leído 1,936 veces)
|
Jane Rose
Desconectado
Mensajes: 2
|
Hola estoy haciendo un formulario de Cobros, y necesito ayuda con la programación de dicho formulario. El programa pide lo siguiente:
Se seleccionara un producto del ComboBox y se tecleara una cantidad. Al presionar el boton Agregar se agregara en la ListBox el nombre producto deseado. Una vez seleccionados todos los productos a comprar se tecleara el boton de Total el cual imprimira el total a pagar por todos los productos seleccionados, incluyendo el impuesto(en caso que el usuario marque la opcion). Todos los controles deberan desplegar una ToolTip con el nombre del control(si se coloca el cursor encima de la CombobOX, el ToolTip deberá desplegar el mensaje ComboBox).
Los productos(y sus precios unitarios) que deben ir en la ComboBox son:
a-Pasta Dental 20.5 b-Jabón 10.5 c-Tomates 3.0 d-Cebolla 5.0
****** Estoy trabajando con Visual Basic 2008, ya tengo los Items y todo cuando le doy clic en el boton agregar me lo pasa al otro listado, pero lo que no se es como hago para decirle al programa que si me elige elige la pasta dental me multiple la cantidad por 20.5, y si es jabon cantidad por 10.5 y asi sucesivamente y crear una variable que me valla conteniendo esas multiplaciones para cuando le de clic en total me imprima la lista de productos con los totales, y el total de compra, y si elige impuesto me lo agregue ahi, y si pues no(obviamente). Me gustaria que me ayudaran con esto :/ ignoren la TextBox que creé arriba del boton "Total" porque no debe ir el programa no me lo pide simplemente me salta de un solo a imprimir.[/b]
|
|
|
En línea
|
|
|
|
XresH
|
Está mal posteado, espero que no me digan nada por contestar porque va en .NET (lo dudo)
Por lo que entiendo, te digo: Te recomiendo crear una función que requiera como único parámetro el nombre del producto, antes de "llamar" a la funcion declares una variable que te permita almacenar los valores;Public Class Form1 Dim Valores(0 To 3) As Integer Dim TotalValores As Long Dim ValorTemp As Integer 'tiene los valores que iras sumando Dim Cantidad As Integer 'manipula cantidad de productos Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click DetectaValor(Trim(TextBox1.Text)) 'ya se obtuvo el valor en el procedimiento 'DetectaValor por lo que no es necesario especificarlo End Sub Private Sub DetectaValor(ByVal Producto As String) Dim Multi As Integer 'Multiplicador Dim ValorT As Integer 'para realizar la cuenta y obtener resultado Select Case Producto Case Is = "Jabon" Multi = Valores(0) ValorT = Cantidad * Multi ValorTemp = ValorTemp + ValorT Case Is = "Pasta" Multi = Valores(1) ValorT = Cantidad * Multi ValorTemp = ValorTemp + ValorT Case Is = "Otros" Multi = Valores(2) ValorT = Cantidad * Multi ValorTemp = ValorTemp + ValorT Case Is = "Perfume" Multi = Valores(3) ValorT = Cantidad * Multi ValorTemp = ValorTemp + ValorT End Select End Sub
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Valores(0) = 3 'pasta Valores(1) = 5 'jabon Valores(2) = 10 'etc Valores(3) = 7 'etc End Sub End Class A ver si entendí lo que necesitas y estamos bien encaminados.
Saludos.
|
|
|
En línea
|
|
|
|
Jane Rose
Desconectado
Mensajes: 2
|
Muchas gracias por responderme 1-Si trabajo en .NET pero a veces me entienden cuando digo 2008(?) 2-Adapte tu programación al formulario y pues no me tira error pero tampoco me da respuesta. 3-Mi duda principal es como le digo al programa que si en el usuario elige el primer Item ("Pasta Dental 20.5") de la ComboBox(CmbProducto) me multiple la cantidad de productos que lleva (TxtCan) por 20.5, y si es el segundo Item("Jabon 10.5") sea cantidad por 10.5, en tu programacion se que haces eso pero esta perfecto y todo es más trabajas con Case(algo que no había intentado solo 'If,Else, End If') pero...no estoy segura si el programa sabe a que Item me estoy refiriendo: Select Case [b]Producto[/b] Case Is = [b]"Jabon"[/b] Multi = Valores(0) ValorT = Cantidad * Multi ValorTemp = ValorTemp + ValorT me imagino que en vez de "Producto" debo poner el nombre del control (CmbProducto) Y que todo este código este en el botón Total. Pero resulta que cuando lo cambio(Producto) por CmbProducto, me sale el resto del código como error, no todo solo los textos que esta entre comillas("Jabón").
|
|
« Última modificación: 24 Mayo 2013, 01:26 am por Jane Rose »
|
En línea
|
|
|
|
XresH
|
1- Sé que trabajas en .NET, digo que está mal posteado, ya que esto es Visual Basic 6. 2- es un modo de ejemplo, no es una decisión final, por eso no funciona 3- Ahora vamos entendiendonos mejor, imagine que select case es mejor porque hay veces que muchos If marea, aunque se puede "comprimir" usando un ElseIf creí que sería mas productivo de esta forma.Agrega esto a tu Form_Load; ComboBox1.Items.Add("Pasta Dental") ComboBox1.Items.Add("JAbon") ComboBox1.Items.Add("Otro") ComboBox1.Items.Add("otro mas xD") Sencillamente es para agregar datos al combo por si quieres probarlo en un nuevo proyecto, sino ignoralo.
Hice algunos arreglos observa; Dim TotalValores As Long 'variable para controlar el Valor TOTAL Dim ValorTemp As Integer 'tiene los valores que iras sumando Dim Porcentaje As Integer 'el porcentaje a multiplicar, 20.5 - 10.5 etc. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click If Trim(txtCan.Text) = "" Then MsgBox("ingrese cantidad de productos") DetectaValor(Val(ComboBox1.SelectedIndex)) End Sub Intentamos que el txtCan no este vacio es una manera vaga de trabajarlo pero eso es secundario y no es algo que tenga que ver ahora, la función para detectar valor se le "llama" de manera distinta, ya que vamos a trabajar sobre el Index del combo el cual es un valor entero. El Index nos indica qué posición el usuario tiene seleccionado en un determinado objeto, en un combo sería de esta manera para saberlo;Variable=ComboBox1.SelectedIndex La Variable debería ser Integer ya que ese tipo de dato nos devuelve la instrucción.
Estos arreglos hice en la función; Private Sub DetectaValor(ByVal Producto As Integer) 'modificamos el valor de la variable Dim Multi As Integer 'cantidad de productos Dim ValorT As Integer 'para realizar la cuenta y obtener resultado Multi = Val(txtCan.Text) ' Select Case Producto 'pasa a ser el index del Combo Case Is = 0 'sabemos que selecciono el primero en la lista 'por lo que es jabon y haremos la multiplicacion 'en base a la siguiente sintáxis ' cantidad * 20.5 ValorT = Multi * 20.5 ValorTemp = ValorTemp + ValorT Case Is = 1 'si selecciona jabon (el segundo item del combo) 'recuerda que el combo comienza siempre con index 0 ValorT = Multi * 10.5 ValorTemp = ValorTemp + ValorT Case Is = 2 ValorT = Multi * 15.5 'este ultimo es el que debes cambiar para modificar el porcentaje a multiplicar ValorTemp = ValorTemp + ValorT Case Is = 3 ValorT = Multi * 6.7 ValorTemp = ValorTemp + ValorT End Select End Sub Creo que el código lo deja claro pero espero lo implementes a tu código.
Entiende que el valor del TxtCan, no es lo MISMO que el valor del Producto, ya que Producto se refiere hacia el index del combo, el cual tenemos seleccionado, y el valor de Txtcan es la cantidad de productos.
Cualquier duda nos comentas.
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Cobro Programa Gestion [vb.net EX][sql server EX]
.NET (C#, VB.NET, ASP)
|
Ari Slash
|
6
|
6,846
|
25 Octubre 2009, 14:53 pm
por Ari Slash
|
|
|
Cómo reclamar el cobro indebido del 'canon digital'
Noticias
|
wolfbcn
|
0
|
1,657
|
10 Marzo 2011, 02:18 am
por wolfbcn
|
|
|
Cuanto cobro.. Debate
« 1 2 »
Foro Libre
|
Senior++
|
17
|
6,561
|
9 Julio 2012, 01:02 am
por reagea
|
|
|
Multan a la SGAE por el cobro abusivo en bodas
Foro Libre
|
crazykenny
|
1
|
2,204
|
15 Agosto 2012, 21:05 pm
por bettu
|
|
|
Solución a empresa de cobro que llama por facturas de ONO pagadas
Foro Libre
|
ccrunch
|
1
|
2,185
|
31 Julio 2014, 00:09 am
por #!drvy
|
|