⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 seatfoodform.vb

📁 This program is designed for a menu ordering system under pocket pc platform .
💻 VB
📖 第 1 页 / 共 2 页
字号:
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 + -