'******************************************************************************
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(ByVal fam As String)
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 where id_familia = " & valor & " 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).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
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
'Agrego esta propiedad para darle el nombre al boton
nuevobotonProd.Name = undataset.Tables("FamiliasProducto").Rows(i).Item(0).ToString()
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)
'Creo 1 evento para todos los botones
AddHandler Me.Controls(undataset.Tables("FamiliasProducto").Rows(i).Item( 0).ToString()).Click, AddressOf btnEvent_Click
'Aumento contador de columnas
contador = contador + 1
'aumento la coordenada para crear otro boton en la siguiente columna
x = x + altoBoton
Next
End Sub
Private Sub btnEvent_Click()
'Identifico el nombre del boton(nombre de la familia seleccionada)
'al que se hizo clic y almaceno en una variable
valor = Me.ActiveControl.Name.ToString
'Mando a listar los productos de la familia,
'Enviandole la familia respectiva
cargar_formulario_Productos(valor)
End Sub