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

Aqui te mando el codigo segun entiendo ya tu arreglas la sentencia para listar los productos de la familia determinada con su respectivo campo, cualquier otra duda nos la comentas . Saludos!.

PDT Editado: Te recomiendo hacer 2 panel, en 1 que va a estar en la parte de arriba que vayan las familias y en la otra(que va a estar abajo) vayan los productos de la familia escojida, de manera que cada vez que llamas al evento que te pase abajo en el code "btnEvent_Click" primero limpias el panel
y luego que llame a los botones, para que no se sobrepongan los botones cada vez que escojas una familia. Espero haberte ayudado saludos!.

Código vb:
Ver original
  1. '******************************************************************************
  2.  
  3. Private adapta As New SqlDataAdapter
  4. Private undataset As New DataSet
  5. Private cmd As New SqlCommand
  6. Private conexion As New SqlConnection
  7.  
  8. Private Sub frmPrincipal_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  9. 'cargar_formulario_Productos()
  10. cargar_formulario_familias()
  11.  
  12. End Sub
  13.  
  14. Public Sub cargar_formulario_Productos(ByVal fam As String)
  15. conexion.ConnectionString = "Data Source=.\SQLEXPRESS11;AttachDbFilename=C:\VISUAL\T pvVigoSe\TpvVigo\Tpv.mdf;" & _
  16. "Integrated Security=True;" & _
  17. "Connect Timeout=30;" & _
  18. "User Instance=True"
  19.  
  20. 'Dim nuevobotonProd As New Button
  21. 'Creo las variables que definen el area de botones por fila
  22. Dim bxf, contador As Integer
  23. 'Creo la variables que contendran las dimensiones de los botones
  24. Dim altoBoton, anchoBoton As Integer
  25. 'Creo las variables de los puntos en los cuales empiezo a pintar los botones
  26. Dim x, y As Integer
  27.  
  28. '-------------------------------------------------------------------------------------------
  29. bxf = 9 'Por ejemplo defino 9 botones por fila
  30. contador = 0
  31. anchoBoton = 54
  32. altoBoton = 87
  33. x = 10
  34. y = 320
  35.  
  36. '--------------------------------------------------------------------
  37. Dim conlumna As New DataColumn
  38. conlumna.ColumnName.Contains("Producto")
  39.  
  40.  
  41. cmd.Connection = conexion
  42. cmd.CommandText = "select Producto from Productos ORDER where id_familia = " & valor & " BY Orden ASC"
  43.  
  44. adapta.SelectCommand = cmd
  45. adapta.Fill(undataset, "Productos")
  46.  
  47.  
  48. For i As Integer = 0 To undataset.Tables("Productos").Rows.Count - 1
  49. 'Si alcanzo el maximo de columnas de la fila a pintar
  50. If contador = bxf Then
  51. 'seteo el valor del contador
  52. contador = 0
  53. 'doy la coordenada para que inicie otra fila para crear botones
  54. y = y + anchoBoton
  55. x = 10
  56. End If
  57.  
  58. Dim nuevobotonProd As New Button
  59. nuevobotonProd.BackColor = Color.Khaki
  60. nuevobotonProd.Location = New Point(x, y)
  61. nuevobotonProd.Size = New Size(altoBoton, anchoBoton)
  62. nuevobotonProd.Text = undataset.Tables("Productos").Rows(i).Item(0).ToString()
  63.  
  64. Me.Controls.Add(nuevobotonProd)
  65. 'Aumento contador de columnas
  66. contador = contador + 1
  67. 'aumento la coordenada para crear otro boton en la siguiente columna
  68. x = x + altoBoton
  69.  
  70. Next
  71. End Sub
  72.  
  73. Public Sub cargar_formulario_familias()
  74. conexion.ConnectionString = "Data Source=.\SQLEXPRESS11;AttachDbFilename=C:\VISUAL\T pvVigoSe\TpvVigo\Tpv.mdf;" & _
  75. "Integrated Security=True;" & _
  76. "Connect Timeout=30;" & _
  77. "User Instance=True"
  78.  
  79. 'Dim nuevobotonProd As New Button
  80. 'Creo las variables que definen el area de botones por fila
  81. Dim bxf, contador As Integer
  82. 'Creo la variables que contendran las dimensiones de los botones
  83. Dim altoBoton, anchoBoton As Integer
  84. 'Creo las variables de los puntos en los cuales empiezo a pintar los botones
  85. Dim x, y As Integer
  86.  
  87. '-------------------------------------------------------------------------------------------
  88. bxf = 9 'Por ejemplo defino 9 botones por fila
  89. contador = 0
  90. anchoBoton = 54
  91. altoBoton = 87
  92. x = 14
  93. y = 2
  94.  
  95. '--------------------------------------------------------------------
  96. Dim conlumna As New DataColumn
  97. conlumna.ColumnName.Contains("NombreFamilia")
  98.  
  99.  
  100. cmd.Connection = conexion
  101. cmd.CommandText = "select NombreFamilia from FamiliasProducto ORDER BY OrdenFamilia ASC"
  102.  
  103. adapta.SelectCommand = cmd
  104. adapta.Fill(undataset, "FamiliasProducto")
  105.  
  106.  
  107. For i As Integer = 0 To undataset.Tables("FamiliasProducto").Rows.Count - 1
  108.  
  109. 'Si alcanzo el maximo de columnas de la fila a pintar
  110. If contador = bxf Then
  111. 'seteo el valor del contador
  112. contador = 0
  113. 'doy la coordenada para que inicie otra fila para crear botones
  114. y = y + anchoBoton
  115. x = 10
  116. End If
  117.  
  118. Dim nuevobotonProd As New Button
  119. nuevobotonProd.BackColor = Color.Khaki
  120. 'Agrego esta propiedad para darle el nombre al boton
  121. nuevobotonProd.Name = undataset.Tables("FamiliasProducto").Rows(i).Item(0).ToString()
  122. nuevobotonProd.Location = New Point(x, y)
  123. nuevobotonProd.Size = New Size(altoBoton, anchoBoton)
  124. nuevobotonProd.Text = undataset.Tables("FamiliasProducto").Rows(i).Item(0).ToString()
  125.  
  126. Me.Controls.Add(nuevobotonProd)
  127.  
  128. 'Creo 1 evento para todos los botones
  129. AddHandler Me.Controls(undataset.Tables("FamiliasProducto").Rows(i).Item( 0).ToString()).Click, AddressOf btnEvent_Click
  130.  
  131. 'Aumento contador de columnas
  132. contador = contador + 1
  133. 'aumento la coordenada para crear otro boton en la siguiente columna
  134. x = x + altoBoton
  135. Next
  136. End Sub
  137.  
  138. Private Sub btnEvent_Click()
  139. 'Identifico el nombre del boton(nombre de la familia seleccionada)
  140. 'al que se hizo clic y almaceno en una variable
  141. valor = Me.ActiveControl.Name.ToString
  142. 'Mando a listar los productos de la familia,
  143. 'Enviandole la familia respectiva
  144. cargar_formulario_Productos(valor)
  145. End Sub
__________________
Internet es tener todo el conocimiento global a tu disposición.
Desarrollo de Software - Ejemplos .Net

Última edición por Aquaventus; 04/01/2011 a las 10:28