急需解决的打印问题

xunfengxxx 2005-11-18 03:01:36
我在打印里发过100分的帖,有高手提供了程序,可是不是我所需要的,我规定了每页打印10条记录)
帮我看看下面代码为什么多页打印的时候就不对了?
Dim i, A As Integer
Dim v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14 As Integer
v1 = 200
v2 = MSFlexGrid1.ColWidth(0) * 1.5 + v1
v3 = v2 + MSFlexGrid1.ColWidth(1) * 1.1
v4 = v3 + MSFlexGrid1.ColWidth(2) * 0.8
v5 = v4 + MSFlexGrid1.ColWidth(3) * 1.1
v6 = v5 + MSFlexGrid1.ColWidth(4) * 1.7
v7 = v6 + MSFlexGrid1.ColWidth(5) * 1.2
v8 = v7 + MSFlexGrid1.ColWidth(6) * 1.5
v9 = v8 + MSFlexGrid1.ColWidth(7) * 1.3
v10 = v9 + MSFlexGrid1.ColWidth(8) * 1.6
v11 = v10 + MSFlexGrid1.ColWidth(9) * 0.9
v12 = v11 + MSFlexGrid1.ColWidth(10) * 1.1
v13 = 11500
'////
' Printer.Orientation = 1 '横向打印2
'Printer.ScaleLeft = 400 * Val(pz.Text) + 1500 + 860 + 2000
' Printer.ScaleTop = 20000
'///////
Printer.Height = 400 * Val(pz.Text) + 1500 + 860 + 2000
Printer.Width = 20000
Printer.FontSize = 20
Printer.CurrentX = 5000
Printer.CurrentY = 200
Printer.Print "销售单 "
Printer.CurrentX = 200
Printer.CurrentY = 700
Printer.FontSize = 12
Printer.Print "销售商:" & yss.Text
Printer.CurrentX = 200
Printer.CurrentY = 700
Printer.FontSize = 12
Printer.Print "打印时间:" + CStr(Date) + CStr(Time)
Printer.CurrentX = 8000
Printer.CurrentY = 700
Printer.FontSize = 10
A = 1100
v14 = 11500
'打印页数计算
'//////////////////////
Dim pagesum As Integer
Dim k As Integer
Dim M As Integer
M = CInt(pz.Text)
k = 1
If M Mod 10 = 0 Then
pagesum = M / 10
Else
pagesum = Int(M / 10) + 1
End If
MsgBox pagesum

For j = 1 To pagesum
'打印页码
Printer.CurrentX = 140: Printer.CurrentY = 30
Printer.Print "共" & pagesum & "页 第" & j & "页"

'/////////////////////
For i = k To j * 10 '0-10
If MSFlexGrid1.ColWidth(0) > 0 Then
Printer.Line (v1, A)-(v1, A + 400)
Printer.CurrentX = 260
Printer.CurrentY = A + 50
Printer.FontSize = 10
If MSFlexGrid1.TextMatrix(i, 0) <> "" Then Printer.Print MSFlexGrid1.TextMatrix(i, 0)
End If
If MSFlexGrid1.ColWidth(1) > 0 Then
Printer.Line (v2, A)-(v2, A + 400)
Printer.CurrentX = v2 + 10
Printer.CurrentY = A + 50
Printer.FontSize = 11
If MSFlexGrid1.TextMatrix(i, 1) <> "" Then Printer.Print MSFlexGrid1.TextMatrix(i, 1)
End If
If MSFlexGrid1.ColWidth(2) > 0 Then
Printer.Line (v3, A)-(v3, A + 400)
Printer.CurrentX = v3 + 40
Printer.CurrentY = A + 50
Printer.FontSize = 11
If MSFlexGrid1.TextMatrix(i, 2) <> "" Then Printer.Print MSFlexGrid1.TextMatrix(i, 2)
End If
If MSFlexGrid1.ColWidth(3) > 0 Then
Printer.Line (v4, A)-(v4, A + 400)
Printer.CurrentX = v4 + 40
Printer.CurrentY = A + 50
Printer.FontSize = 11
If MSFlexGrid1.TextMatrix(i, 3) <> "" Then Printer.Print MSFlexGrid1.TextMatrix(i, 3)
End If
If MSFlexGrid1.ColWidth(4) > 0 Then
Printer.Line (v5, A)-(v5, A + 400)
Printer.CurrentX = v5 + 40
Printer.CurrentY = A + 50
Printer.FontSize = 11
If MSFlexGrid1.TextMatrix(i, 4) <> "" Then Printer.Print MSFlexGrid1.TextMatrix(i, 4)
End If
If MSFlexGrid1.ColWidth(5) > 0 Then
Printer.Line (v6, A)-(v6, A + 400)
Printer.CurrentX = v6 + 40
Printer.CurrentY = A + 50
Printer.FontSize = 11
If MSFlexGrid1.TextMatrix(i, 5) <> "" Then Printer.Print MSFlexGrid1.TextMatrix(i, 5)
End If
If MSFlexGrid1.ColWidth(6) > 0 Then
Printer.Line (v7, A)-(v7, A + 400)
Printer.CurrentX = v7 + 40
Printer.CurrentY = A + 50
Printer.FontSize = 11
If MSFlexGrid1.TextMatrix(i, 6) <> "" Then Printer.Print MSFlexGrid1.TextMatrix(i, 6)
End If
If MSFlexGrid1.ColWidth(7) > 0 Then
Printer.Line (v8, A)-(v8, A + 400)
Printer.CurrentX = v8 + 20
Printer.CurrentY = A + 50
Printer.FontSize = 11
If MSFlexGrid1.TextMatrix(i, 7) <> "" Then Printer.Print MSFlexGrid1.TextMatrix(i, 7)
End If
Printer.Line (v1, A)-(v11, A)
Printer.Line (v14, A)-(v14, A + 400)
Printer.Line (v1, A + 400)-(v14, A + 400)
Printer.Line (v1, A)-(v14, A)
A = A + 400
Next i
k = k + 10
If k < Val(pz.Text) Then
Printer.CurrentX = 200
Printer.CurrentY = 700
Printer.NewPage
Else
Printer.EndDoc
Printer.KillDoc
End If

'本页打印完毕,换页
Next j
Printer.Line (v1, A + 400)-(v14, 400 + A)
Printer.FontSize = 12
Printer.Line (v1, A + 400)-(v14, 400 + A)
Printer.FontSize = 12
Printer.CurrentX = v1 + 5300
Printer.CurrentY = A + 100
Printer.Print "合计金额: " & Format(hjje.Text, "0.00") & "元" & "(" & Text4.Text + ")"
Printer.Line (v1, 800 + A)-(v14, 800 + A)
Printer.FontSize = 10
Printer.CurrentX = v1 + 20
Printer.CurrentY = A + 460
Printer.Print "实际付款: " & Format(Text2.Text, "0.00") & "元" & "(" & Text5.Text + ")"
Printer.CurrentX = v1 + 5300
Printer.CurrentY = A + 460
Printer.Print "折率:" & Format(Val(Text2.Text) / Val(hjje.Text) * 10, "0.00") + "折"
Printer.EndDoc
Printer.KillDoc
...全文
166 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
faysky2 2005-11-23
  • 打赏
  • 举报
回复
LZ可否指出出错原因
faysky2 2005-11-23
  • 打赏
  • 举报
回复
那只有蹭分了
bobdog1215 2005-11-23
  • 打赏
  • 举报
回复
解决就好 接分~
xunfengxxx 2005-11-23
  • 打赏
  • 举报
回复
还是自己解决了
chuting1 2005-11-23
  • 打赏
  • 举报
回复
For i = k To j * 10 '0-10

,没有变化呀
zhangjinzhicn 2005-11-18
  • 打赏
  • 举报
回复
www.wave12.com
chen2839846 2005-11-18
  • 打赏
  • 举报
回复
帮顶把

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧