我要将MSFlexGrid中的所有数据打印出来。我设置的每页打印100个数据,当MSFlexGrid中的行数超过100时就分页打印。可是我的代码在打印过程中每次都显示下标越界,寻求各位的帮忙。
Private Sub Command6_Click()Dim i, w, a, b As Integer
Dim v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13 As Integerv1 = 20
v2 = v1 + MSFlexGrid1.ColWidth(0) * 1.1 '高度
v3 = v2 + MSFlexGrid1.ColWidth(1) * 1.5 '容量
v4 = v3 + MSFlexGrid1.ColWidth(0) * 1.1 '药品名称
v5 = v4 + MSFlexGrid1.ColWidth(1) * 1.5 '规格
v6 = v5 + MSFlexGrid1.ColWidth(0) * 1.1 '产地
v7 = v6 + MSFlexGrid1.ColWidth(1) * 1.5 '批号
v8 = v7 + MSFlexGrid1.ColWidth(0) * 1.1 '有效期
v9 = v8 + MSFlexGrid1.ColWidth(1) * 1.5 '单位
v13 = 11500Dim m As Integer '总记录数
Dim N As Integer '每页记录数
Dim ii As Integer '总页数
Dim j As Integer '页码数
Dim k As Integer '每页起始记录控制m = MSFlexGrid2.Rows - 1 '总记录数
N = 100 '每页 20 条记录
b = m Mod N
If Int(m / N) - m / N = 0 Then
ii = m / N
Else
ii = Int(m / N) + 1
End IfPrinter.Height = 750 + 300 + 80 * N + 900 + 3000 '定义纸张高度----根据每页记录数
Printer.Width = 12000 '定义纸张宽度For j = 1 To ii '外循环控制打印页数
Printer.CurrentX = 4000
Printer.CurrentY = 1000
Printer.FontSize = 24
Printer.FontName = "宋体"
Printer.Print "汽车油罐容积表 " Printer.CurrentX = 9250 '页码置于左上角
Printer.CurrentY = 1000
Printer.FontSize = 14
Printer.Print "第 " + Trim(Str(j)) + " 页 共 " & Trim(Str(ii)) + " 页"
Printer.CurrentX = 400
Printer.CurrentY = 2100
Printer.FontSize = 12
Printer.Print "车号:"
Printer.CurrentX = 4800
Printer.CurrentY = 2100
Printer.FontSize = 12
Printer.Print "油罐口总高:"
Printer.CurrentX = 8800
Printer.CurrentY = 2100
Printer.FontSize = 12
Printer.Print "单位:毫米"
'列标题
'A -------- 表主体纵向高度
a = 2500
Printer.Line (v1, a)-(v13, a) '画顶横线
If MSFlexGrid2.ColWidth(0) > 0 Then '第1列
Printer.Line (v1, a)-(v1, a + 450) '画左坚边线
Printer.CurrentX = 200
Printer.CurrentY = a + 100
Printer.FontSize = 10
Printer.Print "高度"
End If
If MSFlexGrid2.ColWidth(1) > 0 Then '第2列
Printer.Line (v2, a)-(v2, a + 450)
Printer.CurrentX = v2 + 40
Printer.CurrentY = a + 100
Printer.FontSize = 10
Printer.Print "容量(L)"
End If
If MSFlexGrid2.ColWidth(0) > 0 Then '第3列
Printer.Line (v3, a)-(v3, a + 450)
Printer.CurrentX = v3 + 40
Printer.CurrentY = a + 100
Printer.FontSize = 10
Printer.Print "高度"
End If
If MSFlexGrid2.ColWidth(1) > 0 Then '第4列
Printer.Line (v4, a)-(v4, a + 450)
Printer.CurrentX = v4 + 40
Printer.CurrentY = a + 100
Printer.FontSize = 10
Printer.Print "容量(L)"
End If
If MSFlexGrid2.ColWidth(0) > 0 Then '第5列
Printer.Line (v5, a)-(v5, a + 450)
Printer.CurrentX = v5 + 40
Printer.CurrentY = a + 100
Printer.FontSize = 10
Printer.Print "高度"
End If
If MSFlexGrid2.ColWidth(1) > 0 Then '第6列
Printer.Line (v6, a)-(v6, a + 450)
Printer.CurrentX = v6 + 40
Printer.CurrentY = a + 100
Printer.FontSize = 10
Printer.Print "容量(L)"
End If
If MSFlexGrid2.ColWidth(0) > 0 Then '第7列
Printer.Line (v7, a)-(v7, a + 450)
Printer.CurrentX = v7 + 40
Printer.CurrentY = a + 100
Printer.FontSize = 10
Printer.Print "高度"
End If
If MSFlexGrid2.ColWidth(1) > 0 Then '第8列
Printer.Line (v8, a)-(v8, a + 450)
Printer.CurrentX = v8 + 40
Printer.CurrentY = a + 100
Printer.FontSize = 10
Printer.Print "容量(L)"
Printer.Line (v9 + 10, a)-(v9 + 10, a + 450) '画右坚边线(封口) End If a = 2950 'A -------- 表主体纵向高度
Printer.Line (v1, a)-(v13, a) '画横线
If j = 1 Then 'k 每页起始记录控制
k = 1 'k=0 表示第1行,k=1 表示第2行
Else
k = (j - 1) * N + 1
End If
For i = k To m - (ii - j) * N '内循环控制每页打印-------------分页打印
If MSFlexGrid2.ColWidth(0) > 0 Then '第1列
Printer.Line (v1, a)-(v1, a + 450) '画左坚边线
Printer.CurrentX = 50
Printer.CurrentY = a + 100
Printer.FontSize = 10
If MSFlexGrid2.TextMatrix(i, 0) <> "" Then 'i=0 时为第1行,标题行
Printer.Print MSFlexGrid2.TextMatrix(i, 0)
End If
End If
If MSFlexGrid2.ColWidth(1) > 0 Then '第2列
Printer.Line (v2, a)-(v2, a + 450)
Printer.CurrentX = v2 + 10
Printer.CurrentY = a + 100
Printer.FontSize = 10
If MSFlexGrid2.TextMatrix(i, 1) <> "" Then
Printer.Print MSFlexGrid2.TextMatrix(i, 1)
End If End If
i = i + 1
If MSFlexGrid2.ColWidth(0) > 0 Then '第3列
Printer.Line (v3, a)-(v3, a + 450) '画左坚边线
Printer.CurrentX = v3 + 10
Printer.CurrentY = a + 100
Printer.FontSize = 10
If MSFlexGrid2.TextMatrix(i, 0) <> "" Then 'i=0 时为第1行,标题行
Printer.Print MSFlexGrid2.TextMatrix(i, 0)
End If
End If
If MSFlexGrid2.ColWidth(1) > 0 Then '第4列
Printer.Line (v4, a)-(v4, a + 450)
Printer.CurrentX = v4 + 10
Printer.CurrentY = a + 100
Printer.FontSize = 10
If MSFlexGrid2.TextMatrix(i, 1) <> "" Then
Printer.Print MSFlexGrid2.TextMatrix(i, 1)
End If
End If
i = i + 1
If MSFlexGrid2.ColWidth(0) > 0 Then '第5列
Printer.Line (v5, a)-(v5, a + 450) '画左坚边线
Printer.CurrentX = v5 + 10
Printer.CurrentY = a + 100
Printer.FontSize = 10
If MSFlexGrid2.TextMatrix(i, 0) <> "" Then 'i=0 时为第1行,标题行
Printer.Print MSFlexGrid2.TextMatrix(i, 0)
End If
End If
If MSFlexGrid2.ColWidth(1) > 0 Then '第6列
Printer.Line (v6, a)-(v6, a + 450)
Printer.CurrentX = v6 + 10
Printer.CurrentY = a + 100
Printer.FontSize = 10
If MSFlexGrid2.TextMatrix(i, 1) <> "" Then
Printer.Print MSFlexGrid2.TextMatrix(i, 1)
End If
End If
i = i + 1
If MSFlexGrid2.ColWidth(0) > 0 Then '第7列
Printer.Line (v7, a)-(v7, a + 450) '画左坚边线
Printer.CurrentX = v7 + 10
Printer.CurrentY = a + 100
Printer.FontSize = 10
If MSFlexGrid2.TextMatrix(i, 0) <> "" Then 'i=0 时为第1行,标题行
Printer.Print MSFlexGrid2.TextMatrix(i, 0)
End If
End If
If MSFlexGrid2.ColWidth(1) > 0 Then '第8列
Printer.Line (v8, a)-(v8, a + 450)
Printer.CurrentX = v8 + 10
Printer.CurrentY = a + 100
Printer.FontSize = 10
If MSFlexGrid2.TextMatrix(i, 1) <> "" Then
Printer.Print MSFlexGrid2.TextMatrix(i, 1)
End If
Printer.Line (v9, a)-(v9, a + 450) '画右坚边线(封口)
End If
Printer.Line (v1, a + 450)-(v13, a + 450) '画下边横线
a = a + 450 '行距每次增加 450
Next i '内循环结束
Printer.NewPage '新的一页
Printer.EndDoc '换页
Next j '外循环结束
Call MsgBox("正在打印......!", vbOKOnly + vbInformation, "提示...")
End Sub
Private Sub Command6_Click()Dim i, w, a, b As Integer
Dim v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13 As Integerv1 = 20
v2 = v1 + MSFlexGrid1.ColWidth(0) * 1.1 '高度
v3 = v2 + MSFlexGrid1.ColWidth(1) * 1.5 '容量
v4 = v3 + MSFlexGrid1.ColWidth(0) * 1.1 '药品名称
v5 = v4 + MSFlexGrid1.ColWidth(1) * 1.5 '规格
v6 = v5 + MSFlexGrid1.ColWidth(0) * 1.1 '产地
v7 = v6 + MSFlexGrid1.ColWidth(1) * 1.5 '批号
v8 = v7 + MSFlexGrid1.ColWidth(0) * 1.1 '有效期
v9 = v8 + MSFlexGrid1.ColWidth(1) * 1.5 '单位
v13 = 11500Dim m As Integer '总记录数
Dim N As Integer '每页记录数
Dim ii As Integer '总页数
Dim j As Integer '页码数
Dim k As Integer '每页起始记录控制m = MSFlexGrid2.Rows - 1 '总记录数
N = 100 '每页 20 条记录
b = m Mod N
If Int(m / N) - m / N = 0 Then
ii = m / N
Else
ii = Int(m / N) + 1
End IfPrinter.Height = 750 + 300 + 80 * N + 900 + 3000 '定义纸张高度----根据每页记录数
Printer.Width = 12000 '定义纸张宽度For j = 1 To ii '外循环控制打印页数
Printer.CurrentX = 4000
Printer.CurrentY = 1000
Printer.FontSize = 24
Printer.FontName = "宋体"
Printer.Print "汽车油罐容积表 " Printer.CurrentX = 9250 '页码置于左上角
Printer.CurrentY = 1000
Printer.FontSize = 14
Printer.Print "第 " + Trim(Str(j)) + " 页 共 " & Trim(Str(ii)) + " 页"
Printer.CurrentX = 400
Printer.CurrentY = 2100
Printer.FontSize = 12
Printer.Print "车号:"
Printer.CurrentX = 4800
Printer.CurrentY = 2100
Printer.FontSize = 12
Printer.Print "油罐口总高:"
Printer.CurrentX = 8800
Printer.CurrentY = 2100
Printer.FontSize = 12
Printer.Print "单位:毫米"
'列标题
'A -------- 表主体纵向高度
a = 2500
Printer.Line (v1, a)-(v13, a) '画顶横线
If MSFlexGrid2.ColWidth(0) > 0 Then '第1列
Printer.Line (v1, a)-(v1, a + 450) '画左坚边线
Printer.CurrentX = 200
Printer.CurrentY = a + 100
Printer.FontSize = 10
Printer.Print "高度"
End If
If MSFlexGrid2.ColWidth(1) > 0 Then '第2列
Printer.Line (v2, a)-(v2, a + 450)
Printer.CurrentX = v2 + 40
Printer.CurrentY = a + 100
Printer.FontSize = 10
Printer.Print "容量(L)"
End If
If MSFlexGrid2.ColWidth(0) > 0 Then '第3列
Printer.Line (v3, a)-(v3, a + 450)
Printer.CurrentX = v3 + 40
Printer.CurrentY = a + 100
Printer.FontSize = 10
Printer.Print "高度"
End If
If MSFlexGrid2.ColWidth(1) > 0 Then '第4列
Printer.Line (v4, a)-(v4, a + 450)
Printer.CurrentX = v4 + 40
Printer.CurrentY = a + 100
Printer.FontSize = 10
Printer.Print "容量(L)"
End If
If MSFlexGrid2.ColWidth(0) > 0 Then '第5列
Printer.Line (v5, a)-(v5, a + 450)
Printer.CurrentX = v5 + 40
Printer.CurrentY = a + 100
Printer.FontSize = 10
Printer.Print "高度"
End If
If MSFlexGrid2.ColWidth(1) > 0 Then '第6列
Printer.Line (v6, a)-(v6, a + 450)
Printer.CurrentX = v6 + 40
Printer.CurrentY = a + 100
Printer.FontSize = 10
Printer.Print "容量(L)"
End If
If MSFlexGrid2.ColWidth(0) > 0 Then '第7列
Printer.Line (v7, a)-(v7, a + 450)
Printer.CurrentX = v7 + 40
Printer.CurrentY = a + 100
Printer.FontSize = 10
Printer.Print "高度"
End If
If MSFlexGrid2.ColWidth(1) > 0 Then '第8列
Printer.Line (v8, a)-(v8, a + 450)
Printer.CurrentX = v8 + 40
Printer.CurrentY = a + 100
Printer.FontSize = 10
Printer.Print "容量(L)"
Printer.Line (v9 + 10, a)-(v9 + 10, a + 450) '画右坚边线(封口) End If a = 2950 'A -------- 表主体纵向高度
Printer.Line (v1, a)-(v13, a) '画横线
If j = 1 Then 'k 每页起始记录控制
k = 1 'k=0 表示第1行,k=1 表示第2行
Else
k = (j - 1) * N + 1
End If
For i = k To m - (ii - j) * N '内循环控制每页打印-------------分页打印
If MSFlexGrid2.ColWidth(0) > 0 Then '第1列
Printer.Line (v1, a)-(v1, a + 450) '画左坚边线
Printer.CurrentX = 50
Printer.CurrentY = a + 100
Printer.FontSize = 10
If MSFlexGrid2.TextMatrix(i, 0) <> "" Then 'i=0 时为第1行,标题行
Printer.Print MSFlexGrid2.TextMatrix(i, 0)
End If
End If
If MSFlexGrid2.ColWidth(1) > 0 Then '第2列
Printer.Line (v2, a)-(v2, a + 450)
Printer.CurrentX = v2 + 10
Printer.CurrentY = a + 100
Printer.FontSize = 10
If MSFlexGrid2.TextMatrix(i, 1) <> "" Then
Printer.Print MSFlexGrid2.TextMatrix(i, 1)
End If End If
i = i + 1
If MSFlexGrid2.ColWidth(0) > 0 Then '第3列
Printer.Line (v3, a)-(v3, a + 450) '画左坚边线
Printer.CurrentX = v3 + 10
Printer.CurrentY = a + 100
Printer.FontSize = 10
If MSFlexGrid2.TextMatrix(i, 0) <> "" Then 'i=0 时为第1行,标题行
Printer.Print MSFlexGrid2.TextMatrix(i, 0)
End If
End If
If MSFlexGrid2.ColWidth(1) > 0 Then '第4列
Printer.Line (v4, a)-(v4, a + 450)
Printer.CurrentX = v4 + 10
Printer.CurrentY = a + 100
Printer.FontSize = 10
If MSFlexGrid2.TextMatrix(i, 1) <> "" Then
Printer.Print MSFlexGrid2.TextMatrix(i, 1)
End If
End If
i = i + 1
If MSFlexGrid2.ColWidth(0) > 0 Then '第5列
Printer.Line (v5, a)-(v5, a + 450) '画左坚边线
Printer.CurrentX = v5 + 10
Printer.CurrentY = a + 100
Printer.FontSize = 10
If MSFlexGrid2.TextMatrix(i, 0) <> "" Then 'i=0 时为第1行,标题行
Printer.Print MSFlexGrid2.TextMatrix(i, 0)
End If
End If
If MSFlexGrid2.ColWidth(1) > 0 Then '第6列
Printer.Line (v6, a)-(v6, a + 450)
Printer.CurrentX = v6 + 10
Printer.CurrentY = a + 100
Printer.FontSize = 10
If MSFlexGrid2.TextMatrix(i, 1) <> "" Then
Printer.Print MSFlexGrid2.TextMatrix(i, 1)
End If
End If
i = i + 1
If MSFlexGrid2.ColWidth(0) > 0 Then '第7列
Printer.Line (v7, a)-(v7, a + 450) '画左坚边线
Printer.CurrentX = v7 + 10
Printer.CurrentY = a + 100
Printer.FontSize = 10
If MSFlexGrid2.TextMatrix(i, 0) <> "" Then 'i=0 时为第1行,标题行
Printer.Print MSFlexGrid2.TextMatrix(i, 0)
End If
End If
If MSFlexGrid2.ColWidth(1) > 0 Then '第8列
Printer.Line (v8, a)-(v8, a + 450)
Printer.CurrentX = v8 + 10
Printer.CurrentY = a + 100
Printer.FontSize = 10
If MSFlexGrid2.TextMatrix(i, 1) <> "" Then
Printer.Print MSFlexGrid2.TextMatrix(i, 1)
End If
Printer.Line (v9, a)-(v9, a + 450) '画右坚边线(封口)
End If
Printer.Line (v1, a + 450)-(v13, a + 450) '画下边横线
a = a + 450 '行距每次增加 450
Next i '内循环结束
Printer.NewPage '新的一页
Printer.EndDoc '换页
Next j '外循环结束
Call MsgBox("正在打印......!", vbOKOnly + vbInformation, "提示...")
End Sub
解决方案 »
- 一个折磨了很久的7zip.dll回调函数问题
- combobox初始化问题........急
- ImageCombox 控件如何才能设置其默认值?
- 怎样设置图片在EXCEL单元格中的位置?
- VB内存泄漏的问题,使用了 new 关键字生成 RecordSet对象,软件操作一定时间后出现“运行时错误 内存溢出”问:
- 如何把SQL Server里Image字段的值在VB里显示成Image控件的图形
- 我在做ActiveX的时候用到了Soap3,怎么才能在网上发布的时候自动安装Soap3呢?
- 怎样实现对一张图片的Resize?
- 如何在VB中预先调入一组图片,在picture控件中使用时无须再读盘?
- VB高手们,我有两个关于Winsock控件的问题
- 水晶报表的问题,请解答
- 用VB编写大冰雹游戏 谁可以发下代码 谢谢
Dim v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13 As Integer v1 = 20
v2 = v1 + MSFlexGrid1.ColWidth(0) * 1.1 '高度
v3 = v2 + MSFlexGrid1.ColWidth(1) * 1.5 '容量
v4 = v3 + MSFlexGrid1.ColWidth(0) * 1.1 '药品名称
v5 = v4 + MSFlexGrid1.ColWidth(1) * 1.5 '规格
v6 = v5 + MSFlexGrid1.ColWidth(0) * 1.1 '产地
v7 = v6 + MSFlexGrid1.ColWidth(1) * 1.5 '批号
v8 = v7 + MSFlexGrid1.ColWidth(0) * 1.1 '有效期
v9 = v8 + MSFlexGrid1.ColWidth(1) * 1.5 '单位
v13 = 11500 Dim m As Integer '总记录数
Dim N As Integer '每页记录数
Dim ii As Integer '总页数
Dim j As Integer '页码数
Dim k As Integer '每页起始记录控制 m = MSFlexGrid2.Rows - 1 '总记录数
N = 100 '每页 20 条记录
b = m Mod N
If Int(m / N) - m / N = 0 Then
ii = m / N
Else
ii = Int(m / N) + 1
End If Printer.Height = 750 + 300 + 80 * N + 900 + 3000 '定义纸张高度----根据每页记录数
Printer.Width = 12000 '定义纸张宽度 For j = 1 To ii '外循环控制打印页数
Printer.CurrentX = 4000
Printer.CurrentY = 1000
Printer.FontSize = 24
Printer.FontName = "宋体"
Printer.Print "汽车油罐容积表 " Printer.CurrentX = 9250 '页码置于左上角
Printer.CurrentY = 1000
Printer.FontSize = 14
Printer.Print "第 " + Trim(Str(j)) + " 页 共 " & Trim(Str(ii)) + " 页"
Printer.CurrentX = 400
Printer.CurrentY = 2100
Printer.FontSize = 12
Printer.Print "车号:"
Printer.CurrentX = 4800
Printer.CurrentY = 2100
Printer.FontSize = 12
Printer.Print "油罐口总高:"
Printer.CurrentX = 8800
Printer.CurrentY = 2100
Printer.FontSize = 12
Printer.Print "单位:毫米"
'列标题
'A -------- 表主体纵向高度
a = 2500
Printer.Line (v1, a)-(v13, a) '画顶横线
If MSFlexGrid2.ColWidth(0) > 0 Then '第1列
Printer.Line (v1, a)-(v1, a + 450) '画左坚边线
Printer.CurrentX = 200
Printer.CurrentY = a + 100
Printer.FontSize = 10
Printer.Print "高度"
End If
If MSFlexGrid2.ColWidth(1) > 0 Then '第2列
Printer.Line (v2, a)-(v2, a + 450)
Printer.CurrentX = v2 + 40
Printer.CurrentY = a + 100
Printer.FontSize = 10
Printer.Print "容量(L)"
End If
If MSFlexGrid2.ColWidth(0) > 0 Then '第3列
Printer.Line (v3, a)-(v3, a + 450)
Printer.CurrentX = v3 + 40
Printer.CurrentY = a + 100
Printer.FontSize = 10
Printer.Print "高度"
End If
If MSFlexGrid2.ColWidth(1) > 0 Then '第4列
Printer.Line (v4, a)-(v4, a + 450)
Printer.CurrentX = v4 + 40
Printer.CurrentY = a + 100
Printer.FontSize = 10
Printer.Print "容量(L)"
End If
If MSFlexGrid2.ColWidth(0) > 0 Then '第5列
Printer.Line (v5, a)-(v5, a + 450)
Printer.CurrentX = v5 + 40
Printer.CurrentY = a + 100
Printer.FontSize = 10
Printer.Print "高度"
End If
If MSFlexGrid2.ColWidth(1) > 0 Then '第6列
Printer.Line (v6, a)-(v6, a + 450)
Printer.CurrentX = v6 + 40
Printer.CurrentY = a + 100
Printer.FontSize = 10
Printer.Print "容量(L)"
End If
If MSFlexGrid2.ColWidth(0) > 0 Then '第7列
Printer.Line (v7, a)-(v7, a + 450)
Printer.CurrentX = v7 + 40
Printer.CurrentY = a + 100
Printer.FontSize = 10
Printer.Print "高度"
End If
If MSFlexGrid2.ColWidth(1) > 0 Then '第8列
Printer.Line (v8, a)-(v8, a + 450)
Printer.CurrentX = v8 + 40
Printer.CurrentY = a + 100
Printer.FontSize = 10
Printer.Print "容量(L)"
Printer.Line (v9 + 10, a)-(v9 + 10, a + 450) '画右坚边线(封口) End If
a = 2950 'A -------- 表主体纵向高度
Printer.Line (v1, a)-(v13, a) '画横线
If j = 1 Then 'k 每页起始记录控制
k = 1 'k=0 表示第1行,k=1 表示第2行
Else
k = (j - 1) * N + 1
End If
''''''''''''''''''''''''''''''''''''
For i = k-1 To m - (ii - j) * N '内循环控制每页打印-------------分页打印
If MSFlexGrid2.ColWidth(0) > 0 Then '第1列
Printer.Line (v1, a)-(v1, a + 450) '画左坚边线
Printer.CurrentX = 50
Printer.CurrentY = a + 100
Printer.FontSize = 10
If MSFlexGrid2.TextMatrix(i, 0) <> "" Then 'i=0 时为第1行,标题行
Printer.Print MSFlexGrid2.TextMatrix(i, 0)
End If
End If
If MSFlexGrid2.ColWidth(1) > 0 Then '第2列
Printer.Line (v2, a)-(v2, a + 450)
Printer.CurrentX = v2 + 10
Printer.CurrentY = a + 100
Printer.FontSize = 10
If MSFlexGrid2.TextMatrix(i, 1) <> "" Then
Printer.Print MSFlexGrid2.TextMatrix(i, 1)
End If End If
i = i + 1
If MSFlexGrid2.ColWidth(0) > 0 Then '第3列
Printer.Line (v3, a)-(v3, a + 450) '画左坚边线
Printer.CurrentX = v3 + 10
Printer.CurrentY = a + 100
Printer.FontSize = 10
If MSFlexGrid2.TextMatrix(i, 0) <> "" Then 'i=0 时为第1行,标题行
Printer.Print MSFlexGrid2.TextMatrix(i, 0)
End If
End If
If MSFlexGrid2.ColWidth(1) > 0 Then '第4列
Printer.Line (v4, a)-(v4, a + 450)
Printer.CurrentX = v4 + 10
Printer.CurrentY = a + 100
Printer.FontSize = 10
If MSFlexGrid2.TextMatrix(i, 1) <> "" Then
Printer.Print MSFlexGrid2.TextMatrix(i, 1)
End If
End If
i = i + 1
If MSFlexGrid2.ColWidth(0) > 0 Then '第5列
Printer.Line (v5, a)-(v5, a + 450) '画左坚边线
Printer.CurrentX = v5 + 10
Printer.CurrentY = a + 100
Printer.FontSize = 10
If MSFlexGrid2.TextMatrix(i, 0) <> "" Then 'i=0 时为第1行,标题行
Printer.Print MSFlexGrid2.TextMatrix(i, 0)
End If
End If
If MSFlexGrid2.ColWidth(1) > 0 Then '第6列
Printer.Line (v6, a)-(v6, a + 450)
Printer.CurrentX = v6 + 10
Printer.CurrentY = a + 100
Printer.FontSize = 10
If MSFlexGrid2.TextMatrix(i, 1) <> "" Then
Printer.Print MSFlexGrid2.TextMatrix(i, 1)
End If
End If
i = i + 1
If MSFlexGrid2.ColWidth(0) > 0 Then '第7列
Printer.Line (v7, a)-(v7, a + 450) '画左坚边线
Printer.CurrentX = v7 + 10
Printer.CurrentY = a + 100
Printer.FontSize = 10
If MSFlexGrid2.TextMatrix(i, 0) <> "" Then 'i=0 时为第1行,标题行
Printer.Print MSFlexGrid2.TextMatrix(i, 0)
End If
End If
If MSFlexGrid2.ColWidth(1) > 0 Then '第8列
Printer.Line (v8, a)-(v8, a + 450)
Printer.CurrentX = v8 + 10
Printer.CurrentY = a + 100
Printer.FontSize = 10
If MSFlexGrid2.TextMatrix(i, 1) <> "" Then
Printer.Print MSFlexGrid2.TextMatrix(i, 1)
End If
Printer.Line (v9, a)-(v9, a + 450) '画右坚边线(封口)
End If
Printer.Line (v1, a + 450)-(v13, a + 450) '画下边横线
a = a + 450 '行距每次增加 450
Next i '内循环结束
Printer.NewPage '新的一页
Printer.EndDoc '换页
Next j '外循环结束
Call MsgBox("正在打印......!", vbOKOnly + vbInformation, "提示...")
End Sub
本人专门研究printer打印,已经有一个关于报表COM发布到本网站
http://download.csdn.net/source/2780285
也可以到我们专业VB报表讨论区