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

📄 seatfoodform.vb

📁 This program is designed for a menu ordering system under pocket pc platform .
💻 VB
📖 第 1 页 / 共 2 页
字号:
                Dim NewProdcutId As String = lvwSeatFoodList.Items(i - 1).SubItems(4).Text
                Dim Nums As Integer = NewNums

                FoodMsg = FoodMsg + "[" + NewFood + "][" + NewPrice + "][" + NewNums + "][" + NewTotals + "]" + vbCrLf

                Totals = Totals + NewTotals

                Dim LVI As ListViewItem = New ListViewItem(NewFood)
                LVI.SubItems.Add(NewPrice)
                LVI.SubItems.Add(NewNums)
                LVI.SubItems.Add(NewTotals)
                LVI.SubItems.Add(NewProdcutId)
                lvwSeatFoodListResult.Items.Add(LVI)

            Next

            txtTableId.Text = Me.cbxTableId.Text
            txtOrderId.Text = RunID("OR")
            TabControl1.SelectedIndex = 3  '自動切換到[點餐結果]標籤

            ProductMoneys = Totals  '取得產品消費總金額

            lblTotalCash.Text = ProductMoneys.ToString()

            Msg = Msg + "訂單編號:" + txtOrderId.Text + vbCrLf
            Msg = Msg + "桌號:" + cbxTableId.Text + vbCrLf
            Msg = Msg + "產品資訊:" + vbCrLf + FoodMsg + vbCrLf
            Msg = Msg + "產品消費總金額:" + ProductMoneys.ToString() + vbCrLf

            Dim Result As Integer = MsgShow(Msg, "顧客點餐清單資訊", MsgBoxIcon.Asterisk)
            If (Result = 1) Then

                If (InsertDataToConsumeRecord() And InsertDataToOrderDB()) Then

                    MessageBox.Show("訂單資料新增完成!!", "訂單新增動作")

                End If

            Else  'Result = 2

                MessageBox.Show("取消新增訂單動作!!")

            End If

        End If

    End Sub

#Region "產生流水編號"

    ''' <summary>
    ''' 產生流水編號
    ''' 例如:095 12 20 12 53 20
    ''' </summary>
    ''' <param name="HeadStr">流水號開頭字串</param>
    '''<returns>回傳日期時間字串</returns>
    Public Shared Function RunID(ByVal HeadStr As String) As String
        Dim IDStr As String '存放回傳字串變數
        Dim NowStr As String '存放目前日期時間變數
        Dim YearStr As String '存放年字串
        Dim MonthStr As String '存放月字串
        Dim DayStr As String '存放日字串
        Dim HourStr As String '存放小時字串
        Dim MinuteStr As String '存放分鐘字串
        Dim SecondStr As String '存放秒數字串

        NowStr = DateTime.Now.ToString()
        YearStr = String.Format("{0:D3}", CInt(DateTime.Now.Year) - 1911) 'D3表是不足三位數前面會補0
        MonthStr = String.Format("{0:D2}", CInt(DateTime.Now.Month))
        DayStr = String.Format("{0:D2}", CInt(DateTime.Now.Day))
        HourStr = String.Format("{0:D2}", CInt(DateTime.Now.Hour))
        MinuteStr = String.Format("{0:D2}", CInt(DateTime.Now.Minute))
        SecondStr = String.Format("{0:D2}", CInt(DateTime.Now.Second))
        IDStr = HeadStr + YearStr + MonthStr + DayStr + HourStr + MinuteStr + SecondStr
        Return IDStr

    End Function 'RunID

#End Region

#Region "訊息盒顯示實作"

    ''' <summary>
    ''' 訊息圖示列舉
    ''' </summary>
    Public Enum MsgBoxIcon
        None
        Asterisk
        IsError
        Exclamation
        Hand
        Information
        Question
        IsStop
        Warning
    End Enum

    ''' <summary>
    ''' 訊息盒顯示
    ''' </summary>
    Public Function MsgShow(ByVal text As String, ByVal caption As String, ByVal Icon As MsgBoxIcon) As Integer

        Dim MBF As MessageBoxForm = New MessageBoxForm()
        MBF.MsgContent = text
        MBF.Caption = caption

        Select Case Icon
            Case MsgBoxIcon.None
                MBF.Icons = "None"
            Case MsgBoxIcon.Asterisk
                MBF.Icons = "Asterisk"
            Case MsgBoxIcon.IsError
                MBF.Icons = "Error"
            Case MsgBoxIcon.Exclamation
                MBF.Icons = "Exclamation"
            Case MsgBoxIcon.Hand
                MBF.Icons = "Hand"
            Case MsgBoxIcon.Information
                MBF.Icons = "Information"
            Case MsgBoxIcon.Question
                MBF.Icons = "Question"
            Case MsgBoxIcon.IsStop
                MBF.Icons = "Stop"
            Case MsgBoxIcon.Warning
                MBF.Icons = "Warning"
        End Select

        '強制顯示訊息,需回應之後才會執行下一步
        MBF.ShowDialog()

        Return MBF.Result

    End Function

#End Region

#Region "將資料寫入資料庫中"

    ''' <summary>
    ''' 將資料寫入資料庫中-寫入顧客消費記錄
    ''' </summary>
    Private Function InsertDataToConsumeRecord() As Boolean

        Dim arrList As ArrayList = New ArrayList()

        Dim crOrderId As String = ""  '訂單編號
        Dim crConsumeDate As String = ""  '消費日期
        Dim crMoneys As Integer = 0  '消費金額
        Dim crPay As Integer = 0  '是否結帳
        Dim crTableId As String = ""  '桌號

        crOrderId = txtOrderId.Text

        crConsumeDate = DateTime.Now.ToString("yyyy年MM月dd日 HH:mm:ss")
        crMoneys = ProductMoneys

        If (crMoneys = 0) Then '若應付款金額為0表示已經結帳

            crPay = 1

        Else '否則要至前端櫃台機進行結帳

            crPay = 0

        End If

        crTableId = txtTableId.Text

        arrList.Clear()
        arrList.Insert(0, crOrderId)
        arrList.Insert(1, crConsumeDate)
        arrList.Insert(2, CStr(crMoneys))
        arrList.Insert(3, CStr(crPay))
        arrList.Insert(4, crTableId)

        If (AuthPK(crOrderId, "OrderId", "ConsumeRecord") = False) Then
            If (DbCRInsertData(arrList)) Then
                Return True
            Else
                MessageBox.Show("新增訂單資料失敗", "新增訂單資料", MessageBoxButtons.OK, MessageBoxIcon.Hand, MessageBoxDefaultButton.Button1)
                Return False
            End If
        Else
            MessageBox.Show("對不起,資料庫已存在[ " + crOrderId + " ]訂單資料!!(資料重複)", "資料新增")
            Return False
        End If

    End Function


    ''' <summary>
    ''' 將資料寫入資料庫中-寫入顧客點餐記錄
    ''' </summary>
    Private Function InsertDataToOrderDB() As Boolean

        Dim arrList As ArrayList = New ArrayList()

        Dim OrderId As String = ""  '訂單編號
        Dim UserId As String = ""  '使用者編號
        Dim ProductId As String = ""  '食品編號
        Dim ProductName As String = ""  '食品名稱
        Dim ProductCost As Integer = 0  '食品價格
        Dim ProductNums As Integer = 0  '食品數量
        Dim ConsumeDate As String = ""  '消費日期
        Dim SystemMachineId As String = ""  '系統機器編號 Client , Server , Pocket PC

        OrderId = txtOrderId.Text
        UserId = WinEvents.LoginUserID

        ConsumeDate = DateTime.Now.ToString("yyyy年MM月dd日 HH:mm:ss")
        SystemMachineId = "Pocket PC"

        If (lvwSeatFoodList.Items.Count > 0) Then

            For i As Integer = 1 To lvwSeatFoodList.Items.Count

                ProductId = lvwSeatFoodList.Items(i - 1).SubItems(4).Text
                ProductName = lvwSeatFoodList.Items(i - 1).SubItems(0).Text
                ProductCost = lvwSeatFoodList.Items(i - 1).SubItems(1).Text
                ProductNums = lvwSeatFoodList.Items(i - 1).SubItems(2).Text

                arrList.Clear()
                arrList.Insert(0, OrderId)
                arrList.Insert(1, UserId)
                arrList.Insert(2, ProductId)
                arrList.Insert(3, ProductName)
                arrList.Insert(4, CStr(ProductCost))
                arrList.Insert(5, CStr(ProductNums))
                arrList.Insert(6, ConsumeDate)
                arrList.Insert(7, SystemMachineId)

                If (AuthPK(OrderId, "OrderId", ProductId, "ProductId", "OrderDB") = False) Then

                    If (DbODBInsertData(arrList)) Then
                        Return True
                    Else
                        MessageBox.Show("新增訂單資料失敗", "新增訂單資料", MessageBoxButtons.OK, MessageBoxIcon.Hand, MessageBoxDefaultButton.Button1)
                        Return False
                    End If

                Else
                    MessageBox.Show("對不起,資料庫已存在[ " + OrderId + " ]訂單資料!!(資料重複)", "資料新增")
                    Return False
                End If

            Next

        Else

            MessageBox.Show("新增[" + OrderId + "-" + ProductName + "]訂單資料失敗", "新增訂單資料", MessageBoxButtons.OK, MessageBoxIcon.Hand, MessageBoxDefaultButton.Button1)
            Return False

        End If

    End Function

#End Region

#Region "驗證主鍵值是否存在"

    ''' <summary>
    ''' 驗證主鍵值是否存在
    ''' </summary>
    Public Function AuthPK(ByVal PKval As String, ByVal PKname As String, ByVal TableName As String) As Boolean

        Dim selectCmd As String
        Dim errorMsg As String  'errorMsg變數用來存放錯誤訊息

        Try
            selectCmd = "SELECT * FROM " + TableName + " WHERE " + PKname + " ='" + PKval + "'"

            conn = New SqlConnection(ConnString)
            conn.Open()
            cmd = New SqlCommand(selectCmd, conn)
            dr = cmd.ExecuteReader()

            If (dr.Read()) Then  '若能讀取下一個資料錄表示有找到資料
                conn.Close()
                cmd.Dispose()
                dr.Close()
                Return True
            Else
                conn.Close()
                cmd.Dispose()
                dr.Close()
                Return False
            End If
        Catch ex As Exception
            errorMsg = ex.Message
            conn.Close()
            cmd.Dispose()
            dr.Close()
            Return False
        End Try

    End Function

#End Region

#Region "驗證雙主鍵值"

    ''' <summary>
    ''' 驗證雙主鍵值
    ''' </summary>
    Public Function AuthPK(ByVal PKval1 As String, ByVal PKname1 As String, ByVal PKval2 As String, ByVal PKname2 As String, ByVal TableName As String) As Boolean

        Dim selectCmd As String
        Dim errorMsg As String  'errorMsg變數用來存放錯誤訊息

        Try

            selectCmd = "SELECT * FROM " + TableName + " WHERE " + PKname1 + " ='" + PKval1 + "' And " + PKname2 + "='" + PKval2 + "'"

            conn = New SqlConnection(ConnString)
            conn.Open()
            cmd = New SqlCommand(selectCmd, conn)
            dr = cmd.ExecuteReader()

            If (dr.Read()) Then  '若能讀取下一個資料錄表示有找到資料
                conn.Close()
                cmd.Dispose()
                dr.Close()
                Return True
            Else
                conn.Close()
                cmd.Dispose()
                dr.Close()
                Return False
            End If
        Catch ex As Exception
            errorMsg = ex.Message
            conn.Close()
            cmd.Dispose()
            dr.Close()
            Return False
        End Try

    End Function

#End Region

#Region "新增一筆資料-寫入顧客消費記錄"

    ''' <summary>
    ''' 新增一筆資料-寫入顧客消費記錄
    ''' </summary>
    Public Function DbCRInsertData(ByVal ArrField As ArrayList) As Boolean

        InitDB()

        Dim insertCmd As String
        Dim TableName As String = "ConsumeRecord"
        insertCmd = "Insert Into " + TableName + " (OrderId,ConsumeDate,Moneys,Pay,TableId"

        insertCmd = insertCmd + ") Values("
        insertCmd = insertCmd + "'" + ArrField(0) + "',"    '訂單編號
        insertCmd = insertCmd + "'" + ArrField(1) + "',"    '消費日期
        insertCmd = insertCmd + "'" + ArrField(2) + "',"      '消費金額
        insertCmd = insertCmd + "'" + ArrField(3) + "',"      '是否結帳
        insertCmd = insertCmd + "'" + ArrField(4) + "'"    '桌號
        insertCmd = insertCmd + ")"

        Try
            cmd = New SqlCommand(insertCmd, conn)
            cmd.ExecuteNonQuery()
            conn.Close()
            Return True
        Catch ex As Exception
            errorMsg = ex.Message
            conn.Close()
            Return False
        End Try

    End Function

#End Region

#Region "新增一筆資料-寫入顧客點餐記錄"

    ''' <summary>
    ''' 新增一筆資料-寫入顧客點餐記錄
    ''' </summary>
    Public Function DbODBInsertData(ByVal ArrField As ArrayList) As Boolean

        InitDB()

        Dim insertCmd As String
        Dim TableName As String = "OrderDB"
        insertCmd = "Insert Into " + TableName + " (OrderId,UserId,ProductId,ProductName,ProductCost,ProductNums,ConsumeDate,SystemMachineId"

        insertCmd = insertCmd + ") Values("
        insertCmd = insertCmd + "'" + ArrField(0) + "',"    '訂單編號
        insertCmd = insertCmd + "'" + ArrField(1) + "',"    '使用者編號
        insertCmd = insertCmd + "'" + ArrField(2) + "',"    '食品編號        
        insertCmd = insertCmd + "'" + ArrField(3) + "',"    '食品名稱
        insertCmd = insertCmd + "'" + ArrField(4) + "',"    '食品價格
        insertCmd = insertCmd + "'" + ArrField(5) + "',"    '食品數量
        insertCmd = insertCmd + "'" + ArrField(6) + "',"    '消費日期
        insertCmd = insertCmd + "'" + ArrField(7) + "'"     '系統機器編號
        insertCmd = insertCmd + ")"

        Try
            cmd = New SqlCommand(insertCmd, conn)
            cmd.ExecuteNonQuery()
            conn.Close()
            Return True
        Catch ex As Exception
            errorMsg = ex.Message
            conn.Close()
            Return False
        End Try

    End Function

#End Region

    '---------------------------點菜清單 End-------------------------------

End Class

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -