📄 frmprint.frm
字号:
End If
'打印查询内容
PrintGrid
End Sub
Private Sub cmdRefresh_Click()
'给出需要飞单的菜单明细
ConfigGrid
End Sub
Private Sub Form_Load()
GetFormSet Me, Screen
IsRunning = False
'刷新飞单列表
ConfigGrid
End Sub
Private Sub Form_Unload(Cancel As Integer)
SaveFormSet Me
Timer1.Interval = 0
End Sub
Private Sub Timer1_Timer()
If IsRunning = True Then Exit Sub
'给出需要飞单的菜单明细
ConfigGrid
End Sub
Private Sub ConfigGrid()
On Error GoTo Err_init
Dim sSQL As String
IsRunning = True
shpCirCle.Visible = True '显示操作状态
shpCirCle.Refresh
'按每餐桌打印
sSQL = "Select * From ptCust Order By Site,DType"
Dim DB As Connection, EF As Recordset
lstPro.ListItems.Clear
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
Do While Not EF.EOF()
InsertToMenuList lstPro, EF.Fields("ID"), EF.Fields("CID"), EF.Fields("Name"), _
EF.Fields("Price"), EF.Fields("Quanty"), EF.Fields("JGF"), EF.Fields("Amos"), _
EF("AtTime"), NullValue(EF("DOper")), EF("Site")
EF.MoveNext
Loop
End If
EF.Close
Set EF = Nothing
DB.Close
Set DB = Nothing
IsRunning = False
shpCirCle.Visible = False
Exit Sub
Err_init:
IsRunning = False
shpCirCle.Visible = False
MsgBox "列出飞单内容错误!请按『刷新』按钮刷新。" & vbCrLf & vbCrLf & Err.Description, vbCritical
End Sub
Private Sub InsertToMenuList(tmpView As ListView, sText1 As String, sText2 As String, sText3 As String _
, sText4 As String, sText5 As String, sText6 As String, sText7 As String, sText8 As String _
, sText9 As String, sText10 As String)
On Error Resume Next
Dim lstTmp As ListItem
Set lstTmp = tmpView.ListItems.Add
lstTmp.Text = sText1
lstTmp.SubItems(1) = sText2
lstTmp.SubItems(2) = sText3
lstTmp.SubItems(3) = Format(sText4, "0.0")
lstTmp.SubItems(4) = Format(sText5, "0.0")
lstTmp.SubItems(5) = Format(sText6, "0.0")
lstTmp.SubItems(6) = Format(sText7, "0.0")
lstTmp.SubItems(7) = sText8
lstTmp.SubItems(8) = sText9
lstTmp.SubItems(9) = sText10
End Sub
Private Sub Timer2_Timer()
If IsPrinting = True Then Exit Sub
'打印飞单的菜单明细
PrintGrid
End Sub
'打印查询到的菜单明细
Private Sub PrintGrid()
On Error GoTo Err_init
Dim sSQL As String
IsPrinting = True
'按每餐桌打印,先点先打
sSQL = "Select * From ptCust Order By Site,DType,ID"
Dim DB As Connection, EF As Recordset
Dim tmpEF As Recordset
Set DB = CreateObject("ADODB.Connection")
Set EF = CreateObject("ADODB.Recordset")
Set tmpEF = CreateObject("ADODB.Recordset")
DB.Open Constr
EF.Open sSQL, DB, adOpenStatic, adLockOptimistic, adCmdText
Dim sDupSite As String
Dim xTmpTop As Long '重复高度
sDupSite = ""
Set tmpEF = EF.Clone '克隆一个相同的记录集
If Not (tmpEF.EOF And tmpEF.BOF) Then
Do While Not tmpEF.EOF()
'打印当前的列表
'If PrintSheet(tmpEF("ID")) = False Then
'打印不正常时退出。
' Exit Do
'End If
'相同座位时不重复打印
If sDupSite <> tmpEF("Site") Then
If sDupSite <> "" Then
Printer.Line (xSmallLeft, xSmallTop + 18 + xTmpTop)-(xSmallLeft + 70, xSmallTop + 18 + xTmpTop), 2, BF
Printer.CurrentX = xSmallLeft + 40
Printer.CurrentY = xSmallTop + 20 + xTmpTop
Printer.Print "时间:" & Time
Printer.EndDoc
End If
xTmpTop = 0
sDupSite = tmpEF("Site")
Printer.ScaleMode = 6 '厘米
Printer.Font = "黑体"
Printer.FontBold = True
Printer.FontSize = "10"
Printer.CurrentX = xSmallLeft
Printer.CurrentY = xSmallTop
Printer.Print "座位:" & tmpEF("Site")
Printer.CurrentX = xSmallLeft + 40
Printer.CurrentY = xSmallTop
Printer.Print "操作员:" & tmpEF("DOper")
Printer.Font = "宋体"
Printer.FontSize = "9"
Printer.CurrentX = xSmallLeft
Printer.CurrentY = xSmallTop + 6
Printer.Print "菜名"
Printer.CurrentX = xSmallLeft + 15
Printer.CurrentY = xSmallTop + 6
Printer.Print "单位"
Printer.CurrentX = xSmallLeft + 23
Printer.CurrentY = xSmallTop + 6
Printer.Print "单价"
Printer.CurrentX = xSmallLeft + 32
Printer.CurrentY = xSmallTop + 6
Printer.Print "数量"
Printer.CurrentX = xSmallLeft + 39
Printer.CurrentY = xSmallTop + 6
Printer.Print "加工"
Printer.CurrentX = xSmallLeft + 46
Printer.CurrentY = xSmallTop + 6
Printer.Print "金额"
Printer.CurrentX = xSmallLeft + 55
Printer.CurrentY = xSmallTop + 6
Printer.Print "菜分类"
End If
Printer.CurrentX = xSmallLeft
Printer.CurrentY = xSmallTop + 12 + xTmpTop
Printer.Print tmpEF("Name")
Printer.CurrentX = xSmallLeft + 18
Printer.CurrentY = xSmallTop + 12 + xTmpTop
Printer.Print tmpEF("Unit")
Printer.CurrentX = xSmallLeft + 22
Printer.CurrentY = xSmallTop + 12 + xTmpTop
Printer.Print tmpEF("Price")
Printer.CurrentX = xSmallLeft + 32
Printer.CurrentY = xSmallTop + 12 + xTmpTop
Printer.Print tmpEF("Quanty")
Printer.CurrentX = xSmallLeft + 40
Printer.CurrentY = xSmallTop + 12 + xTmpTop
Printer.Print tmpEF("JGF")
Printer.CurrentX = xSmallLeft + 44
Printer.CurrentY = xSmallTop + 12 + xTmpTop
Printer.Print tmpEF("Amos")
Printer.CurrentX = xSmallLeft + 55
Printer.CurrentY = xSmallTop + 12 + xTmpTop
Printer.Print tmpEF("DType")
'删除当前记录
tmpEF.Delete adAffectCurrent
tmpEF.MoveNext
xTmpTop = xTmpTop + 6
Loop
End If
If sDupSite <> "" Then
Printer.Line (xSmallLeft, xSmallTop + 18 + xTmpTop)-(xSmallLeft + 70, xSmallTop + 18 + xTmpTop), 2, BF
Printer.CurrentX = xSmallLeft + 40
Printer.CurrentY = xSmallTop + 20 + xTmpTop
Printer.Print "时间:" & Time
Printer.EndDoc
End If
EF.Close
tmpEF.Close
Set EF = Nothing
Set tmpEF = Nothing
DB.Close
Set DB = Nothing
IsPrinting = False
Exit Sub
Err_init:
IsPrinting = False
MsgBox "打印飞单内容错误!请按『打印』按钮。" & vbCrLf & vbCrLf & Err.Description, vbCritical
End Sub
Private Function PrintSheet(nMenuID As Long) As Boolean
On Error GoTo PrintErr
Dim pDB As Connection
Dim pRS As Recordset
Dim sTMp As String
Set pDB = CreateObject("ADODB.Connection")
Set pRS = CreateObject("ADODB.Recordset")
pDB.Open Constr
pRS.Open "Select * from ptCust Where ID=" & nMenuID, pDB, adOpenStatic, adLockOptimistic, adCmdText
If Not (pRS.EOF And pRS.BOF) Then
Printer.ScaleMode = 6 '厘米
Printer.Font = "黑体"
Printer.FontBold = True
Printer.FontSize = "10"
Printer.CurrentX = xSmallLeft
Printer.CurrentY = xSmallTop
Printer.Print "座位:" & pRS("Site")
Printer.CurrentX = xSmallLeft + 40
Printer.CurrentY = xSmallTop
Printer.Print "操作员:" & pRS("DOper")
Printer.Font = "宋体"
Printer.FontSize = "9"
Printer.CurrentX = xSmallLeft
Printer.CurrentY = xSmallTop + 6
Printer.Print "菜名"
Printer.CurrentX = xSmallLeft + 15
Printer.CurrentY = xSmallTop + 6
Printer.Print "单位"
Printer.CurrentX = xSmallLeft + 23
Printer.CurrentY = xSmallTop + 6
Printer.Print "单价"
Printer.CurrentX = xSmallLeft + 32
Printer.CurrentY = xSmallTop + 6
Printer.Print "数量"
Printer.CurrentX = xSmallLeft + 39
Printer.CurrentY = xSmallTop + 6
Printer.Print "加工"
Printer.CurrentX = xSmallLeft + 46
Printer.CurrentY = xSmallTop + 6
Printer.Print "金额"
Printer.CurrentX = xSmallLeft + 55
Printer.CurrentY = xSmallTop + 6
Printer.Print "菜分类"
Printer.CurrentX = xSmallLeft
Printer.CurrentY = xSmallTop + 12
Printer.Print pRS("Name")
Printer.CurrentX = xSmallLeft + 18
Printer.CurrentY = xSmallTop + 12
Printer.Print pRS("Unit")
Printer.CurrentX = xSmallLeft + 22
Printer.CurrentY = xSmallTop + 12
Printer.Print pRS("Price")
Printer.CurrentX = xSmallLeft + 32
Printer.CurrentY = xSmallTop + 12
Printer.Print pRS("Quanty")
Printer.CurrentX = xSmallLeft + 40
Printer.CurrentY = xSmallTop + 12
Printer.Print pRS("JGF")
Printer.CurrentX = xSmallLeft + 44
Printer.CurrentY = xSmallTop + 12
Printer.Print pRS("Amos")
Printer.CurrentX = xSmallLeft + 55
Printer.CurrentY = xSmallTop + 12
Printer.Print pRS("DType")
Printer.Line (xSmallLeft, xSmallTop + 18)-(xSmallLeft + 70, xSmallTop + 18), 2, BF
Printer.CurrentX = xSmallLeft + 40
Printer.CurrentY = xSmallTop + 20
Printer.Print "时间:" & pRS("ATTime")
Printer.EndDoc
'删除当前记录
pRS.Delete adAffectCurrent
End If
pRS.Close
Set pRS = Nothing
pDB.Close
Set pDB = Nothing
PrintSheet = True
Exit Function
PrintErr:
PrintSheet = False
MsgBox "打印错误: " & Err.Description & vbCrLf & vbCrLf & "系统将在10秒钟后自动重打。 ", vbCritical
End Function
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -