Ver Mensaje Individual
  #36 (permalink)  
Antiguo 09/01/2011, 18:34
Avatar de Aquaventus
Aquaventus
 
Fecha de Ingreso: junio-2010
Ubicación: Lima-Peru , En el alba de la naturaleza
Mensajes: 2.105
Antigüedad: 14 años, 7 meses
Puntos: 267
Respuesta: mostrar datos según selección

Solucionado guille! cualquier otra duda me lo comentas aqui te pongo el codigo entero pero cambiale la cadena de conexion xq esta con la de mi maquina . Nos Vemos guille. Saludos!.

Create esta variable global

Código vb:
Ver original
  1. 'CREO ESTA VARIABLE PARA CONTROLAR SI SE REALIZO CLIC
  2. 'EN CUALQUIER BOTON DE UNA DE LAS FAMILIAS
  3. Private accion As Integer = 0

cargar_formulario_Productos:

Código vb:
Ver original
  1. Public Sub cargar_formulario_Productos(ByVal fam As String)
  2. conexion.ConnectionString = "Data Source=.\SQLEXPRESS;AttachDbFilename=C:\Documents and Settings\Serv\Escritorio\TpvVigoSe\TpvVigo\Tpv.mdf;" & _
  3. "Integrated Security=True;" & _
  4. "Connect Timeout=30;" & _
  5. "User Instance=True"
  6.  
  7. 'Dim nuevobotonProd As New Button
  8. 'Creo las variables que definen el area de botones por fila
  9. Dim bxf, contador As Integer
  10. 'Creo la variables que contendran las dimensiones de los botones
  11. Dim altoBoton, anchoBoton As Integer
  12. 'Creo las variables de los puntos en los cuales empiezo a pintar los botones
  13. Dim x, y As Integer
  14.  
  15. '-------------------------------------------------------------------------------------------
  16. bxf = 9 'Por ejemplo defino 9 botones por fila
  17. contador = 0
  18. anchoBoton = 54
  19. altoBoton = 87
  20. x = 10
  21. y = 320
  22.  
  23. '--------------------------------------------------------------------
  24.  
  25.  
  26. ''Aqui verifico si se presiono para eliminar los
  27. ''botones creados anteriormente y no se esten
  28. ''amontonando con los de la otra consulta
  29. If accion = 1 Then
  30. ' Recorremos la colección de controles del formulario
  31. For Each ctrl As Control In Me.Controls
  32. ' Si el tipo de control es un Button
  33. If TypeOf ctrl Is Button Then
  34. ' Si se llama "x"
  35. If ctrl.Name = "x" Then
  36. ' Lo eliminamos de la colección
  37. Me.Controls.Remove(ctrl)
  38. End If
  39. End If
  40. Next
  41. 'Limpio la tabla productos para que no se incremente
  42. undataset.Tables("productos").Clear()
  43. End If
  44.  
  45. Dim conlumna As New DataColumn
  46. conlumna.ColumnName.Contains("Producto")
  47.  
  48.  
  49. cmd.Connection = conexion
  50. cmd.CommandText = "select Producto from Productos where plu = " & fam & " ORDER BY Orden ASC"
  51.  
  52. adapta.SelectCommand = cmd
  53. adapta.Fill(undataset, "Productos")
  54.  
  55. For i As Integer = 0 To undataset.Tables("Productos").Rows.Count - 1
  56. 'Si alcanzo el maximo de columnas de la fila a pintar
  57. If contador = bxf Then
  58. 'seteo el valor del contador
  59. contador = 0
  60. 'doy la coordenada para que inicie otra fila para crear botones
  61. y = y + anchoBoton
  62. x = 10
  63. End If
  64.  
  65. Dim nuevobotonProd As New Button
  66. nuevobotonProd.BackColor = Color.Khaki
  67. nuevobotonProd.Name = "x"
  68. nuevobotonProd.Location = New Point(x, y)
  69. nuevobotonProd.Size = New Size(altoBoton, anchoBoton)
  70. nuevobotonProd.Text = undataset.Tables("Productos").Rows(i).Item(0).ToString()
  71.  
  72. Me.Controls.Add(nuevobotonProd)
  73. 'Aumento contador de columnas
  74. contador = contador + 1
  75. 'aumento la coordenada para crear otro boton en la siguiente columna
  76. x = x + altoBoton
  77.  
  78. Next
  79.  
  80. End Sub

cargar_formulario_familias :

Código vb:
Ver original
  1. Public Sub cargar_formulario_familias()
  2.  
  3. 'AddHandler Me.Controls(undataset.Tables("FamiliasProducto").Rows(i).Item(0).ToString()).Click, AddressOf btnEvent_Click
  4.  
  5. conexion.ConnectionString = "Data Source=.\SQLEXPRESS;AttachDbFilename=C:\Documents and Settings\Serv\Escritorio\TpvVigoSe\TpvVigo\Tpv.mdf;" & _
  6. "Integrated Security=True;" & _
  7. "Connect Timeout=30;" & _
  8. "User Instance=True"
  9.  
  10. 'Dim nuevobotonProd As New Button
  11. 'Creo las variables que definen el area de botones por fila
  12. Dim bxf, contador As Integer
  13. 'Creo la variables que contendran las dimensiones de los botones
  14. Dim altoBoton, anchoBoton As Integer
  15. 'Creo las variables de los puntos en los cuales empiezo a pintar los botones
  16. Dim x, y As Integer
  17.  
  18. '-------------------------------------------------------------------------------------------
  19. bxf = 9 'Por ejemplo defino 9 botones por fila
  20. contador = 0
  21. anchoBoton = 54
  22. altoBoton = 87
  23. x = 14
  24. y = 2
  25.  
  26. '--------------------------------------------------------------------
  27. Dim conlumna As New DataColumn
  28. conlumna.ColumnName.Contains("NombreFamilia")
  29.  
  30.  
  31. cmd.Connection = conexion
  32. cmd.CommandText = "select idf, NombreFamilia from FamiliasProducto ORDER BY OrdenFamilia ASC"
  33.  
  34. adapta.SelectCommand = cmd
  35. adapta.Fill(undataset, "FamiliasProducto")
  36.  
  37.  
  38. For i As Integer = 0 To undataset.Tables("FamiliasProducto").Rows.Count - 1
  39.  
  40. 'Si alcanzo el maximo de columnas de la fila a pintar
  41. If contador = bxf Then
  42. 'seteo el valor del contador
  43. contador = 0
  44. 'doy la coordenada para que inicie otra fila para crear botones
  45. y = y + anchoBoton
  46. x = 10
  47. End If
  48.  
  49. Dim nuevobotonProd As New Button
  50. nuevobotonProd.BackColor = Color.Khaki
  51. 'Agrego esta propiedad para darle el nombre al boton
  52. nuevobotonProd.Name = undataset.Tables("FamiliasProducto").Rows(i).Item(0).ToString()
  53. nuevobotonProd.Location = New Point(x, y)
  54. nuevobotonProd.Size = New Size(altoBoton, anchoBoton)
  55. nuevobotonProd.Text = undataset.Tables("FamiliasProducto").Rows(i).Item(1).ToString()
  56.  
  57. Me.Controls.Add(nuevobotonProd)
  58.  
  59. 'Creo 1 evento para todos los botones
  60. AddHandler Me.Controls(undataset.Tables("FamiliasProducto").Rows(i).Item(0).ToString()).Click, AddressOf btnEvent_Click
  61. 'Aumento contador de columnas
  62. contador = contador + 1
  63. 'aumento la coordenada para crear otro boton en la siguiente columna
  64. x = x + altoBoton
  65. Next
  66. accion = 0
  67. End Sub

btnEvent_Click :

Código vb:
Ver original
  1. Private Sub btnEvent_Click()
  2. 'Identifico el nombre del boton(nombre de la familia seleccionada)
  3. 'al que se hizo clic y almaceno en una variable
  4. valor = Me.ActiveControl.Name.ToString
  5. 'Mando a listar los productos de la familia,
  6. 'Enviandole la familia respectiva
  7. cargar_formulario_Productos(valor)
  8. 'mando accion
  9. accion = 1
  10. End Sub
__________________
Internet es tener todo el conocimiento global a tu disposición.
Desarrollo de Software - Ejemplos .Net