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

📄 modprint.bas

📁 VISUAL BASIC 6 实现的自动化控制系统程序. 里面包含了好几个OCX源代码.我5年前的作品.现在看起来有点垃圾了.
💻 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 + -