📄 newjinbin.bas
字号:
intx = 113 + ((25 - Len(jb)) / 2)
inty = 62
printfrm.CurrentX = intx
printfrm.CurrentY = inty
printfrm.Print jb
'打印15元票额的张数
printfrm.Font.Size = 12
jb = CStr(rstjinbin.Fields!zs15.Value)
intx = 93 + ((20 - Len(jb)) / 2)
inty = 69
printfrm.CurrentX = intx
printfrm.CurrentY = inty
printfrm.Print jb
'打印15元票额的现金
jb = CStr(rstjinbin.Fields!je15.Value)
intx = 113 + ((25 - Len(jb)) / 2)
inty = 69
printfrm.CurrentX = intx
printfrm.CurrentY = inty
printfrm.Print jb
'打印20元票额的张数
printfrm.Font.Size = 12
jb = CStr(rstjinbin.Fields!zs20.Value)
intx = 93 + ((20 - Len(jb)) / 2)
inty = 76
printfrm.CurrentX = intx
printfrm.CurrentY = inty
printfrm.Print jb
'打印20元票额的现金
jb = CStr(rstjinbin.Fields!je20.Value)
intx = 113 + ((25 - Len(jb)) / 2)
inty = 76
printfrm.CurrentX = intx
printfrm.CurrentY = inty
printfrm.Print jb
'打印30元票额的张数
printfrm.Font.Size = 12
jb = CStr(rstjinbin.Fields!zs30.Value)
intx = 93 + ((20 - Len(jb)) / 2)
inty = 83
printfrm.CurrentX = intx
printfrm.CurrentY = inty
printfrm.Print jb
'打印30元票额的现金
jb = CStr(rstjinbin.Fields!je30.Value)
intx = 113 + ((25 - Len(jb)) / 2)
inty = 83
printfrm.CurrentX = intx
printfrm.CurrentY = inty
printfrm.Print jb
'打印票的总张数
jb = CStr(.Fields!hjzs.Value)
intx = 93 + ((20 - Len(jb)) / 2)
inty = 90
printfrm.CurrentX = intx
printfrm.CurrentY = inty
printfrm.Print jb
'打印总金额
jb = CStr(.Fields!hjje.Value)
intx = 113 + ((25 - Len(jb)) / 2)
inty = 90
printfrm.CurrentX = intx
printfrm.CurrentY = inty
printfrm.Print jb
'打印应交小写金额
jb = CStr(.Fields!hjje.Value)
intx = 128 + Len("(小写):") + 2
intx = 145
printfrm.CurrentX = intx
printfrm.CurrentY = inty + 7
printfrm.Print jb
'打印应交大写金额
jb = wt.Up(CLng(.Fields!hjje.Value))
intx = 45 + Len("(大写):") + 2
intx = 62
printfrm.CurrentX = intx
printfrm.CurrentY = inty + 7
printfrm.Print jb
'打印表外头的字段
jb = Left(CStr(.Fields!station.Value), Len(.Fields!station.Value) - 1)
intx = 23
inty = 31.8
printfrm.CurrentX = intx
printfrm.CurrentY = inty
printfrm.Print jb
jb = CStr(.Fields!bz.Value)
intx = 43 + 4 + 8
printfrm.CurrentX = intx + 2
printfrm.CurrentY = inty
printfrm.Print jb
jb = CStr(.Fields!bc.Value)
intx = intx + 8 + 10
printfrm.CurrentX = intx + 6
printfrm.CurrentY = inty
printfrm.Print jb
jb3 = Day(.Fields!riqi.Value)
jb2 = Month(.Fields!riqi.Value)
jb1 = Year(.Fields!riqi.Value)
jb = CStr(jb1)
intx = intx + 10 + 24
printfrm.CurrentX = intx
printfrm.CurrentY = inty
printfrm.Print jb
jb = CStr(jb2)
intx = intx + Len("年") + 7
intx = intx + 8
printfrm.CurrentX = intx
printfrm.CurrentY = inty
printfrm.Print jb
jb = CStr(jb3)
intx = intx + Len("月") + 7
intx = intx + 1
printfrm.CurrentX = intx
printfrm.CurrentY = inty
printfrm.Print jb
jb = CStr(.Fields!sxm.Value)
intx = intx + 4 + 7 + 15 + 6
inty = 33.2
printfrm.CurrentX = intx
printfrm.CurrentY = inty
printfrm.Print jb
.MoveNext
Loop
End With
rstjinbin.Close
Set rstjinbin = Nothing
End Function
Public Function prn()
Dim intx, inty As Single
Dim strsql As String
Dim jb As String
Dim jb1, jb2, jb3 As Integer
'如果有错误,转到PRINT_ERR
On Error GoTo PRINT_ERR
'用VBA代码控制报表的打印
With Printer
.ScaleMode = 1
.Width = 10600
.Height = 7400
.ScaleMode = 6
.ScaleTop = 0
.ScaleLeft = 0
.Font.Size = 14
jb = "津 滨 高 速 公 路"
.CurrentX = 18 + CInt((160 - Len(jb) * 4) / 2)
.CurrentY = 17
Printer.Print jb
.Font.Bold = True
.Font.Size = 14
jb = "出 口 收 费 员 班 次 报 表"
.CurrentX = 18 + CInt((160 - Len(jb) * 4) / 2)
.CurrentY = 24
Printer.Print jb
'画表头线
.Font.Size = 12
Printer.Line (23, 37)-(46, 37)
jb = "站"
.CurrentX = 46
.CurrentY = 33
Printer.Print jb
intx = 43 + 3 + 8
Printer.Line (intx, 37)-(intx + 10, 37)
jb = "班"
.CurrentX = intx + 10
.CurrentY = 33
Printer.Print jb
intx = intx + 14 + 6
Printer.Line (intx, 37)-(intx + 16, 37)
jb = "班"
.CurrentX = intx + 14
.CurrentY = 33
Printer.Print jb
intx = intx + 10 + 6 + 20
Printer.Line (intx - 3, 37)-(intx + 7, 37)
jb = "年"
.CurrentX = intx + 7
.CurrentY = 33
Printer.Print jb
intx = intx + 7 + 3
Printer.Line (intx, 37)-(intx + 7, 37)
jb = "月"
.CurrentX = intx + 7
.CurrentY = 33
Printer.Print jb
intx = intx + 7 + 3
Printer.Line (intx, 37)-(intx + 7, 37)
jb = "日"
.CurrentX = intx + 7
.CurrentY = 33
Printer.Print jb
intx = intx + 3 + 7 + 12
.CurrentX = intx
.CurrentY = 33
jb = "姓名:"
Printer.Print jb
jb = "票面金额"
intx = CInt((25 - Len(jb) * 3) / 2)
intx = intx + 18
inty = 42
.CurrentX = intx
.CurrentY = inty
Printer.Print jb
jb = "售 出 票 据"
intx = CInt((95 - Len(jb) * 4) / 2)
.CurrentX = intx + 43
.CurrentY = 41
Printer.Print jb
jb = "弃票"
intx = CInt((15 - Len(jb) * 4) / 2)
intx = intx + 138
inty = 41
.CurrentX = intx
.CurrentY = inty
Printer.Print jb
jb = "备 注"
intx = CInt((25 - Len(jb) * 4) / 2)
intx = intx + 153
inty = 44
.CurrentX = intx
.CurrentY = inty
Printer.Print jb
jb = "(元)"
intx = CInt((25 - Len(jb) * 4) / 2)
intx = intx + 18
inty = 47
.CurrentX = intx
.CurrentY = inty
Printer.Print jb
jb = "起 止 号"
intx = CInt((50 - Len(jb) * 4) / 2)
intx = intx + 43
inty = 48
.CurrentX = intx
.CurrentY = inty
Printer.Print jb
jb = "张数"
intx = CInt((20 - Len(jb) * 4) / 2)
intx = intx + 93
inty = 48
.CurrentX = intx
.CurrentY = inty
Printer.Print jb
jb = "金额"
intx = CInt((25 - Len(jb) * 4) / 2)
intx = 113 + intx
inty = 48
.CurrentX = intx
.CurrentY = inty
Printer.Print jb
jb = "张数"
intx = CInt((15 - Len(jb) * 4) / 2)
intx = 138 + intx
inty = 46.5
.CurrentX = intx
.CurrentY = inty
Printer.Print jb
jb = "5元"
intx = 18 + CInt((25 - Len(jb)) / 2)
inty = 55
.CurrentX = intx
.CurrentY = inty
Printer.Print jb
jb = "10元"
intx = 18 + CInt((25 - Len(jb)) / 2)
inty = 62
.CurrentX = intx
.CurrentY = inty
Printer.Print jb
jb = "15元"
intx = 18 + CInt((25 - Len(jb)) / 2)
inty = 69
.CurrentX = intx
.CurrentY = inty
Printer.Print jb
jb = "20元"
intx = 18 + CInt((25 - Len(jb)) / 2)
inty = 76
.CurrentX = intx
.CurrentY = inty
Printer.Print jb
jb = "30元"
intx = 18 + CInt((25 - Len(jb)) / 2)
inty = 83
.CurrentX = intx
.CurrentY = inty
Printer.Print jb
jb = "合 计"
intx = 18 + CInt((25 - Len(jb)) / 2)
inty = 90
.CurrentX = intx
.CurrentY = inty
Printer.Print jb
'打印第九行
jb = "应交金额"
intx = 18 + (25 - Len(jb) * 4) / 2
inty = 97
.CurrentX = intx
.CurrentY = inty
Printer.Print jb
jb = "(大写):"
.CurrentX = 45
.CurrentY = 97
Printer.Print jb
jb = "(小写):"
.CurrentX = 128
.CurrentY = 97
Printer.Print jb
'打印第十行
jb = "实交金额"
intx = 18 + CInt((25 - Len(jb) * 4) / 2)
inty = 104
.CurrentX = intx
.CurrentY = inty
Printer.Print jb
jb = "(大写):"
.CurrentX = 45
.CurrentY = 104
Printer.Print jb
jb = "(小写):"
.CurrentX = 128
.CurrentY = 104
Printer.Print jb
'打印第十一行
jb = "票外/长/短款"
intx = 18
inty = 111
.CurrentX = intx
.CurrentY = inty
Printer.Print jb
jb = "(大写):"
.CurrentX = 45
.CurrentY = 111
Printer.Print jb
jb = "(小写):"
.CurrentX = 128
.CurrentY = 111
Printer.Print jb
'打印备注
jb = "收费员:"
intx = 33
inty = 118
.CurrentX = intx
.CurrentY = inty
Printer.Print jb
jb = "票务员:"
intx = intx + 80
inty = 118
.CurrentX = intx
.CurrentY = inty
Printer.Print jb
'画表格
'打印表格的横线
Printer.Line (18, 39)-(178, 39)
Printer.Line (45, 46)-(138, 46)
Printer.Line (18, 53)-(178, 53)
Printer.Line (18, 60)-(178, 60)
Printer.Line (18, 67)-(178, 67)
Printer.Line (18, 74)-(178, 74)
Printer.Line (18, 81)-(178, 81)
Printer.Line (18, 88)-(178, 88)
Printer.Line (18, 95)-(178, 95)
Printer.Line (18, 102)-(178, 102)
Printer.Line (18, 109)-(178, 109)
Printer.Line (18, 116)-(178, 116)
'打印表格的竖线
Printer.Line (18, 39)-(18, 116)
Printer.Line (45, 39)-(45, 116)
Printer.Line (93, 46)-(93, 95)
Printer.Line (113, 46)-(113, 95)
Printer.Line (138, 39)-(138, 95)
Printer.Line (153, 39)-(153, 95)
Printer.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)
Printer.Font.Size = 6
jb1 = Left(jb, 15)
jb2 = Mid(jb, 17, 15)
jb4 = Right(jb, 15)
Printer.CurrentX = intx
Printer.CurrentY = intw
Printer.Print jb1
Printer.CurrentX = intx
Printer.CurrentY = intz
Printer.Print jb2
Printer.CurrentX = intx
Printer.CurrentY = inth
Printer.Print jb4
ElseIf Len(jb) > 15 Then
intx = 47 + ((50 - Len(jb)) / 2)
Printer.Font.Size = 8
jb1 = Left(jb, 15)
jb2 = Right(jb, 15)
intw = 53.5
intz = 57
Printer.CurrentX = intx
Printer.CurrentY = intw
Printer.Print jb1
Printer.CurrentX = intx
Printer.CurrentY = intz
Printer.Print jb2
Else
intx = 41 + ((50 - Len(jb) * 2) / 2)
Printer.Font.Size = 12
Printer.CurrentX = intx
Printer.CurrentY = inty
Printer.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)
Printer.Font.Size = 6
jb1 = Left(jb, 15)
jb2 = Mid(jb, 17, 15)
jb4 = Right(jb, 15)
Printer.CurrentX = intx
Printer.CurrentY = intw
Printer.Print jb1
Printer.CurrentX = intx
Printer.CurrentY = intz
Printer.Print jb2
Printer.CurrentX = intx
Printer.CurrentY = inth
Printer.Print jb4
ElseIf Len(jb) > 15 Then
intx = 47 + ((50 - Len(jb)) / 2)
Printer.Font.Size = 8
jb1 = Left(jb, 15)
jb2 = Right(jb, 15)
intw = 60.5
intz = 64
Printer.CurrentX = intx
Printer.CurrentY = intw
Printer.Print jb1
Printer.CurrentX = intx
Printer.CurrentY = intz
Printer.Print jb2
Else
intx = 41 + ((50 - Len(jb) * 2) / 2)
Printer.Font.Size = 12
Printer.CurrentX = intx
Printer.CurrentY = inty
Printer.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
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -