📄 jinbin.bas
字号:
Attribute VB_Name = "wt"
Public cnnjinbin As New ADODB.Connection
Public rstjinbin As New ADODB.Recordset
Public flagnumber As Long
Public Function viewprint()
Dim intx, inty As Single
Dim strsql As String
Dim jb As String
Dim jb1, jb2, jb3 As Integer
'用VBA代码控制报表的打印
With printfrm
.ScaleMode = 1
.Width = 10600
.Height = 7400
.ScaleMode = 6
.ScaleTop = 0
.ScaleLeft = 0
.Show
.Font.Size = 14
jb = "津 滨 高 速 公 路"
.CurrentX = 18 + CInt((160 - Len(jb) * 4) / 2)
.CurrentY = 17
printfrm.Print jb
.Font.Bold = True
.Font.Size = 14
jb = "出 口 收 费 员 班 次 报 表"
.CurrentX = 18 + CInt((160 - Len(jb) * 4) / 2)
.CurrentY = 24
printfrm.Print jb
'画表头线
.Font.Size = 12
printfrm.Line (23, 37)-(46, 37)
jb = "站"
.CurrentX = 46
.CurrentY = 33
printfrm.Print jb
intx = 43 + 3 + 8
printfrm.Line (intx, 37)-(intx + 10, 37)
jb = "班"
.CurrentX = intx + 10
.CurrentY = 33
printfrm.Print jb
intx = intx + 14 + 6
printfrm.Line (intx, 37)-(intx + 16, 37)
jb = "班"
.CurrentX = intx + 14
.CurrentY = 33
printfrm.Print jb
intx = intx + 10 + 6 + 20
printfrm.Line (intx - 3, 37)-(intx + 7, 37)
jb = "年"
.CurrentX = intx + 7
.CurrentY = 33
printfrm.Print jb
intx = intx + 7 + 3
printfrm.Line (intx, 37)-(intx + 7, 37)
jb = "月"
.CurrentX = intx + 7
.CurrentY = 33
printfrm.Print jb
intx = intx + 7 + 3
printfrm.Line (intx, 37)-(intx + 7, 37)
jb = "日"
.CurrentX = intx + 7
.CurrentY = 33
printfrm.Print jb
intx = intx + 3 + 7 + 12
.CurrentX = intx
.CurrentY = 33
jb = "姓名:"
printfrm.Print jb
jb = "票面金额"
intx = CInt((25 - Len(jb) * 3) / 2)
intx = intx + 18
inty = 42
.CurrentX = intx
.CurrentY = inty
printfrm.Print jb
jb = "售 出 票 据"
intx = CInt((95 - Len(jb) * 4) / 2)
.CurrentX = intx + 43
.CurrentY = 41
printfrm.Print jb
jb = "弃票"
intx = CInt((15 - Len(jb) * 4) / 2)
intx = intx + 138
inty = 41
.CurrentX = intx
.CurrentY = inty
printfrm.Print jb
jb = "备 注"
intx = CInt((25 - Len(jb) * 4) / 2)
intx = intx + 153
inty = 44
.CurrentX = intx
.CurrentY = inty
printfrm.Print jb
jb = "(元)"
intx = CInt((25 - Len(jb) * 4) / 2)
intx = intx + 18
inty = 47
.CurrentX = intx
.CurrentY = inty
printfrm.Print jb
jb = "起 止 号"
intx = CInt((50 - Len(jb) * 4) / 2)
intx = intx + 43
inty = 48
.CurrentX = intx
.CurrentY = inty
printfrm.Print jb
jb = "张数"
intx = CInt((20 - Len(jb) * 4) / 2)
intx = intx + 93
inty = 48
.CurrentX = intx
.CurrentY = inty
printfrm.Print jb
jb = "金额"
intx = CInt((25 - Len(jb) * 4) / 2)
intx = 113 + intx
inty = 48
.CurrentX = intx
.CurrentY = inty
printfrm.Print jb
jb = "张数"
intx = CInt((15 - Len(jb) * 4) / 2)
intx = 138 + intx
inty = 46.5
.CurrentX = intx
.CurrentY = inty
printfrm.Print jb
jb = "5元"
intx = 18 + CInt((25 - Len(jb)) / 2)
inty = 55
.CurrentX = intx
.CurrentY = inty
printfrm.Print jb
jb = "10元"
intx = 18 + CInt((25 - Len(jb)) / 2)
inty = 62
.CurrentX = intx
.CurrentY = inty
printfrm.Print jb
jb = "15元"
intx = 18 + CInt((25 - Len(jb)) / 2)
inty = 69
.CurrentX = intx
.CurrentY = inty
printfrm.Print jb
jb = "20元"
intx = 18 + CInt((25 - Len(jb)) / 2)
inty = 76
.CurrentX = intx
.CurrentY = inty
printfrm.Print jb
jb = "30元"
intx = 18 + CInt((25 - Len(jb)) / 2)
inty = 83
.CurrentX = intx
.CurrentY = inty
printfrm.Print jb
jb = "合 计"
intx = 18 + CInt((25 - Len(jb)) / 2)
inty = 90
.CurrentX = intx
.CurrentY = inty
printfrm.Print jb
'打印第九行
jb = "应交金额"
intx = 18 + (25 - Len(jb) * 4) / 2
inty = 97
.CurrentX = intx
.CurrentY = inty
printfrm.Print jb
jb = "(大写):"
.CurrentX = 45
.CurrentY = 97
printfrm.Print jb
jb = "(小写):"
.CurrentX = 128
.CurrentY = 97
printfrm.Print jb
'打印第十行
jb = "实交金额"
intx = 18 + CInt((25 - Len(jb) * 4) / 2)
inty = 104
.CurrentX = intx
.CurrentY = inty
printfrm.Print jb
jb = "(大写):"
.CurrentX = 45
.CurrentY = 104
printfrm.Print jb
jb = "(小写):"
.CurrentX = 128
.CurrentY = 104
printfrm.Print jb
'打印第十一行
jb = "票外/长/短款"
intx = 18
inty = 111
.CurrentX = intx
.CurrentY = inty
printfrm.Print jb
jb = "(大写):"
.CurrentX = 45
.CurrentY = 111
printfrm.Print jb
jb = "(小写):"
.CurrentX = 128
.CurrentY = 111
printfrm.Print jb
'打印备注
jb = "收费员:"
intx = 33
inty = 118
.CurrentX = intx
.CurrentY = inty
printfrm.Print jb
jb = "票务员:"
intx = intx + 80
inty = 118
.CurrentX = intx
.CurrentY = inty
printfrm.Print jb
'画表格
'打印表格的横线
printfrm.Line (18, 39)-(178, 39)
printfrm.Line (45, 46)-(138, 46)
printfrm.Line (18, 53)-(178, 53)
printfrm.Line (18, 60)-(178, 60)
printfrm.Line (18, 67)-(178, 67)
printfrm.Line (18, 74)-(178, 74)
printfrm.Line (18, 81)-(178, 81)
printfrm.Line (18, 88)-(178, 88)
printfrm.Line (18, 95)-(178, 95)
printfrm.Line (18, 102)-(178, 102)
printfrm.Line (18, 109)-(178, 109)
printfrm.Line (18, 116)-(178, 116)
'打印表格的竖线
printfrm.Line (18, 39)-(18, 116)
printfrm.Line (45, 39)-(45, 116)
printfrm.Line (93, 46)-(93, 95)
printfrm.Line (113, 46)-(113, 95)
printfrm.Line (138, 39)-(138, 95)
printfrm.Line (153, 39)-(153, 95)
printfrm.Line (178, 39)-(178, 116)
End With
'打印报表的数据
With cnnjinbin
If .State = adStateOpen Then
.Close
End If
.Provider = "microsoft.jet.oledb.4.0"
.ConnectionString = App.Path & "\jinbin.mdb"
.Open
End With
'按降序挑选出刚输入数据库的最新的一条记录
strsql = "select top 1 hjzs,hjje," & _
"station,bz,bc,bh,sxm,riqi,zs5,je5,zs10,je10,zs15,je15,zs20,je20,zs30,je30,ph5,ph10,ph15,ph20,ph30 from data order by bh desc"
With rstjinbin
If .State = adStateOpen Then
.Close
End If
.LockType = adLockReadOnly
.CursorLocation = adUseClient
.CursorType = adOpenDynamic
.ActiveConnection = cnnjinbin
.Open strsql, Options:=adCmdText
Do Until .EOF
'打印5元票起始票号
inty = 54.5
intw = 53
intz = 55.2
inth = 57.5
jb = Trim(.Fields!ph5.Value)
If Len(jb) > 45 Then
intx = 60 + ((50 - Len(jb)) / 2)
printfrm.Font.Size = 6
jb1 = Left(jb, 15)
jb2 = Mid(jb, 17, 15)
jb4 = Right(jb, 15)
printfrm.CurrentX = intx
printfrm.CurrentY = intw
printfrm.Print jb1
printfrm.CurrentX = intx
printfrm.CurrentY = intz
printfrm.Print jb2
printfrm.CurrentX = intx
printfrm.CurrentY = inth
printfrm.Print jb4
ElseIf Len(jb) > 15 Then
intx = 47 + ((50 - Len(jb)) / 2)
printfrm.Font.Size = 8
jb1 = Left(jb, 15)
jb2 = Right(jb, 15)
intw = 53.5
intz = 57
printfrm.CurrentX = intx
printfrm.CurrentY = intw
printfrm.Print jb1
printfrm.CurrentX = intx
printfrm.CurrentY = intz
printfrm.Print jb2
Else
intx = 41 + ((50 - Len(jb) * 2) / 2)
printfrm.Font.Size = 12
printfrm.CurrentX = intx
printfrm.CurrentY = inty
printfrm.Print jb
End If
'打印10元票起始票号
inty = 61.5
intw = 60
intz = 62.2
inth = 64.5
jb = Trim(.Fields!ph10.Value)
If Len(jb) > 45 Then
intx = 60 + ((50 - Len(jb)) / 2)
printfrm.Font.Size = 6
jb1 = Left(jb, 15)
jb2 = Mid(jb, 17, 15)
jb4 = Right(jb, 15)
printfrm.CurrentX = intx
printfrm.CurrentY = intw
printfrm.Print jb1
printfrm.CurrentX = intx
printfrm.CurrentY = intz
printfrm.Print jb2
printfrm.CurrentX = intx
printfrm.CurrentY = inth
printfrm.Print jb4
ElseIf Len(jb) > 15 Then
intx = 47 + ((50 - Len(jb)) / 2)
printfrm.Font.Size = 8
jb1 = Left(jb, 15)
jb2 = Right(jb, 15)
intw = 60.5
intz = 64
printfrm.CurrentX = intx
printfrm.CurrentY = intw
printfrm.Print jb1
printfrm.CurrentX = intx
printfrm.CurrentY = intz
printfrm.Print jb2
Else
intx = 41 + ((50 - Len(jb) * 2) / 2)
printfrm.Font.Size = 12
printfrm.CurrentX = intx
printfrm.CurrentY = inty
printfrm.Print jb
End If
'打印15元票起始票号
inty = 68.5
intw = 67
intz = 69.2
inth = 71.5
jb = Trim(.Fields!ph15.Value)
If Len(jb) > 45 Then
intx = 60 + ((50 - Len(jb)) / 2)
printfrm.Font.Size = 6
jb1 = Left(jb, 15)
jb2 = Mid(jb, 17, 15)
jb4 = Right(jb, 15)
printfrm.CurrentX = intx
printfrm.CurrentY = intw
printfrm.Print jb1
printfrm.CurrentX = intx
printfrm.CurrentY = intz
printfrm.Print jb2
printfrm.CurrentX = intx
printfrm.CurrentY = inth
printfrm.Print jb4
ElseIf Len(jb) > 15 Then
intx = 47 + ((50 - Len(jb)) / 2)
printfrm.Font.Size = 8
jb1 = Left(jb, 15)
jb2 = Right(jb, 15)
intw = 67.5
intz = 71
printfrm.CurrentX = intx
printfrm.CurrentY = intw
printfrm.Print jb1
printfrm.CurrentX = intx
printfrm.CurrentY = intz
printfrm.Print jb2
Else
intx = 41 + ((50 - Len(jb) * 2) / 2)
printfrm.Font.Size = 12
printfrm.CurrentX = intx
printfrm.CurrentY = inty
printfrm.Print jb
End If
'打印20元票起始票号
inty = 75.5
intw = 74
intz = 76.2
inth = 78.5
jb = Trim(.Fields!ph20.Value)
If Len(jb) > 45 Then
intx = 60 + ((50 - Len(jb)) / 2)
printfrm.Font.Size = 6
jb1 = Left(jb, 15)
jb2 = Mid(jb, 17, 15)
jb4 = Right(jb, 15)
printfrm.CurrentX = intx
printfrm.CurrentY = intw
printfrm.Print jb1
printfrm.CurrentX = intx
printfrm.CurrentY = intz
printfrm.Print jb2
printfrm.CurrentX = intx
printfrm.CurrentY = inth
printfrm.Print jb4
ElseIf Len(jb) > 15 Then
intx = 47 + ((50 - Len(jb)) / 2)
printfrm.Font.Size = 8
jb1 = Left(jb, 15)
jb2 = Right(jb, 15)
intw = 74.5
intz = 78
printfrm.CurrentX = intx
printfrm.CurrentY = intw
printfrm.Print jb1
printfrm.CurrentX = intx
printfrm.CurrentY = intz
printfrm.Print jb2
Else
intx = 41 + ((50 - Len(jb) * 2) / 2)
printfrm.Font.Size = 12
printfrm.CurrentX = intx
printfrm.CurrentY = inty
printfrm.Print jb
End If
'打印30元票起始票号
inty = 82.5
intw = 81
intz = 83.2
inth = 85.5
jb = Trim(.Fields!ph30.Value)
If Len(jb) > 45 Then
intx = 60 + ((50 - Len(jb)) / 2)
printfrm.Font.Size = 6
jb1 = Left(jb, 15)
jb2 = Mid(jb, 17, 15)
jb4 = Right(jb, 15)
printfrm.CurrentX = intx
printfrm.CurrentY = intw
printfrm.Print jb1
printfrm.CurrentX = intx
printfrm.CurrentY = intz
printfrm.Print jb2
printfrm.CurrentX = intx
printfrm.CurrentY = inth
printfrm.Print jb4
ElseIf Len(jb) > 15 Then
intx = 47 + ((50 - Len(jb)) / 2)
printfrm.Font.Size = 8
jb1 = Left(jb, 15)
jb2 = Right(jb, 15)
intw = 81.5
intz = 85
printfrm.CurrentX = intx
printfrm.CurrentY = intw
printfrm.Print jb1
printfrm.CurrentX = intx
printfrm.CurrentY = intz
printfrm.Print jb2
Else
intx = 41 + ((50 - Len(jb) * 2) / 2)
printfrm.Font.Size = 12
printfrm.CurrentX = intx
printfrm.CurrentY = inty
printfrm.Print jb
End If
'打印5元票额的张数
printfrm.Font.Size = 12
jb = CStr(rstjinbin.Fields!zs5.Value)
intx = 93 + ((20 - Len(jb)) / 2)
inty = 55
printfrm.CurrentX = intx
printfrm.CurrentY = inty
printfrm.Print jb
'打印5元票额的现金
jb = CStr(rstjinbin.Fields!je5.Value)
intx = 113 + ((25 - Len(jb)) / 2)
inty = 55
printfrm.CurrentX = intx
printfrm.CurrentY = inty
printfrm.Print jb
'打印10元票额的张数
printfrm.Font.Size = 12
jb = CStr(rstjinbin.Fields!zs10.Value)
intx = 93 + ((20 - Len(jb)) / 2)
inty = 62
printfrm.CurrentX = intx
printfrm.CurrentY = inty
printfrm.Print jb
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -