📄 frmmain.frm
字号:
Private Sub mainGrid_Click()
If mainGrid.Row = 1 Then
Select Case mainGrid.Col
Case 1
If SQLORDER = "MenuID" Then
SQLORDER = "MenuID DESC"
Else
SQLORDER = "MenuID"
End If
Case 2
If SQLORDER = "TableID" Then
SQLORDER = "TableID DESC"
Else
SQLORDER = "TableID"
End If
Case 3
If SQLORDER = "TableName" Then
SQLORDER = "TableName DESC"
Else
SQLORDER = "TableName"
End If
Case 4
If SQLORDER = "WorkerID" Then
SQLORDER = "WorkerID DESC"
Else
SQLORDER = "WorkerID"
End If
Case 5
If SQLORDER = "WorkerName" Then
SQLORDER = "WorkerName DESC"
Else
SQLORDER = "WorkerName"
End If
Case 6
If SQLORDER = "FoodID" Then
SQLORDER = "FoodID DESC"
Else
SQLORDER = "FoodID"
End If
Case 7
If SQLORDER = "FoodName" Then
SQLORDER = "FoodName DESC"
Else
SQLORDER = "FoodName"
End If
Case 8
If SQLORDER = "FoodSum" Then
SQLORDER = "FoodSum DESC"
Else
SQLORDER = "FoodSum"
End If
Case 9
If SQLORDER = "Price" Then
SQLORDER = "Price DESC"
Else
SQLORDER = "Price"
End If
Case 10
If SQLORDER = "Date" Then
SQLORDER = "Date DESC"
Else
SQLORDER = "Date"
End If
Case Else
If SQLORDER = "ID" Then
SQLORDER = "ID DESC"
Else
SQLORDER = "ID"
End If
End Select
InitGrid
End If
End Sub
Private Sub menuCom_Click()
frmSetCom.Show vbModal
MsgBox "系统将退出,以使串口有效"
End
End Sub
Private Sub menuFood_Click()
manFood.Show vbModal
End Sub
Private Sub menuPrint_Click()
manPrinter.Show vbModal
MsgBox "系统将退出,以使打印机有效"
End
End Sub
Private Sub menuTable_Click()
manTable.Show vbModal
End Sub
'Private Function Getdata2() As String
'Getdata2 = "001001EE0010020100100302001001CC001001CC00100102"
'GetData1.Enabled = False
'End Function
Private Sub MakeData(ByVal isdata As String)
If InStr(isdata, "EE") <> 0 Then '开始新的一桌
NewMenu Left$(isdata, 6)
ElseIf InStr(isdata, "CC") <> 0 Then '打印菜单
PrintMenu Left$(isdata, 3)
Else '添加新菜,如已打印则打印该菜单
NewFood isdata
End If
panGetData = isdata
InitGrid
End Sub
Private Sub NewMenu(ByVal isdata As String)
'在菜单表中新建纪录,除工号、桌号、建档时间外其余数据均为0,表示本桌已开始
'同时结束上一桌
'每次新建时产生一新的序列号,并新建一新建桌标志纪录;在下一次新建时删除该纪录,
Dim NewWorkerID As Integer
Dim NewWorkerName As String
Dim NewTableID As Integer
Dim NewTableName As String
Dim tempstr As String
tempstr = Left$(isdata, 3)
NewTableID = Val(tempstr)
tempstr = Right$(isdata, 3)
NewWorkerID = Val(tempstr)
'得到桌名
Set tblTable = DBF.OpenRecordset("SELECT * " & _
" FROM " & tblTableStr & _
" WHERE TableID = " & NewTableID & _
" ORDER BY Date")
If tblTable.RecordCount < 1 Then Exit Sub
'得到员工姓名
Set tblWorker = DBF.OpenRecordset("SELECT * " & _
" FROM " & tblWorkerStr & _
" WHERE WorkerID = " & NewWorkerID & _
" ORDER BY Date")
If tblWorker.RecordCount < 1 Then Exit Sub
'找出桌号相同并未买单的数据找出
Set tblMain = DBF.OpenRecordset("SELECT * " & _
" FROM " & tblMainStr & _
" WHERE TableID = " & NewTableID & _
" AND FoodSum =0 " & _
" ORDER BY MenuID")
With tblMain
If Not .BOF Then
.MoveLast
Exit Sub
.Delete
End If
MenuID = MenuID + 1
.AddNew
!Date = Now
!TableId = NewTableID
!TableName = ""
!FoodId = 0
!FoodName = ""
!FoodSum = 0
!WorkerName = ""
!WorkerId = NewWorkerID
!MenuID = MenuID
.Update
End With
End Sub
Private Sub PrintMenu(ByVal isdata As String)
Dim NewFoodID As Integer
Dim NewFoodName As String
Dim NewTableID As Integer
Dim NewTableName As String
Dim NewFoodSum As Integer
Dim NewFoodPrice As Single
Dim NewWorkerID As Integer
Dim NewWorkerName As String
Dim PrintD As Boolean
Dim NewMenuID As Long
Dim tempstr As String
tempstr = Left$(isdata, 3)
NewTableID = Val(tempstr)
Set tblMain = DBF.OpenRecordset("SELECT * " & _
" FROM " & tblMainStr & _
" WHERE TableID = " & NewTableID & _
" AND FoodSum =0 " & _
" ORDER BY MenuID")
With tblMain
If .RecordCount >= 1 Then
.MoveLast
NewMenuID = !MenuID
.Delete
If SerPrtEnabled = 1 Then
SelPrt ServicePrinterName
PrintTableMenuAll NewMenuID
End If
If KitPrtEnabled = 1 Then
SelPrt KicthenPrinterName
PrintTableMenuAll NewMenuID
End If
If AccPrtEnabled = 1 Then
SelPrt AccountPrinterName
PrintTableMenuAll NewMenuID
End If
End If
End With
End Sub
Private Sub NewFood(ByVal isdata As String)
Dim NewFoodID As Integer
Dim NewFoodName As String
Dim NewTableID As Integer
Dim NewTableName As String
Dim NewFoodSum As Integer
Dim NewFoodPrice As Single
Dim NewWorkerID As Integer
Dim NewWorkerName As String
Dim NewID As Long
Dim PrintD As Boolean
Dim NewMenuID As Long
Dim NewY As Long
Dim tempstr As String
tempstr = Left$(isdata, 3)
NewTableID = Val(tempstr)
tempstr = Mid$(isdata, 4, 3)
NewFoodID = Val(tempstr)
tempstr = Right$(isdata, 2)
NewFoodSum = Val(tempstr)
Set tblMain = DBF.OpenRecordset("SELECT * " & _
" FROM " & tblMainStr & _
" WHERE TableID = " & NewTableID & _
" AND FoodSum =0 " & _
" ORDER BY MenuID")
If tblMain.RecordCount >= 1 Then
tblMain.MoveLast
NewMenuID = tblMain!MenuID
NewWorkerID = tblMain!WorkerId
Else
'如菜单已打印则单独打印该纪录
Set tblMain = DBF.OpenRecordset("SELECT * " & _
" FROM " & tblMainStr & _
" WHERE TableID = " & NewTableID & _
" ORDER BY MenuID")
If tblMain.RecordCount >= 1 Then
tblMain.MoveLast
NewWorkerID = tblMain!WorkerId
NewMenuID = tblMain!MenuID
End If
PrintD = True
End If
With tblMain
'得到菜名,单价
Set tblFood = DBF.OpenRecordset("SELECT * " & _
" FROM " & tblFoodStr & _
" WHERE FoodID = " & NewFoodID & _
" ORDER BY Date")
If tblFood.RecordCount < 1 Then Exit Sub
tblFood.MoveLast
NewFoodName = tblFood!FoodName
NewFoodPrice = tblFood!FoodPrice
'得到桌名
Set tblTable = DBF.OpenRecordset("SELECT * " & _
" FROM " & tblTableStr & _
" WHERE TableID = " & NewTableID & _
" ORDER BY Date")
If tblTable.RecordCount < 1 Then Exit Sub
tblTable.MoveLast
NewTableName = tblTable!TableName
'得到员工姓名
Set tblWorker = DBF.OpenRecordset("SELECT * " & _
" FROM " & tblWorkerStr & _
" WHERE WorkerID = " & NewWorkerID & _
" ORDER BY Date")
If tblWorker.RecordCount < 1 Then Exit Sub
tblWorker.MoveLast
NewWorkerName = tblWorker!WorkerName
'得到菜单号并纪录本次数据
.AddNew
!Date = Now
!TableId = NewTableID
!TableName = NewTableName
!FoodId = NewFoodID
!FoodName = NewFoodName
!FoodSum = NewFoodSum
!WorkerName = NewWorkerName
!WorkerId = NewWorkerID
!MenuID = NewMenuID
!Price = NewFoodPrice * NewFoodSum
NewID = !ID
.Update
If PrintD Then
If SerPrtEnabled = 1 Then
SelPrt ServicePrinterName
PrintF NewID
End If
If KitPrtEnabled = 1 Then
SelPrt KicthenPrinterName
PrintF NewID
End If
If AccPrtEnabled = 1 Then
SelPrt AccountPrinterName
PrintF NewID
End If
End If
End With
End Sub
Private Sub PrintF(ByVal isdata As Long) '打印一个纪录
Dim prStr As String
Set tblMain = DBF.OpenRecordset("SELECT * " & _
" FROM " & tblMainStr & _
" WHERE ID = " & isdata)
prStr = "第" & tblMain!MenuID & "号菜单添菜:"
PrintLine prStr, 200, 200, 800
prStr = "桌号,桌名,菜号,菜名,菜量,价格,员工号,员工姓名,点菜时间"
PrintLine prStr, 500, 200, 800
With tblMain
prStr = !TableId & "," & !TableName & "," & !FoodId & "," & !FoodName & "," & _
!FoodSum & "," & !Price & "," & !WorkerId & "," & !WorkerName & "," & Format(CDate(!Date), "MMDD HH:MM")
End With
PrintLine prStr, 800, 200, 800
Printer.EndDoc
End Sub
Private Sub PrintTableMenuAll(ByVal PMenuID As Long)
Dim dx As Long
Dim X0 As Long
Dim dy As Long
Dim Y0 As Long
Dim PriceSum As Single
Dim FoodSum As Long
dy = 300
dx = 800
X0 = 200
Y0 = 200
Set tblMain = DBF.OpenRecordset("SELECT * " & _
" FROM " & tblMainStr & _
" WHERE MenuID = " & PMenuID & _
" ORDER BY date")
With tblMain
If .RecordCount >= 1 Then
prStr = "菜单号:" & !MenuID
PrintLine prStr, X0, Y0, dx
Y0 = Y0 + dy
prStr = "桌号,桌名,菜号,菜名,菜量,价格,员工号,员工姓名,点菜时间"
PrintLine prStr, Y0, X0, dx
Y0 = Y0 + dy
.MoveFirst
Do While Not .EOF
prStr = !TableId & "," & !TableName & "," & !FoodId & "," & !FoodName & "," & _
!FoodSum & "," & !Price & "," & !WorkerId & "," & !WorkerName & "," & Format(CDate(!Date), "MMDD HH:MM")
PrintLine prStr, Y0, X0, dx
Y0 = Y0 + dy
PriceSum = PriceSum + !Price
FoodSum = FoodSum + !FoodSum
.MoveNext
Loop
.MoveLast
prStr = String(80, "-")
PrintLine prStr, Y0, X0, dx
Y0 = Y0 + dy
prStr = !TableId & "," & !TableName & "," & "," & "," & _
FoodSum & "," & PriceSum & "," & !WorkerId & "," & !WorkerName & "," & Format(CDate(!Date), "MMDD HH:MM")
PrintLine prStr, Y0, X0, dx
Printer.EndDoc
End If
End With
End Sub
'按格式打印一行
Private Sub PrintLine(ByVal PrintData As String, ByVal Y As Long, ByVal X0 As Long, ByVal dx As Long)
Dim Px As Long
Dim Py As Long
Dim PData As String
Px = X0
Py = Y
Do
PData = GetData(PrintData, Asc(","))
Printer.CurrentX = Px
Printer.CurrentY = Y
Printer.Print PData
Px = Px + dx
Loop Until PrintData = ""
End Sub
Private Sub menuWorker_Click()
manWorker.Show vbModal
End Sub
Private Sub InitGrid()
MakeSQLWHERE
mainGrid.Clear
mainGrid.FormatString = "|^菜单号|^桌 号|^ 桌 名 |^员工号|^员工姓名|^菜号|^ 菜 名 |^ 菜量 |^价格|^ 建档日期 "
Set tblMain = DBF.OpenRecordset(SQLtbl & SQLWHERE & " ORDER BY " & SQLORDER)
With tblMain
If .RecordCount < 1 Then Exit Sub
.MoveLast
MenuID = !MenuID
End With
Set tblMain = DBF.OpenRecordset(SQLtbl & SQLWHERE & " ORDER BY " & SQLORDER)
With tblMain
If .RecordCount < 1 Then Exit Sub
.MoveLast
menus = .RecordCount
mainGrid.Rows = menus + 1
.MoveFirst
For i = 1 To menus
mainGrid.Row = i
mainGrid.Col = 1
mainGrid = !MenuID
mainGrid.Col = 2
mainGrid = !TableId
mainGrid.Col = 3
mainGrid = !TableName
mainGrid.Col = 4
mainGrid = !WorkerId
mainGrid.Col = 5
mainGrid = !WorkerName
mainGrid.Col = 6
mainGrid = !FoodId
mainGrid.Col = 7
mainGrid = !FoodName
mainGrid.Col = 8
mainGrid = !FoodSum
mainGrid.Col = 9
mainGrid = !Price
mainGrid.Col = 10
mainGrid = Format(CDate(!Date), "MMDD HH:MM")
.MoveNext
Next i
End With
End Sub
Private Sub StartDate_Click()
Datetemp = selStartDate
frmDate.Show vbModal
selStartDate = Datetemp
StartDate.Caption = Format(selStartDate, "yyyy年mm月dd日")
InitGrid
End Sub
Private Sub MakeSQLWHERE()
Dim tempstr As String
SQLWHERE = ""
If CheckDate = 1 Then
If selStartDate = selEndDate Then
tempstr = "Date = " & CDbl(selStartDate) & " "
Else
tempstr = "(Date > " & CDbl(selStartDate) & ") AND (date < " & CDbl(selEndDate) & ") "
End If
End If
If (CheckTable = 1) And (ComTable <> "全部") Then
If tempstr <> "" Then tempstr = tempstr & "AND "
tempstr = tempstr & "(TableID = " & selTableID & ") "
End If
If (CheckFood = 1) And (ComFood <> "全部") Then
If tempstr <> "" Then tempstr = tempstr & "AND "
tempstr = tempstr & "(FoodID = " & selFoodID & ") "
End If
If (CheckWorker = 1) And (ComWorker <> "全部") Then
If tempstr <> "" Then tempstr = tempstr & "AND "
tempstr = tempstr & "(WorkerID = " & selWorkerID & ") "
End If
If tempstr <> "" Then
SQLWHERE = " WHERE " & tempstr
End If
End Sub
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -