📄 seatfoodform.vb
字号:
Imports System.Data
Imports System.Data.SqlClient '新增命名空間 for SQL Server
Public Class SeatFoodForm
'\\\\\\\\\\\\\\\\\\\\\ 選擇桌號 宣告 \\\\\\\\\\\\\\\\\\\\\\\\\
Dim Pager As Integer = 1 '目前是第幾頁
Dim SumPager As Integer = Math.Ceiling(SumTable / 12) '總頁數
Dim x As Integer
'\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
'\\\\\\\\\\\\\\\\\\\\\ 進行點餐 宣告 \\\\\\\\\\\\\\\\\\\\\\\\\
Dim errorMsg As String
Dim ConnString As String
Dim conn As SqlConnection
Dim da As SqlDataAdapter
Dim MQ As ModityQuantity
Dim FL As FoodList
'\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
'\\\\\\\\\\\\\\\\\\\\\ 點餐結果 宣告 \\\\\\\\\\\\\\\\\\\\\\\\\
Dim ProductMoneys As Integer = 0 '產品總金額
Dim cmd As SqlCommand
Dim dr As SqlDataReader
'\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
Private Sub SeatFoodForm_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load
TextBox1.Text = Pager
btn_table()
End Sub
#Region "資料庫初始化"
''' <summary>
''' 資料庫初始化
''' </summary>
Public Sub InitDB()
ConnString = SQLConnectionString()
conn = New SqlConnection(ConnString)
conn.Open()
End Sub
#End Region
'---------------------------選擇桌號 start-------------------------------
'下一頁
Private Sub btn_Down_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_Down.Click
Pager = Pager + 1
TextBox1.Text = Pager
btn_table()
End Sub
'上一頁
Private Sub btn_Up_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_Up.Click
Pager = Pager - 1
TextBox1.Text = Pager
btn_table()
End Sub
Sub btn_table()
If Pager = 1 Then
btn_Up.Enabled = False
Else
btn_Up.Enabled = True
End If
If SumPager = 1 Then
btn_Down.Enabled = False
Else
btn_Down.Enabled = True
End If
If SumPager = Pager Then
btn_Down.Enabled = False
Else
btn_Down.Enabled = True
End If
For Each btn As Button In Panel1.Controls
btn.Text = "桌"
btn.Enabled = False
x = (Pager - 1) * 12 + btn.TabIndex
If SumTable >= x Then
btn.Text = x & "桌"
btn.Enabled = True
End If
If VerifyTable(btn.Text, 0) Then
btn.ForeColor = Color.Red
btn.Tag = True
Else
btn.ForeColor = Color.Blue
btn.Tag = False
End If
Next
End Sub
#Region "驗證桌號"
Public Function VerifyTable(ByVal TableId As String, ByVal Pay As String) As Boolean
Dim TableName As String = "ConsumeRecord"
Dim selectCmd As String
selectCmd = "Select * From " + TableName + " Where TableId='" + TableId + "' And Pay=" + Pay
'注意:欄位名稱不可為Password
Try
InitDB()
cmd = New SqlCommand(selectCmd, conn)
dr = cmd.ExecuteReader()
If (dr.Read()) Then
conn.Close()
Return True
Else
conn.Close()
Return False
End If
Catch ex As Exception
errorMsg = ex.Message
conn.Close()
Return False
End Try
End Function
#End Region
Private Sub clsd_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_Table01.Click, btn_Table02.Click, btn_Table03.Click, btn_Table04.Click, btn_Table05.Click, btn_Table06.Click, btn_Table07.Click, btn_Table08.Click, btn_Table09.Click, btn_Table10.Click, btn_Table11.Click, btn_Table12.Click
cbxTableId.Text = CType(sender, Button).Text
If CType(sender, Button).Tag = True Then
MsgBox("使用中!")
Else
TabControl1.SelectedIndex = 1 '自動切換到[進行點餐]標籤
End If
End Sub
Private Sub TabControl1_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles TabControl1.SelectedIndexChanged
Select Case (TabControl1.SelectedIndex)
Case 0
btn_table()
lvwProduct.Items.Clear()
lvwSeatFoodList.Items.Clear()
lvwSeatFoodListResult.Items.Clear()
txtOrderId.Text = ""
txtTableId.Text = ""
cbxTableId.Text = ""
End Select
End Sub
'---------------------------選擇桌號 End-------------------------------
'---------------------------進行點餐 start-------------------------------
'濃湯類
Private Sub btn_Soup_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_Soup.Click
GetProductListView("Soup")
End Sub
'開胃菜
Private Sub btn_Antipasto_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_Antipasto.Click
GetProductListView("Antipasto")
End Sub
'主餐類
Private Sub btn_MainFood_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_MainFood.Click
GetProductListView("MainFood")
End Sub
'飲品類
Private Sub btn_Refreshmen_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_Refreshmen.Click
GetProductListView("Refreshmen")
End Sub
'甜點類
Private Sub btn_Dolce_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_Dolce.Click
GetProductListView("Dolce")
End Sub
#Region "讀取菜單資料"
Private Sub GetProductListView(ByVal ProductClassId As String)
Dim DT As DataTable = GetProductInfoDataTable("ProductId", "ASC", ProductClassId)
Dim LVI As ListViewItem
lvwProduct.Items.Clear()
For Each row As DataRow In DT.Rows
LVI = New ListViewItem(row("ProductName").ToString())
LVI.SubItems.Add(row("ProductCost").ToString())
LVI.SubItems.Add(row("ProductId").ToString())
lvwProduct.Items.Add(LVI)
Next
DT.Dispose()
End Sub
#End Region
#Region "將ProductInfo資料表的內容以DataTable方式回傳"
''' <summary>
''' 將ProductInfo資料表的內容以DataTable方式回傳
''' </summary>
Public Function GetProductInfoDataTable(ByVal OrderByColumn As String, ByVal ASCorDESC As String, ByVal ProductClassId As String) As DataTable
Dim TableName As String = "ProductInfo"
Dim selectCmd As String
selectCmd = "SELECT ProductName, ProductCost, ProductId FROM " + TableName + " WHERE (IsValid = 1) AND (ProductClassId = '" + ProductClassId + "') Order By " + OrderByColumn + " " + ASCorDESC
Try
InitDB()
da = New SqlDataAdapter(selectCmd, conn)
Dim DT As DataTable = New DataTable()
da.Fill(DT)
da.Dispose()
conn.Close()
Return DT
Catch ex As Exception
MsgBox("資料磁連線錯誤!")
Return Nothing
End Try
End Function
#End Region
Private Sub lvwProduct_ItemActivate(ByVal sender As Object, ByVal e As System.EventArgs) Handles lvwProduct.ItemActivate
Dim Food As String = lvwProduct.Items(lvwProduct.FocusedItem.Index).SubItems(0).Text
Dim Price As String = lvwProduct.Items(lvwProduct.FocusedItem.Index).SubItems(1).Text
Dim ProductId As String = lvwProduct.Items(lvwProduct.FocusedItem.Index).SubItems(2).Text
Dim num As String = "1"
Dim First As Boolean = True
MQ = New ModityQuantity(First, Food, Price, num, ProductId)
AddHandler MQ.Closed, AddressOf MQClose
MQ.ShowDialog()
End Sub
Public Sub MQClose(ByVal sender As Object, ByVal e As EventArgs)
Dim NewFood As String = MQ.Food
Dim NewPrice As String = MQ.Price
Dim NewNums As String = MQ.Nums
Dim NewTotals As String = MQ.Totals
Dim NewProdcutId As String = MQ.ProductId
If NewTotals <> "" Then
Dim i As Integer
For i = 0 To lvwSeatFoodList.Items.Count - 1
If MQ.ProductId = lvwSeatFoodList.Items(i).SubItems(4).Text Then
lvwSeatFoodList.Items.RemoveAt(i)
End If
Next i
Dim LVI As New ListViewItem(NewFood)
LVI.SubItems.Add(NewPrice)
LVI.SubItems.Add(NewNums)
LVI.SubItems.Add(NewTotals)
LVI.SubItems.Add(NewProdcutId)
lvwSeatFoodList.Items.Add(LVI)
End If
End Sub 'MQClose
'詳細資料
Private Sub btn_List_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_List.Click
Try
If lvwProduct.Items.Count <> 0 Then
If lvwProduct.FocusedItem.Selected = True Then
Dim ProductName As String = lvwProduct.Items(lvwProduct.FocusedItem.Index).SubItems(0).Text
Dim ProductId As String = lvwProduct.Items(lvwProduct.FocusedItem.Index).SubItems(2).Text
FL = New FoodList(ProductName, ProductId)
FL.ShowDialog()
Else
MsgBox("未選取項目!")
End If
Else
MsgBox("未選取項目!")
End If
Catch ex As Exception
MsgBox("未選取項目!")
End Try
End Sub
'---------------------------進行點餐 End-------------------------------
'---------------------------點菜清單 start-------------------------------
'修改數量
Private Sub btn_Modify_Click(ByVal sender As Object, ByVal e As EventArgs) Handles btn_Modify.Click
If (lvwSeatFoodList.Items.Count > 0) Then
Dim Food As String = lvwSeatFoodList.Items(lvwSeatFoodList.FocusedItem.Index).SubItems(0).Text
Dim Price As String = lvwSeatFoodList.Items(lvwSeatFoodList.FocusedItem.Index).SubItems(1).Text
Dim Nums As String = lvwSeatFoodList.Items(lvwSeatFoodList.FocusedItem.Index).SubItems(2).Text
Dim ProdcutId As String = lvwSeatFoodList.Items(lvwSeatFoodList.FocusedItem.Index).SubItems(4).Text
Dim First As Boolean = False
MQ = New ModityQuantity(First, Food, Price, Nums, ProdcutId)
AddHandler MQ.Closed, AddressOf MQClose
MQ.ShowDialog()
End If
End Sub 'btn_Modify_Click
'刪除點餐
Private Sub btnDelSeatFood_Click(ByVal sender As Object, ByVal e As EventArgs) Handles btnDelSeatFood.Click
If (lvwSeatFoodList.Items.Count > 0) Then
Dim Food As String = lvwSeatFoodList.Items(lvwSeatFoodList.FocusedItem.Index).SubItems(0).Text
Dim i As Integer = lvwSeatFoodList.FocusedItem.Index
Dim Dr As DialogResult
Dr = MessageBox.Show("是否將餐點[" + Food + "]從菜單中刪除?", "點餐作業", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1)
If Dr = Windows.Forms.DialogResult.Yes Then
lvwSeatFoodList.Items.RemoveAt(i)
End If
End If
End Sub 'btnDelSeatFood_Click
'確定送出
Private Sub btnConfirm_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnConfirm.Click
lvwSeatFoodListResult.Items.Clear()
Dim FoodMsg As String = ""
Dim Msg As String = ""
Dim Totals As Integer = 0
If (lvwSeatFoodList.Items.Count > 0) Then
For i As Integer = 1 To lvwSeatFoodList.Items.Count
Dim NewFood As String = lvwSeatFoodList.Items(i - 1).SubItems(0).Text
Dim NewPrice As String = lvwSeatFoodList.Items(i - 1).SubItems(1).Text
Dim NewNums As String = lvwSeatFoodList.Items(i - 1).SubItems(2).Text
Dim NewTotals As String = lvwSeatFoodList.Items(i - 1).SubItems(3).Text
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -