Foros del Web » Programación para mayores de 30 ;) » .NET »

manejar cambios en un formulario usando teclas funcion

Estas en el tema de manejar cambios en un formulario usando teclas funcion en el foro de .NET en Foros del Web. holas, mi problema es el siguiente, como estoy recien en esto de programar en visual nose como implementar mi ventana de ventas, nose como continuar ...
  #1 (permalink)  
Antiguo 13/06/2011, 20:03
 
Fecha de Ingreso: diciembre-2010
Mensajes: 106
Antigüedad: 13 años, 11 meses
Puntos: 10
Pregunta manejar cambios en un formulario usando teclas funcion

holas,
mi problema es el siguiente, como estoy recien en esto de programar en visual
nose como implementar mi ventana de ventas, nose como continuar la venta ya sea ingresando el monto, y siquiero volver hacias atras para agregar mas productos, sumar el total de los precio en el textbox de total, en fin muchas cosas de esta pantalla



luego apreto F9 y oculto el textbox y el label de abajo y pongo visible el texbox paara el monto.
sera lo correcto????? y como podria volver atrás???



me quedan pocos días :$


aqui el codigo de todo el form

Código vb:
Ver original
  1. Imports System.Data.SqlClient
  2. Public Class VentaLibros
  3.     Private myConn As New SqlConnection
  4.     Private myCmd As New SqlCommand
  5.     Dim myReader2 As SqlDataReader
  6.     Private results As String
  7.     Dim adaptor As New SqlClient.SqlDataAdapter
  8.     Dim dataset As New DataSet
  9.  
  10.     Private Sub VentaLibros_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown
  11.         If e.KeyValue = Keys.F1 Or Keys.F2 Or Keys.F3 Or Keys.F4 Or Keys.F5 Or Keys.F6 Or Keys.F7 Or Keys.F8 Or Keys.F9 Or Keys.F10 Or Keys.F11 Or Keys.F12 Or Keys.Escape Then
  12.             FuncKeysModule(e.KeyValue)
  13.             e.Handled = True
  14.         End If
  15.     End Sub
  16.     Private Sub VentaLibros_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  17.         TbMonto.Visible = False
  18.         ingreseMonto.Visible = False
  19.     End Sub
  20.  
  21.     Private Sub TbProducto_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles TbProducto.KeyDown
  22.         If e.KeyValue = Keys.F1 Or Keys.F2 Or Keys.F3 Or Keys.F4 Or Keys.F5 Or Keys.F6 Or Keys.F7 Or Keys.F8 Or Keys.F9 Or Keys.F10 Or Keys.F11 Or Keys.F12 Or Keys.Escape Then
  23.             FuncKeysModule(e.KeyValue)
  24.             e.Handled = True
  25.         End If
  26.     End Sub
  27.  
  28.     Private Sub TbProducto_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TbProducto.KeyPress
  29.         'Valido que se ingrese solo numeros
  30.  
  31.         If Char.IsNumber(e.KeyChar) Then
  32.             e.Handled = False
  33.             'Valido que se presione Backspace,Enter
  34.        ElseIf Char.IsControl(e.KeyChar) Then
  35.             e.Handled = False
  36.             'Las demas teclas quedan bloqueadas
  37.        Else
  38.             e.Handled = True
  39.         End If
  40.  
  41.         'Si mando un ENTER entonces que busque
  42.        If e.KeyChar = Convert.ToChar(Keys.Enter) Then
  43.  
  44.            
  45.             myConn = New SqlConnection("Initial Catalog=libroteka;Data Source=localhost;Integrated Security=SSPI;")
  46.        
  47.             myCmd = myConn.CreateCommand
  48.             myCmd.CommandText = "SELECT * FROM libros WHERE cod_libro ='" & TbProducto.Text & "' "
  49.  
  50.  
  51.             adaptor.SelectCommand = myCmd
  52.             adaptor.Fill(dataset, "0")
  53.  
  54.             Dim count = dataset.Tables(0).Rows.Count
  55.             If count > 0 Then
  56.  
  57.                 myConn.Open()
  58.                 With Ltver.Items.Add(TbProducto.Text, "cod_libro")
  59.                     .SubItems.Add(dataset.Tables(0).Rows(0).Item("nombre_libro"))
  60.                     .SubItems.Add(dataset.Tables(0).Rows(0).Item("precio"))
  61.  
  62.                
  63.                 End With
  64.  
  65.  
  66.             End If
  67.         End If
  68.  
  69.  
  70.         TbProducto.Clear()
  71.         dataset.Clear()
  72.         myConn.Close()
  73.  
  74.  
  75.         myConn.Close()
  76.  
  77.      
  78.     End Sub
  79.  
  80.     Private Sub TbProducto_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TbProducto.TextChanged
  81.  
  82.      
  83.     End Sub
  84.  
  85.     Private Sub Ltver_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Ltver.KeyDown
  86.         If e.KeyValue = Keys.F1 Or Keys.F2 Or Keys.F3 Or Keys.F4 Or Keys.F5 Or Keys.F6 Or Keys.F7 Or Keys.F8 Or Keys.F9 Or Keys.F10 Or Keys.F11 Or Keys.F12 Or Keys.Escape Then
  87.             FuncKeysModule(e.KeyValue)
  88.             e.Handled = True
  89.         End If
  90.     End Sub
  91.  
  92.    
  93.     Public Sub FuncKeysModule(ByVal value As Keys)
  94.         'Check what function key is in a pressed state, and then perform the corresponding action.
  95.        Select Case value
  96.             Case Keys.F1
  97.                 'Add the code for the function key F1 here.
  98.                MessageBox.Show("F1 pressed")
  99.             Case Keys.F2
  100.                 'Add the code for the function key F2 here.
  101.                MessageBox.Show("F2 pressed")
  102.             Case Keys.F3
  103.                 'Add the code for the function key F3 here.
  104.                MessageBox.Show("F3 pressed")
  105.             Case Keys.F4
  106.                 'Add the code for the function key F4 here.
  107.                MessageBox.Show("F4 pressed")
  108.             Case Keys.F5
  109.                 'Add the code for the function key F5 here.
  110.                MessageBox.Show("F5 pressed")
  111.             Case Keys.F6
  112.                 'Add the code for the function key F6 here.
  113.                MessageBox.Show("F6 pressed")
  114.             Case Keys.F7
  115.                 'Add the code for the function key F7 here.
  116.                MessageBox.Show("F7 pressed")
  117.             Case Keys.F8
  118.                 'Add the code for the function key F8 here.
  119.                MessageBox.Show("F8 pressed")
  120.             Case Keys.F9
  121.                 TbProducto.Visible = False
  122.                 Label4.Visible = False
  123.  
  124.                 TbMonto.Visible = True
  125.                 ingreseMonto.Visible = True
  126.                
  127.             Case Keys.F10
  128.                 'Add the code for the function key F10 here.
  129.                MessageBox.Show("F10 pressed")
  130.             Case Keys.F11
  131.                 'Add the code for the function key F11 here.
  132.                MessageBox.Show("F11 pressed")
  133.             Case Keys.F12
  134.                 'Add the code for the key F12 here
  135.                MessageBox.Show("F12 pressed")
  136.             Case Keys.Escape
  137.                 MessageBox.Show("Escapate")
  138.         End Select
  139.     End Sub
  140.  
  141.     Private Sub TextBox1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles TextBox1.KeyDown
  142.         If e.KeyValue = Keys.F1 Or Keys.F2 Or Keys.F3 Or Keys.F4 Or Keys.F5 Or Keys.F6 Or Keys.F7 Or Keys.F8 Or Keys.F9 Or Keys.F10 Or Keys.F11 Or Keys.F12 Then
  143.             FuncKeysModule(e.KeyValue)
  144.             e.Handled = True
  145.         End If
  146.     End Sub
  147.  
  148. End Class
  #2 (permalink)  
Antiguo 13/06/2011, 22:09
Avatar de slaxsna  
Fecha de Ingreso: diciembre-2010
Ubicación: Tampico
Mensajes: 38
Antigüedad: 13 años, 11 meses
Puntos: 3
Respuesta: manejar cambios en un formulario usando teclas funcion

Cita:
Iniciado por future89 Ver Mensaje
holas,
mi problema es el siguiente, como estoy recien en esto de programar en visual
nose como implementar mi ventana de ventas, nose como continuar la venta ya sea ingresando el monto, y siquiero volver hacias atras para agregar mas productos, sumar el total de los precio en el textbox de total, en fin muchas cosas de esta pantalla

luego apreto F9 y oculto el textbox y el label de abajo y pongo visible el texbox paara el monto.
sera lo correcto????? y como podria volver atrás???
Bueno amigo si lo que quieres es regresar podrias poner otro evento en el cual te vuelva a cerrar el textbox de cobrar por ejemplo el ESC puede ser buena opcion para cancelar el cobro y seguir con tu lista de productos añadidos.

Otra opción y que yo uso es que el cobro sea en otro Form y por ejemplo si voy a realizar el cobro presiono la tecla F12 y si requiero añadir mas productos solo cierro ese form y listo.

Tambien dices que no sabes como cobrar la venta no? y sumar el total de los productos okey te explicare:

Ya teniendo tu listview con productos y listo para realizar el cobro puedes hacer un for así:
Código vb:
Ver original
  1. For s = 0 To listview1.Items.Count - 1
  2.                 Subtotal = CDbl(Subtotal) +CDbl(listview1.Items(s).SubItems(2).Text)
  3.             Next
  4.             Me.TextBox1.Text = "$" & Format(Subtotal, "0.00")

Donde TextBox1 sera el nombre del textbox del Total..

Si estas poniendo el textbox de monto, entonces te vendria bien poner ya sea un Label u otro textbox para visualizar la feria que le regresaras al cliente, entonces lo puedes hacer así:

Te voi a pasar como yo lo tengo en un sistema

Código vb:
Ver original
  1. Private Sub RealizarOperacion()
  2.         Try
  3.             txtRecibido.Text = Format(CDbl(txtRecibido.Text), "#,###,###,##0.00####")
  4.  
  5.             Dim cambio As Double
  6.             Dim recibido As Double = CDbl(txtRecibido.Text)
  7.             Dim total As Double = CDbl(Subtotal)
  8.  
  9.             If recibido >= total Then
  10.                 cambio = CDbl(recibido) - CDbl(total)
  11.                 txtCambio.Text = Format(CDbl(cambio), "#,###,###,##0.00####")
  12.                 lblNota.ResetText()
  13.             Else
  14.                 lblNota.Text = "El efectivo ingresado es menor al monto a pagar. Verifique"
  15.                 txtCambio.Text = "0.00"
  16.                 txtRecibido.Focus()
  17.             End If
  18.         Catch
  19.             txtRecibido.Focus()
  20.             txtRecibido.Clear()
  21.         End Try
  22.     End Sub

Bueno cualquier otra duda ps ahí avisas, espero poder haberte ayudado si no pues me dices..

Saludos

Última edición por slaxsna; 13/06/2011 a las 22:17 Razón: Se me olvidaba ...
  #3 (permalink)  
Antiguo 14/06/2011, 12:07
 
Fecha de Ingreso: diciembre-2010
Mensajes: 106
Antigüedad: 13 años, 11 meses
Puntos: 10
Respuesta: manejar cambios en un formulario usando teclas funcion

ok vale gracias probare!
  #4 (permalink)  
Antiguo 14/06/2011, 13:55
 
Fecha de Ingreso: diciembre-2010
Mensajes: 106
Antigüedad: 13 años, 11 meses
Puntos: 10
Respuesta: manejar cambios en un formulario usando teclas funcion

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....
  #5 (permalink)  
Antiguo 14/06/2011, 20:23
Avatar de slaxsna  
Fecha de Ingreso: diciembre-2010
Ubicación: Tampico
Mensajes: 38
Antigüedad: 13 años, 11 meses
Puntos: 3
Respuesta: manejar cambios en un formulario usando teclas funcion

Cita:
Iniciado por future89 Ver Mensaje
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 ...

Código vb:
Ver original
  1. listview1.SelectedItems(0).Remove()

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 original
  1. For s = 0 To listview1.Items.Count - 1
  2.             Subtotal = CDbl(Subtotal) + CDbl(listview.Items(s).SubItems(2).Text)
  3.         Next
  4.  
  5.         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 original
  1. Dim j As Integer ' Esta va ir al principio de la clase
  2.  
  3. Private Sub TbProducto_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TbProducto.KeyPress
  4.         'Valido que se ingrese solo numeros
  5.  
  6.         If Char.IsNumber(e.KeyChar) Then
  7.             e.Handled = False
  8.             'Valido que se presione Backspace,Enter
  9.        ElseIf Char.IsControl(e.KeyChar) Then
  10.             e.Handled = False
  11.             'Las demas teclas quedan bloqueadas
  12.        Else
  13.             e.Handled = True
  14.         End If
  15.  
  16.         'Si mando un ENTER entonces que busque
  17.        If e.KeyChar = Convert.ToChar(Keys.Enter) Then
  18.         Try
  19.             For Me.j = 0 To Me.listview1.Items.Count - 1
  20.                 If Me.listview1.Items(j).SubItems(0).Text = TbProducto.Text Then
  21.                     Call MismaFila()
  22.                     Exit Sub
  23.                 End If
  24.             Next
  25.             Call listview()
  26.         Catch ex As Exception
  27.             MsgBox(ex.Message)
  28.         End Try
  29.     End If        
  30.     End Sub
  31.  
  32.    Private Sub MismaFila()
  33.         Dim cantidad As Integer
  34.         Dim importe, subtotal As Double
  35.  
  36.         cantidad = CInt(Me.listview1.Items(j).SubItems(3).Text) + 1
  37.         Me.listview1.Items(j).SubItems(3).Text = cantidad
  38.  
  39.         importe = CInt(cantidad) * CDbl(Me.listview1.Items(j).SubItems(2).Text)
  40.         Me.listview1.Items(j).SubItems(4).Text = Format(importe, "0.00")
  41.  
  42.         For s = 0 To listview1.Items.Count - 1
  43.             subtotal = CDbl(subtotal) + CDbl(listview1.Items(s).SubItems(2).Text)
  44.         Next
  45.         txtTotal.Text = "$" & Format(subtotal, "0.00")
  46.     End Sub
  47.  
  48.   Private Sub listview()
  49.         Dim s As Integer
  50.         Dim Subtotal As Double
  51.  
  52.         Try
  53.             myConn = New SqlConnection("Initial Catalog=libroteka;Data Source=localhost;Integrated Security=SSPI;")
  54.        
  55.             myCmd = myConn.CreateCommand
  56.             myCmd.CommandText = "SELECT * FROM libros WHERE cod_libro ='" & TbProducto.Text & "' "
  57.  
  58.  
  59.             adaptor.SelectCommand = myCmd
  60.             adaptor.Fill(dataset, "0")
  61.  
  62.             Dim count = dataset.Tables(0).Rows.Count
  63.             If count > 0 Then
  64.  
  65.                 myConn.Open()
  66.                 With Ltver.Items.Add(TbProducto.Text, "cod_libro")
  67.                     .SubItems.Add(dataset.Tables(0).Rows(0).Item("nombre_libro"))
  68.                     .SubItems.Add(dataset.Tables(0).Rows(0).Item("precio"))    
  69.                     .SubItems.Add(dataset.Tables(0).Rows(0).Item("precio"))    
  70.                End With
  71.             End If
  72.  
  73.         TbProducto.Clear()
  74.         dataset.Clear()
  75.         myConn.Close()
  76.  
  77.             For s = 0 To listview1.Items.Count - 1
  78.                 Subtotal = CDbl(Subtotal) + CDbl(listview1.Items(s).SubItems(2).Text)
  79.             Next
  80.             Me.txtTotal.Text = "$" & Format(Subtotal, "0.00")
  81.  
  82.         Catch ex As Exception
  83.            MsgBox(ex.Message)
  84.         End Try
  85.     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
  #6 (permalink)  
Antiguo 15/06/2011, 06:51
 
Fecha de Ingreso: diciembre-2010
Mensajes: 106
Antigüedad: 13 años, 11 meses
Puntos: 10
Respuesta: manejar cambios en un formulario usando teclas funcion

gracias slaxsna por todo ahora que lo veo asi es muy logico jeje, me has ayudado bastante, lo probare y modificare vale.
  #7 (permalink)  
Antiguo 15/06/2011, 09:07
Avatar de slaxsna  
Fecha de Ingreso: diciembre-2010
Ubicación: Tampico
Mensajes: 38
Antigüedad: 13 años, 11 meses
Puntos: 3
Respuesta: manejar cambios en un formulario usando teclas funcion

Cita:
Iniciado por future89 Ver Mensaje
gracias slaxsna por todo ahora que lo veo asi es muy logico jeje, me has ayudado bastante, lo probare y modificare vale.

Por nada hombre y si se te presenta otra duda no dudes en postearla y aquí trataremos de resolverla.
  #8 (permalink)  
Antiguo 15/06/2011, 09:10
Avatar de Aquaventus  
Fecha de Ingreso: junio-2010
Ubicación: Lima-Peru , En el alba de la naturaleza
Mensajes: 2.105
Antigüedad: 14 años, 4 meses
Puntos: 267
Respuesta: manejar cambios en un formulario usando teclas funcion

Concuerdo con Slaxsna Nunca dudes en preguntar si tienes problemas, que aqui hay gente desinteresada en poder ayudar a los demás!. Saludos!..
__________________
Internet es tener todo el conocimiento global a tu disposición.
Desarrollo de Software - Ejemplos .Net

Etiquetas: cambios, funcion, manejar, teclas, formulario
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:55.