ถ้าเลือกใช้ Control Button ก็ให้ทำเป็น Control Array ตัวอย่างเช่น Code (VB.NET/C# ก็เหมือนกัน)
For i As Integer = 0 To 10 'จำนวนโต๊ะทั้งหมด
Dim btn As New Button With {.ID = "โต๊ะ" + i.ToString(), .Text = "โต๊ะ 1"}
AddHandler btn.Click, AddressOf อาหารอร่อยดนตรีไพเราะ
Me.PanelZoneOne.Controls.Add(btn)
Next
Private Sub อาหารอร่อยดนตรีไพเราะ(ByVal sender As System.Object, ByVal e As System.EventArgs)
Dim b As Button = DirectCast(sender, Button)
'...
'...
'...
End Sub
Public tmpOrders As New Dictionary(Of Integer, List(Of tmpFoodOrder))
'สั่งอาหาร
Private Sub GetOrders(Byval TableID As Integer, ByVal FoodID As Integer)
If Not tmpOrders .ContainsKey(TableID) Then
Dim x As New List(Of tmpFoodOrder)
x.Add(New tmpFoodOrder() With {.TableID = TableID,
.FoodID = 123,
.FoodNameInf = "คะน้าผัดหอย",
.Price = 100,
.Qty = 2,
.Remark = "อร่อยดี"}
)
tmpOrders.Add(x)
End If
End Sub
'เลือกโต๊ะ
Private Sub GetTable(Byval TableID As Integer)
Dim x =tmpOrders(TableID)
If x Isnot Nothing Then
'...
'...
End
End Sub
'ชำระเงินเรียบร้อยแล้ว
tmpOrders.Remove(TableID)
Code (VB.NET)
Public Class tmpFoodOrder
Public Property TableID As Integer 'เลขที่โต๊ะอาหาร
Public Property FoodID As Integer ' เลขที่รายการอาหาร
Public Property FoodNameInf As String 'ชื่อรายการอาหาร
Public Property Price As Decimal 'ราคา/หน่วย
Public Property Qty As Integer 'จำนวนอาหาร
'...
End Class
SELECT *
FROM Header_Table a
OUTER APPLY (
SELECT b.*, c.FoodName
FROM Detail_Table b
CROSS APPLY (SELECT FoodName FROM Food_Beverage z WHERE z.FoodID= b.FoodID) c
WHERE a.TableID = b.TableID
) d
WHERE a.TableID = 7
Dim tmpTable As New DataTable()
tmpTable.Columns.AddRange({New DataColumn() With {.ColumnName = "TableID", .DataType = GetType(Integer)},
New DataColumn() With {.ColumnName = "FoodID", .DataType = GetType(Integer)},
New DataColumn() With {.ColumnName = "FoodNameInf", .DataType = GetType(String)}
})
Dim tmpBill As List(Of tmpFoodOrder) = tmpOrders(7)
tmpBill.AsEnumerable().ForEach(Sub(p)
tmpTable.Rows.Add(New Object() {p.TableID, p.FoodID, p.FoodNameInf})
End Sub)