📄 frmhzsite.frm
字号:
sPN = "": cDW = "": cDJ = 0: lSL = 0: cJE = 0: sType = "": cJGF = "" '清空
If EF.EOF Then
bExit = True
Exit For '退出
End If
If H > nPrintLine Then
Exit Do
End If
If Not IsNull(EF.Fields("DType")) Then '不为空时
sType = EF.Fields("DType")
End If
If Not IsNull(EF.Fields("Name")) Then '不为空时
sPN = EF.Fields("Name")
End If
If Not IsNull(EF.Fields("Price")) Then '不为空时
cDJ = Trim(str(EF.Fields("Price")))
End If
If Not IsNull(EF.Fields("Quantys")) Then '不为空时
lSL = Trim(str(EF.Fields("Quantys")))
End If
If Not IsNull(EF.Fields("Unit")) Then '不为空时
cDW = EF.Fields("Unit")
End If
If Not IsNull(EF.Fields("JGFs")) Then '不为空时
cJGF = Trim(str(EF.Fields("JGFs")))
End If
If Not IsNull(EF.Fields("Amoss")) Then '不为空时
cJE = Trim(str(EF.Fields("Amoss")))
End If
Printer.Font = "宋体"
Printer.FontSize = 9
Printer.FontBold = False
If sType <> sType1 Then
sType1 = sType
Printer.CurrentX = 6 + XLeft
Printer.CurrentY = 43 + (H * 6) + XTop
Printer.Print " " & sType
End If
Printer.CurrentX = 27 + XLeft
Printer.CurrentY = 43 + (H * 6) + XTop
Printer.Print " " & sPN
Printer.CurrentY = 43 + (H * 6) + XTop
Printer.CurrentX = 65 + XLeft
Printer.Print cDW
Printer.CurrentY = 43 + (H * 6) + XTop
Printer.CurrentX = 75 + XLeft
Printer.Print cDJ
Printer.CurrentY = 43 + (H * 6) + XTop
Printer.CurrentX = 83 + XLeft
Printer.Print lSL
Printer.CurrentY = 43 + (H * 6) + XTop
Printer.CurrentX = 89 + XLeft
Printer.Print cJGF
Printer.CurrentY = 43 + (H * 6) + XTop
Printer.CurrentX = 98 + XLeft
Printer.Print cJE
H = H + 1
EF.MoveNext
Loop
'最后一页打印合计
If x = lPaperCountS Then '最后一页
Printer.FontSize = 9
Printer.FontName = "黑体"
Printer.FontBold = True
Printer.CurrentY = 43 + ((H + 1) * 6) + XTop '200 + xtop
Printer.CurrentX = 8 + XLeft
Printer.Print " 消费金额:" & curHJ & "元"
Printer.CurrentY = 43 + ((H + 1) * 6) + XTop '200 + xtop
Printer.CurrentX = 45 + XLeft
Printer.Print "包厢费:" & curPackage & "元"
Printer.CurrentY = 43 + ((H + 1) * 6) + XTop
Printer.CurrentX = 70 + XLeft
Printer.Print "金额合计:" & CStr(curHJ + curPackage) & "元"
'打印营业员
Printer.CurrentY = 43 + ((H + 2) * 6) + XTop '200 + xtop
Printer.CurrentX = 8 + XLeft
Printer.Print " 营业员:" & sWaiter
If iDiscount <> 100 Then
Printer.CurrentY = 43 + ((H + 2) * 6) + XTop
Printer.CurrentX = 45 + XLeft
Printer.Print iDiscount & "%折"
End If
Printer.CurrentY = 43 + ((H + 2) * 6) + XTop '200 + xtop
Printer.CurrentX = 70 + XLeft
Printer.Print "应付金额:" & curSfPay & "元"
Printer.CurrentY = 43 + ((H + 3) * 6) + XTop '200 + xtop
Printer.CurrentX = 8 + XLeft
Printer.Print " 实收现金:" & curSfPay & "元"
Printer.CurrentY = 43 + ((H + 3) * 6) + XTop '200 + xtop
Printer.CurrentX = 45 + XLeft
Printer.Print "找零:0元"
Printer.CurrentY = 43 + ((H + 3) * 6) + XTop '200 + xtop
Printer.CurrentX = 70 + XLeft
Printer.Print " 操作员:" & sMyOperator
End If
'弹出纸
Printer.EndDoc
If bExit = True Then '无记录时退出
Exit For
End If
Next
EF.Close
DB.Close
Set EF = Nothing
Set DB = Nothing
MsgBox "打印帐单完毕! ", vbInformation
'打印完成
Exit Sub
PrintErr:
MsgBox "对不起,打印错误:" & Err.Description & vbCrLf _
& "请设置打印纸的大小为:长 21 厘米宽 11 厘米。 ", vbCritical
End Sub
Private Sub mnuSearch_Click()
Call cmdSearch_Click
End Sub
Private Sub mnuView_Click()
Call lstPro_DblClick
End Sub
'结帐后打印帐单
Public Sub AfterPrintSmallSheet(nID As Long)
On Error GoTo PrintErr
If nID = 0 Then
MsgBox "消费单为空,不能打印? ", vbInformation
Exit Sub
End If
Dim sWaiter As String
'首先给出当前桌的消费记录
Dim iDiscount As Integer, iArrearage As Integer
Dim curSfPay As Currency, curYinPay As Currency, curPackage As Currency, curHJ As Currency
Dim sSQL As String, sMyGuestName As String, sMyGuestID As String, sMyOperator As String, sMysite As String
Dim sMypaymethod As String
Dim dMyDate As Date
'当前座位,当前菜单中内容,每ID代表一桌消费
sSQL = "Select Site.Site,Site.Date,Site.IsArrearage,Site.lHour,Site.lMinute,Site.CheckOutman,Site.MID," _
& "tbdMember.Name,Site.JeAmo,Site.DCJE,Site.tmpStr,Site.SFAmo,Site.Waiter,Site.BXF,Site.Discount " _
& " From Site Left Join tbdMember On Site.MID=tbdMember.ID Where Site.ID=" & nID
Dim DB As Connection, EF As Recordset
Set DB = CreateObject("ADODB.Connection")
Set EF = CreateObject("ADODB.Recordset")
DB.Open Constr
EF.Open sSQL, DB, adOpenStatic, adLockReadOnly, adCmdText
If Not (EF.EOF And EF.BOF) Then
sMysite = EF("Site")
iArrearage = EF("IsArrearage")
sMypaymethod = EF("tmpStr")
If Not IsNull(EF("Date")) Then
dMyDate = EF("Date")
Else
dMyDate = Date
End If
sWaiter = NullValue(EF("Waiter"))
'ftDate.Text = EF("Date")
'ftHour.Text = EF("lHour")
'ftMinute.Text = EF("lMinute")
sMyOperator = NullValue(EF("checkOutMan"))
sMyGuestID = NullValue(EF("MID"))
sMyGuestName = NullValue(EF("Name"))
curHJ = EF("DCJE") '点菜金额
curPackage = NullValue(EF("BXF")) '包厢
curSfPay = EF("SFAmo") '实付
'ftWaiter.Text = NullValue(EF("Waiter"))
iDiscount = EF("Discount")
End If
EF.Close
Set EF = Nothing
DB.Close
Set DB = Nothing
'打印格式
Dim bExit As Boolean
Dim sBB As String
Set DB = CreateObject("ADODB.Connection")
DB.Open Constr
sBB = "Delete From prtCust" '清空所有数据
DB.Execute sBB
Set EF = CreateObject("ADODB.Recordset")
EF.Open "SELECT DType AS DType, Name AS Name, Unit AS Unit, Price AS Price, Sum(Quanty) AS Quantys, Sum(JGF) AS JGFs, Sum(Amos) AS Amoss From Cust WHERE SheelID=" & nID & " GROUP BY DType, Name, Unit, Price", DB, adOpenStatic, adLockReadOnly, adCmdText
Dim lPaperCountS As Integer, lPaperCount As Integer
Dim lCurrent As Integer
If EF.BOF And EF.EOF Then '没有记录时 退出
EF.Close
Set EF = Nothing
DB.Close
Set DB = Nothing
MsgBox "没有消费记录,不能打印。 ", vbExclamation
Exit Sub
End If
Dim x As Integer
Dim sPN As String
Dim cDJ As String
Dim lSL As String
Dim cJE As String
Dim cDW As String
Dim H As Integer
Dim cJGF As String
Dim sType As String '类型
Dim sType1 As String '类型
'开始打印*************************************************************
Printer.ScaleMode = 6 'mm
'打印单位名称
Printer.FontSize = 20
Printer.FontName = "黑体"
Printer.FontBold = True
Printer.CurrentX = ((70 - (Printer.TextWidth(sUnit))) / 2)
Printer.CurrentY = 15 + xSmallTop
'NoTitle为不打印标题,客户可自行给出
'NoTitle=1 Or -1
If NoTitle = False Then
Printer.Print sUnit
End If
Printer.FontSize = 9
Printer.FontName = "黑体"
Printer.FontBold = True
Printer.CurrentX = xSmallLeft
Printer.CurrentY = 26 + xSmallTop
Printer.Print "单号:" & nID
If iArrearage = 1 Then
'打印挂帐
Printer.CurrentX = 23 + xSmallLeft
Printer.CurrentY = 26 + xSmallTop
Printer.Print "挂帐"
Else
Printer.CurrentX = 23 + xSmallLeft
Printer.CurrentY = 26 + xSmallTop
Printer.Print "结帐:" & sMypaymethod
End If
Printer.CurrentX = 45 + xSmallLeft
Printer.CurrentY = 26 + xSmallTop
Printer.Print Format(dMyDate, "Long Date")
'桌号
Printer.CurrentX = xSmallLeft
Printer.CurrentY = 32 + xSmallTop
Printer.Print "营业员:" & sWaiter
'会员信息
If Trim(sMyGuestID) <> "" And Trim(sMyGuestName) <> "" Then
Printer.CurrentX = 23 + xSmallLeft
Printer.CurrentY = 32 + xSmallTop
Printer.Print "会员:" & sMyGuestID
Printer.CurrentX = 50 + xSmallLeft
Printer.CurrentY = 32 + xSmallTop
Printer.Print "姓名:" & sMyGuestName
End If
Printer.Line (xSmallLeft, 37 + xSmallTop)-(xSmallLeft + 70, 37 + xSmallTop), 2, BF
'打印菜单标题
'Printer.CurrentX = 8 + xSmallLeft
'Printer.CurrentY = 40 + xSmallTop
'Printer.FontBold = False
'Printer.Font = "宋体"
'Printer.Print "菜单类别 "
Printer.CurrentX = xSmallLeft
Printer.CurrentY = 39 + xSmallTop
Printer.Print "菜 名 "
Printer.CurrentX = 22 + xSmallLeft
Printer.CurrentY = 39 + xSmallTop
Printer.Print "单位"
Printer.CurrentX = 29 + xSmallLeft
Printer.CurrentY = 39 + xSmallTop
Printer.Print "单价"
Printer.CurrentX = 40 + xSmallLeft
Printer.CurrentY = 39 + xSmallTop
Printer.Print "数量"
Printer.CurrentX = 49 + xSmallLeft
Printer.CurrentY = 39 + xSmallTop
Printer.Print "加工"
Printer.CurrentX = 57 + xSmallLeft
Printer.CurrentY = 39 + xSmallTop
Printer.Print "金额"
'-----------------------------------------
'打印所有菜单
Do While Not EF.EOF
sPN = "": cDW = "": cDJ = 0: lSL = 0: cJE = 0: sType = "": cJGF = "" '清空
If Not IsNull(EF.Fields("Name")) Then '不为空时
sPN = EF.Fields("Name")
End If
If Not IsNull(EF.Fields("Price")) Then '不为空时
cDJ = Trim(str(EF.Fields("Price")))
End If
If Not IsNull(EF.Fields("Quantys")) Then '不为空时
lSL = Trim(str(EF.Fields("Quantys")))
End If
If Not IsNull(EF.Fields("Unit")) Then '不为空时
cDW = EF.Fields("Unit")
End If
If Not IsNull(EF.Fields("JGFs")) Then '不为空时
cJGF = Trim(str(EF.Fields("JGFs")))
End If
If Not IsNull(EF.Fields("Amoss")) Then '不为空时
cJE = Trim(str(EF.Fields("Amoss")))
End If
Printer.Font = "宋体"
Printer.FontSize = 9
Printer.FontBold = False
'If sType <> sType1 Then
' sType1 = sType
' Printer.CurrentX = 6 + xSmallLeft
' Printer.CurrentY = 43 + (H * 6) + xSmallTop
' Printer.Print " " & sType
'End If
Printer.CurrentX = xSmallLeft
Printer.CurrentY = 43 + (H * 6) + xSmallTop
Printer.Print sPN
Printer.CurrentX = 23 + xSmallLeft
Printer.CurrentY = 43 + (H * 6) + xSmallTop
Printer.Print cDW
Printer.CurrentX = 30 + xSmallLeft
Printer.CurrentY = 43 + (H * 6) + xSmallTop
Printer.Print cDJ
Printer.CurrentX = 41 + xSmallLeft
Printer.CurrentY = 43 + (H * 6) + xSmallTop
Printer.Print lSL
Printer.CurrentX = 51 + xSmallLeft
Printer.CurrentY = 43 + (H * 6) + xSmallTop
Printer.Print cJGF
Printer.CurrentX = 58 + xSmallLeft
Printer.CurrentY = 43 + (H * 6) + xSmallTop
Printer.Print cJE
H = H + 1
EF.MoveNext
Loop
Printer.FontSize = 9
Printer.FontName = "黑体"
Printer.FontBold = True
Printer.CurrentX = xSmallLeft
Printer.CurrentY = 43 + ((H) * 6) + xSmallTop '200 + xsmalltop
Printer.Print "消费:" & curHJ & "元"
Printer.CurrentX = 25 + xSmallLeft
Printer.CurrentY = 43 + ((H) * 6) + xSmallTop '200 + xsmalltop
Printer.Print "包厢费:" & curPackage & "元"
Printer.CurrentX = 45 + xSmallLeft
Printer.CurrentY = 43 + ((H) * 6) + xSmallTop
Printer.Print "合计:" & CStr(curHJ + curPackage) & "元"
If iDiscount <> 100 Then
Printer.CurrentX = 25 + xSmallLeft
Printer.CurrentY = 43 + ((H + 1) * 6) + xSmallTop
Printer.Print iDiscount & "%折"
End If
Printer.CurrentX = 45 + xSmallLeft
Printer.CurrentY = 43 + ((H + 1) * 6) + xSmallTop '200 + xsmalltop
Printer.Print "应付:" & curSfPay & "元"
Printer.CurrentX = xSmallLeft
Printer.CurrentY = 43 + ((H + 2) * 6) + xSmallTop '200 + xsmalltop
Printer.Print "实收:" & curSfPay & "元"
Printer.CurrentX = 25 + xSmallLeft
Printer.CurrentY = 43 + ((H + 2) * 6) + xSmallTop '200 + xsmalltop
Printer.Print "找零:0元"
Printer.CurrentX = 45 + xSmallLeft
Printer.CurrentY = 43 + ((H + 2) * 6) + xSmallTop '200 + xsmalltop
Printer.Print "收银:" & sMypaymethod
'打印酒店联系电话与地址
Printer.Font = "宋体"
Printer.FontSize = "10"
Printer.Line (xSmallLeft, 48 + ((H + 2) * 6) + xSmallTop)-(xSmallLeft + 70, 48 + ((H + 2) * 6) + xSmallTop), 2, BF
Printer.Line (xSmallLeft, 49 + ((H + 2) * 6) + xSmallTop)-(xSmallLeft + 70, 49 + ((H + 2) * 6) + xSmallTop), 2, BF
Printer.CurrentX = xSmallLeft
Printer.CurrentY = 45 + ((H + 3) * 6) + xSmallTop '200 + xsmalltop
Printer.Print "电话:" & sCompanyTel
Printer.CurrentX = xSmallLeft
Printer.CurrentY = 45 + ((H + 4) * 6) + xSmallTop '200 + xsmalltop
Printer.Print "地址:" & sCompanyAdd
'弹出纸
Printer.EndDoc
'打印结束***********************************************************************
EF.Close
DB.Close
Set EF = Nothing
Set DB = Nothing
MsgBox "打印小单完毕! ", vbInformation
'打印完成
Exit Sub
PrintErr:
MsgBox "对不起,打印错误:" & Err.Description, vbCritical
End Sub
Private Sub PrintSmallSheet_Click()
On Error GoTo PrintErr
If lstPro.ListItems.Count = 0 Then
MsgBox "单据为空,不能查看? ", vbExclamation
Exit Sub
End If
If lstPro.SelectedItem.Text = "" Then
MsgBox "请选择任一单据后继续? ", vbExclamation
Exit Sub
End If
AfterPrintSmallSheet lstPro.SelectedItem.Text
Exit Sub
PrintErr:
MsgBox "对不起,打印单据错误:" & Err.Description, vbCritical
End Sub
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -