Ver Mensaje Individual
  #1 (permalink)  
Antiguo 03/01/2011, 16:45
guillebomtrasmiti
 
Fecha de Ingreso: noviembre-2010
Ubicación: madrid
Mensajes: 478
Antigüedad: 13 años, 5 meses
Puntos: 5
mostrar datos según selección

Hola, tengo un formulario dónde pretendo que el usuario selecione una familia y se muestren sus productos, para ello el formulario está partido en dos ... arriba salen los botones de familias, que se muestran siempre y abajo ... salen los botones de productos que no deben aparecer mientras el usuario no seleccione un botón de familia...os dejo el código para ver si alguién me ayuda...gracias...

Private adapta As New SqlDataAdapter
Private undataset As New DataSet
Private cmd As New SqlCommand
Private conexion As New SqlConnection
Private Sub frmPrincipal_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
cargar_formulario_Productos()
cargar_formulario_familias()

End Sub
Public Sub cargar_formulario_Productos()
conexion.ConnectionString = "Data Source=.\SQLEXPRESS11;AttachDbFilename=C:\VISUAL\T pvVigoSe\TpvVigo\Tpv.mdf;" & _
"Integrated Security=True;" & _
"Connect Timeout=30;" & _
"User Instance=True"

'Dim nuevobotonProd As New Button
'Creo las variables que definen el area de botones por fila
Dim bxf, contador As Integer
'Creo la variables que contendran las dimensiones de los botones
Dim altoBoton, anchoBoton As Integer
'Creo las variables de los puntos en los cuales empiezo a pintar los botones
Dim x, y As Integer

'-------------------------------------------------------------------------------------------
bxf = 9 'Por ejemplo defino 9 botones por fila
contador = 0
anchoBoton = 54
altoBoton = 87
x = 10
y = 320

'--------------------------------------------------------------------
Dim conlumna As New DataColumn
conlumna.ColumnName.Contains("Producto")


cmd.Connection = conexion
cmd.CommandText = "select Producto from Productos ORDER BY Orden ASC"

adapta.SelectCommand = cmd
adapta.Fill(undataset, "Productos")


For i As Integer = 0 To undataset.Tables("Productos").Rows.Count - 1
'Si alcanzo el maximo de columnas de la fila a pintar
If contador = bxf Then
'seteo el valor del contador
contador = 0
'doy la coordenada para que inicie otra fila para crear botones
y = y + anchoBoton
x = 10
End If

Dim nuevobotonProd As New Button
nuevobotonProd.BackColor = Color.Khaki
nuevobotonProd.Location = New Point(x, y)
nuevobotonProd.Size = New Size(altoBoton, anchoBoton)
nuevobotonProd.Text = undataset.Tables("Productos").Rows(i).Item(0).ToSt ring()

Me.Controls.Add(nuevobotonProd)
'Aumento contador de columnas
contador = contador + 1
'aumento la coordenada para crear otro boton en la siguiente columna
x = x + altoBoton

Next
End Sub
Public Sub cargar_formulario_familias()
conexion.ConnectionString = "Data Source=.\SQLEXPRESS11;AttachDbFilename=C:\VISUAL\T pvVigoSe\TpvVigo\Tpv.mdf;" & _
"Integrated Security=True;" & _
"Connect Timeout=30;" & _
"User Instance=True"

'Dim nuevobotonProd As New Button
'Creo las variables que definen el area de botones por fila
Dim bxf, contador As Integer
'Creo la variables que contendran las dimensiones de los botones
Dim altoBoton, anchoBoton As Integer
'Creo las variables de los puntos en los cuales empiezo a pintar los botones
Dim x, y As Integer

'-------------------------------------------------------------------------------------------
bxf = 9 'Por ejemplo defino 9 botones por fila
contador = 0
anchoBoton = 54
altoBoton = 87
x = 14
y = 2

'--------------------------------------------------------------------
Dim conlumna As New DataColumn
conlumna.ColumnName.Contains("NombreFamilia")


cmd.Connection = conexion
cmd.CommandText = "select NombreFamilia from FamiliasProducto ORDER BY OrdenFamilia ASC"

adapta.SelectCommand = cmd
adapta.Fill(undataset, "FamiliasProducto")


For i As Integer = 0 To undataset.Tables("FamiliasProducto").Rows.Count - 1
'Si alcanzo el maximo de columnas de la fila a pintar
If contador = bxf Then
'seteo el valor del contador
contador = 0
'doy la coordenada para que inicie otra fila para crear botones
y = y + anchoBoton
x = 10
End If

Dim nuevobotonProd As New Button
nuevobotonProd.BackColor = Color.Khaki
nuevobotonProd.Location = New Point(x, y)
nuevobotonProd.Size = New Size(altoBoton, anchoBoton)
nuevobotonProd.Text = undataset.Tables("FamiliasProducto").Rows(i).Item( 0).ToString()

Me.Controls.Add(nuevobotonProd)
'Aumento contador de columnas
contador = contador + 1
'aumento la coordenada para crear otro boton en la siguiente columna
x = x + altoBoton

Next
End Sub