📄 modprint.bas
字号:
Attribute VB_Name = "ModPrint"
Option Explicit
Public Sub DoPrint(r As ADODB.Recordset, Label1 As String)
Dim y As Long
Dim OffSetX As Integer
Dim OffSetY As Integer
'*********************************************************************
'Printer.PaintPicture frmPnt.Picture1.Picture, 0, 0, frmPnt.Picture1.Width * 1.5, frmPnt.Picture1.Height * 1.5
'********************
'Dim r As ADODB.Recordset
'Set r = AdoMth.Recordset
'偏移量
OffSetX = 2500
OffSetY = 2000
Screen.MousePointer = 11
Printer.DrawWidth = 1.5
If Len(Label1) > 15 Then
Printer.CurrentX = OffSetX + 600
Else
Printer.CurrentX = OffSetX + 1000
End If
Printer.CurrentY = OffSetY
Printer.FontUnderline = True
Printer.ForeColor = vbRed
Printer.FontSize = 16
Printer.Print Label1
Printer.FontUnderline = False
Printer.FontSize = 12
Printer.ForeColor = vbBlue
Printer.Line (OffSetX, OffSetY + 1000)-(OffSetX + 5400, OffSetY + 1000)
Printer.DrawWidth = 3
Printer.CurrentY = Printer.CurrentY + 50
Printer.CurrentX = OffSetX + 100
Printer.Print r.Fields(1).Name & Space(4); r.Fields(2).Name _
& Space(7); r.Fields(3).Name & Space(5); r.Fields(4).Name
y = Printer.CurrentY + 30
Printer.Line (OffSetX, y)-(OffSetX + 5400, y)
Printer.CurrentY = Printer.CurrentY + 50
Printer.CurrentX = OffSetX + 100
Do While r.EOF = False
Printer.Print Fmat(r.Fields(1), 5); FmatTime(r.Fields(2)); Space(1); Fmat(Format(r.Fields(3), "0.00"), 12); "¥"; Fmat(Format(r.Fields(4), "0.00"), 9)
y = Printer.CurrentY + 30
Printer.Line (OffSetX, y)-(OffSetX + 5400, y)
Printer.CurrentY = Printer.CurrentY + 50
Printer.CurrentX = OffSetX + 100
r.MoveNext
Loop
Printer.CurrentY = Printer.CurrentY + 150
Printer.CurrentX = OffSetX + 1700
Printer.Print "● 瑞安市场桥自动灌溉信息中心 ●"
Printer.CurrentX = OffSetX + 2400
Printer.Print Format(Now, "yyyy年mm月dd日"); Space(2); Format(Now, "h:m:s")
Printer.DrawWidth = 3
Printer.Line (OffSetX, OffSetY + 1000)-(OffSetX, y)
Printer.DrawWidth = 3
Printer.Line (OffSetX + 930, OffSetY + 1000)-(OffSetX + 930, y)
Printer.Line (OffSetX + 930 + 1450, OffSetY + 1000)-(OffSetX + 930 + 1450, y)
Printer.Line (OffSetX + 930 + 1450 + 1450, OffSetY + 1000)-(OffSetX + 930 + 1450 + 1450, y)
Printer.DrawWidth = 3
Printer.Line (OffSetX + 930 + 1450 + 1450 + 1570, OffSetY + 1000)-(OffSetX + 930 + 1450 + 1450 + 1570, y)
Printer.Line (OffSetX, y)-(OffSetX + 5400, y)
Printer.DrawWidth = 3
r.MoveFirst
Printer.EndDoc
Screen.MousePointer = 0
End Sub
Public Sub PrintDay(r As ADODB.Recordset, Label As String)
On Error Resume Next
Dim y As Single
Dim OffSetX As Integer
Dim OffSetY As Integer
'Dim r As ADODB.Recordset
'Set r = Adoshow.Recordset
Screen.MousePointer = 11
OffSetX = 2500
OffSetY = 2000
Printer.CurrentX = OffSetX + 1000
Printer.CurrentY = OffSetY
Printer.FontSize = 16
Printer.ForeColor = vbRed
Printer.FontUnderline = True
Printer.Print Label
Printer.FontUnderline = False
Printer.ForeColor = vbBlack
Printer.FontSize = 12
Printer.DrawWidth = 3
Printer.Line (OffSetX, OffSetY + 1000)-(OffSetX + 7880, OffSetY + 1000)
Printer.DrawWidth = 3
Printer.CurrentY = Printer.CurrentY + 50
Printer.CurrentX = OffSetX + 150
Printer.Print r.Fields(1).Name & Space(3); r.Fields(2).Name _
& Space(5); r.Fields(3).Name & Space(6); r.Fields(4).Name & Space(7); r.Fields(5).Name & Space(3); r.Fields(6).Name
y = Printer.CurrentY + 30
Printer.Line (OffSetX, y)-(OffSetX + 7880, y)
Printer.CurrentY = Printer.CurrentY + 50
Printer.CurrentX = OffSetX + 100
Do While r.EOF = False
Printer.Print Space(1); Fmat(r.Fields(1), 5); Fmat(Format(r.Fields(2), "hh:mm:ss"), 13); _
Fmat(Format(r.Fields(3), "hh:mm:ss"), 11); Fmat(Format(r.Fields(4), "yyyy年m月d日"), 11); _
Fmat(Format(r.Fields(5), "0.00"), 10); "¥" & Format(r.Fields(6), "0.00")
y = Printer.CurrentY + 30
Printer.Line (OffSetX, y)-(OffSetX + 7880, y)
Printer.CurrentY = Printer.CurrentY + 50
Printer.CurrentX = OffSetX + 100
r.MoveNext
Loop
Printer.DrawWidth = 3
Printer.Line (OffSetX, OffSetY + 1000)-(OffSetX, y)
Printer.DrawWidth = 3
'器件名
Printer.Line (OffSetX + 1030, OffSetY + 1000)-(OffSetX + 1030, y)
'开启时间
Printer.Line (OffSetX + 2500, OffSetY + 1000)-(OffSetX + 2500, y)
'关闭时间
Printer.Line (OffSetX + 3930, OffSetY + 1000)-(OffSetX + 3930, y)
'日期
Printer.Line (OffSetX + 5530, OffSetY + 1000)-(OffSetX + 5530, y)
'用水量
Printer.Line (OffSetX + 6730, OffSetY + 1000)-(OffSetX + 6730, y)
Printer.DrawWidth = 3
Printer.Line (OffSetX + 7880, OffSetY + 1000)-(OffSetX + 7880, y)
Printer.Line (OffSetX, y)-(OffSetX + 5280, y)
Printer.DrawWidth = 1
Printer.CurrentY = Printer.CurrentY + 250
Printer.CurrentX = OffSetX + 4000
Printer.FontUnderline = True
Printer.ForeColor = vbRed
Printer.Print "● 瑞安市场桥自动灌溉信息中心 ●"
Printer.CurrentX = OffSetX + 4800
Printer.Print Format(Now, "yyyy年mm月dd日"); Space(2); Format(Now, "h:m:s")
r.MoveFirst
Printer.EndDoc
Screen.MousePointer = 0
End Sub
'格式化字符串(定长)
Public Function Fmat(ByVal s As String, I As Integer) As String
Dim j As Integer
Dim t As String
For j = 1 To I
t = Mid(s, j, 1)
If t <> "" Then
Fmat = Fmat & t
Else
Fmat = Fmat & " "
End If
Next
End Function
'格式化时间字符串(定长)
Public Function FmatTime(myTimeSel) As String
Select Case SelectCountIndex
Case 0 '日表
FmatTime = Space(1) & Format(myTimeSel, "yy年m月d日") & Space(2)
Case 1 '月表
FmatTime = Space(1) & Format(myTimeSel, "yyyy年mm月") & Space(3)
Case 2 '年表
FmatTime = Space(2) & myTimeSel & Space(3)
Case 3
End Select
End Function
'If isflow = False Then
' Printer.DrawWidth = 3
' Printer.Line (OffSetX, OffSetY + 1000)-(OffSetX + 5280, OffSetY + 1000)
' Printer.DrawWidth = 3
' Printer.CurrentY = Printer.CurrentY + 50
' Printer.CurrentX = OffSetX + 100
' Printer.Print r.Fields(1).Name & Space(4); r.Fields(2).Name _
' & Space(7); r.Fields(3).Name & Space(4); r.Fields(4).Name
' y = Printer.CurrentY + 30
' Printer.Line (OffSetX, y)-(OffSetX + 5280, y)
' Printer.CurrentY = Printer.CurrentY + 50
' Printer.CurrentX = OffSetX + 100
' Do While r.EOF = False
' Printer.Print Fmat(r.Fields(1), 8); Space(1); Fmat(Format(r.Fields(2), "¥#,##0.00"), 12); Fmat(Format(r.Fields(3), "0.00"), 12); Fmat(r.Fields(4), 9)
' y = Printer.CurrentY + 30
' Printer.Line (OffSetX, y)-(OffSetX + 5280, y)
' Printer.CurrentY = Printer.CurrentY + 50
' Printer.CurrentX = OffSetX + 100
' r.MoveNext
' Loop
' Printer.DrawWidth = 3
' Printer.Line (OffSetX, OffSetY + 1000)-(OffSetX, y)
' Printer.DrawWidth = 2
' Printer.Line (OffSetX + 930, OffSetY + 1000)-(OffSetX + 930, y)
' Printer.Line (OffSetX + 2380, OffSetY + 1000)-(OffSetX + 2380, y) '*******
' Printer.Line (OffSetX + 3930, OffSetY + 1000)-(OffSetX + 3930, y)
' Printer.DrawWidth = 3
' Printer.Line (OffSetX + 5280, OffSetY + 1000)-(OffSetX + 5280, y)
' Printer.Line (OffSetX, y)-(OffSetX + 5280, y)
' Printer.DrawWidth = 1
'Else
'end if
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -