Dim Printrow() As String
Dim printcol(0 To 8) As String
Dim flexarry As String
Dim lines As String
Dim counts As String
Dim bottom_margin As Single
Const _MARGIN = 1440
Const LEFT_MARGIN = 1440
lines = "————————————————————————————————————————————————————————————"
FontItalic = False
Font = "宋体"
FontSize = 14
Print
Print
Print
bottom_margin = printer.Scale + printer.ScaleHeight - 1440
For i = 1 To 8
printcol(i) = MSHFlexGrid1.TextArray(i)
If i = 0 Then Printer.print Tab(5);
If i = 1 Then Printer.print Tab(10);
If i = 2 Then Printer.print Tab(18);
If i = 3 Then Printer.print Tab(26);
If i = 4 Then Printer.print Tab(34);
If i = 5 Then Printer.print Tab(44);
If i = 6 Then Printer.print Tab(54);
If i = 7 Then Printer.print Tab(65);
If i = 8 Then Printer.print Tab(73);
Print printcol(i);
Next i
Printer.print
Printer.print lines
Printer.CurrentY = _MARGIN
counts = MSHFlexGrid1.Rows
ReDim Printrow(counts)
For j = 1 To counts - 1
For k = 0 To 8
Printrow(j - 1) = MSHFlexGrid1.TextMatrix(j, k)
If k = 0 Then Print Tab(5);
If k = 1 Then Print Tab(10);
If k = 2 Then Print Tab(18);
If k = 3 Then Print Tab(26);
If k = 4 Then Print Tab(34);
If k = 5 Then Print Tab(44);
If k = 6 Then Print Tab(54);
If k = 7 Then Print Tab(65);
If k = 8 Then Print Tab(73);
Print Printrow(j - 1);
Next k
Printer.print
Printer.print lines
If CurrentY >= bottom_margin Then
start a new pge
For q = 1 To 8 我想在第二页中也有表的字段可是它总是打在第一页的末尾,这是什么原因。
printcol(q) = MSHFlexGrid1.TextArray(q)
If q = 0 Then Printer.Print Tab(5);
If q = 1 Then Printer.Print Tab(10);
If q = 2 Then Printer.Print Tab(18);
If q = 3 Then Printer.Print Tab(26);
If q = 4 Then Printer.Print Tab(34);
If q = 5 Then Printer.Print Tab(44);
If q = 6 Then Printer.Print Tab(54);
If i = 7 Then Printer.Print Tab(65);
If i = 8 Then Printer.Print Tab(73);
Printer.Print printcol(q);
Next q
Printer.Print
Printer.print NewPage
Printer.CurrentY = _MARGIN
Printer.Print
Printer.Print lines
End If
Next j
Printer.EndDoc
我改呀改的最后改得效果越来越不好不是重页就是间距自动大了我都不知道哪的原因。请大家帮帮忙在此谢谢了。
还有我定义了lines as string
lines="_______"
目的是在每一行的末尾,打一回车后再一横线。可是有时能打印.有时打不出来.因为我总是改这几条语句。Printer.CurrentY = _MARGIN我不知道把它放在哪个语句的位置合适。
If CurrentY >= bottom_margin Then
Printer.print NewPage
Printer.CurrentY = _MARGIN
endif
If CurrentY >= bottom_margin Then
Printer.print NewPage
Printer.CurrentY = _MARGIN
endif
不能让CurrentY = bottom_margin 它时才换行,这样会有数据无法打印出来
一般当CurrentY + 一段距离 就开始换行,这个是多少自己定,我一般控制在5厘米
错几行的方法可以控制CurrentY来实现