crear en tiempo de ejecución botones con consulta sql
Publicado por djnilo (24 intervenciones) el 10/10/2016 02:05:54
buenas tardes amigos del foro estoy trabajando en una aplicación de restaurante necesito mostrar los botones segun la consulta sql que tenga en formulario contenedor (grupox o tab)
ejemplo
tengo este ejemplo que me va creado los botones al presionar un boton esto funciona pero yo lo que necesito que me llo muestre con un procedimiento almacenado sql
mi codigo ejemplo

procedimiento almacenado
ejemplo
tengo este ejemplo que me va creado los botones al presionar un boton esto funciona pero yo lo que necesito que me llo muestre con un procedimiento almacenado sql
mi codigo ejemplo
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
ublic Class frmformulario
Inherits System.Windows.Forms.Form
#Region " Windows Form Designer generated code "
#End Region
Public Sub New()
MyBase.New()
'This call is required by the Windows Form Designer.
InitializeComponent()
'Add any initialization after the InitializeComponent() call
End Sub
'Form Overrides dispose To clean up the component list.
Private Sub frmformulario_Load(sender As Object, e As EventArgs) Handles MyBase.Load
End Sub
Dim iContador As Integer
Private Sub btmCrear_Click(sender As Object, e As EventArgs) Handles btmCrear.Click
''Variable de mi nuevo objeto
Dim MyNewObject As Control
MyNewObject = New Button ''Nuevo Botón
''Levanto el tipo del nuevo objeto
Dim MyTipo As System.Type = MyNewObject.GetType
''Con el nombre del tipo y el contador le doy un nombre
MyNewObject.Name = MyTipo.Name & Convert.ToString(iContador)
''En la propiedad Text le pongo el nombre del nuevo control
''(solo para que se vea bien en el ejemplo)
MyNewObject.Text = MyNewObject.Name
''Ubico el nuevo control segun indicado
MyNewObject.Location = New System.Drawing.Point(NumericUpDown1.Value, NumericUpDown2.Value)
MyNewObject.Width = 45
''Le agrego al evento Click de mi nuevo control el evento ClickEvent
''Aqui se podría agregar un manejador a cualquier evento que uno quiera
AddHandler MyNewObject.Click, AddressOf ClickEvent
''Agrego el control al contenedor
''(que podría claramente ser Me.controls, en vez de GroupBox1.control ¿no?)
Me.GroupBox1.Controls.Add(MyNewObject)
''Para que el ejemplo sea claro cambio algunas variables
'Agrego 1 al contador
iContador += 1
'Pongo el nombre de mi nuevo control en el listbox
'para poder borrarlo
Me.ListBox1.Items.Add(MyNewObject.Name)
'Muevo los valores para que no se sobreescriban los proximos controles
If NumericUpDown1.Value + 50 <= NumericUpDown1.Maximum Then
NumericUpDown1.Value += 50
Else
NumericUpDown1.Value = 10
If NumericUpDown2.Value + 20 <= NumericUpDown2.Maximum Then
NumericUpDown2.Value += 20
End If
End If
End Sub
Private Sub ClickEvent(ByVal sender As System.Object, ByVal e As System.EventArgs)
''A modo de ejemplo muestro un messagebox con el nombre de control que lo llamó
MessageBox.Show(sender.name)
End Sub
Private Sub btmEliminar_Click(sender As Object, e As EventArgs) Handles btmEliminar.Click
'Chequeo si el listbox tiene algo seleccionado
If Not Me.ListBox1.SelectedItem Is Nothing Then
'Recorro todos los controles del GroupBox1 buscando el control
'que deseo eliminar
Dim Eliminar As Control
For Each Eliminar In Me.GroupBox1.Controls
If Eliminar.Name = ListBox1.SelectedItem Then
'Saco el control de la colección
Me.Controls.Remove(Eliminar)
'Destruyo el control
Eliminar.Dispose()
'Saco el control del Listbox
Me.ListBox1.Items.Remove(Me.ListBox1.SelectedItem)
'Salgo del For
Exit For
End If
Next
End If
End Sub

procedimiento almacenado
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
Public Function BUSCAR_PRODUCTOS_ACTIVOS(ByVal obj As CAPA_ENTIDAD.CpE_Cls_PRODUCTO)
Dim cn As New SqlConnection(Conexion.Connectionstring)
Dim dtprov As New Data.DataTable
Try
cn.Open()
dapprov.SelectCommand = cn.CreateCommand
dapprov.SelectCommand.CommandText = "PA_BuscarProductoActivo"
dapprov.SelectCommand.CommandType = CommandType.StoredProcedure
dapprov.SelectCommand.Parameters.AddWithValue("@nom", obj.Nombre)
dapprov.SelectCommand.Parameters.AddWithValue("@tipo", obj.Nombre)
dapprov.SelectCommand.Parameters.AddWithValue("@opcion", obj.opcion)
dapprov.SelectCommand.ExecuteNonQuery()
dapprov.Fill(dtprov)
Return dtprov
Catch ex As Exception
MsgBox(ex.Message)
Throw New Exception(ex.Message)
Finally
If cn.State = ConnectionState.Open Then
cn.Dispose()
cn.Close()
End If
End Try
End Function
Valora esta pregunta


0