看我写的PrintTextFile,为什么是多页重合成一页
'此过程向打印机传送打印数据
Private Sub PrintTextFile(ByVal sender As System.Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs)
Dim yPos As Single = 0
Dim liftMargin As Single = e.MarginBounds.Left
Dim topMargin As Single = e.MarginBounds.Top
Static PrintOnNextPage As Boolean = False
Dim TotalPage As Integer '总页数
If Mym.ClientsDataSet.工资表.Count Mod 10 = 0 Then
TotalPage = CInt(Mym.ClientsDataSet.工资表.Count / 10)
Else
TotalPage = CInt(Mym.ClientsDataSet.工资表.Count / 10) + 1
End If
For i As Integer = 1 To TotalPage
Me.streamToPrint = Nothing
e.HasMorePages = True
If i = TotalPage Then
For a As Integer = (i - 1) * 10 To Mym.ClientsDataSet.工资表.Count - 1
Me.streamToPrint = Me.streamToPrint + " —————————————————————————————————————————————————————---" + Chr(10)
Me.streamToPrint = Me.streamToPrint + "| 姓名 |工资总额|加班费|请假扣除|考勤扣除| 罚款 |迟到扣除|住房公积金|医疗保险|失业保险|养老保险|实发工资|" + Chr(10)
Me.streamToPrint = Me.streamToPrint + " —————————————————————————————————————————————————————---" + Chr(10)
Me.streamToPrint = Me.streamToPrint + "|" + Mym.ClientsDataSet.工资表.Item(a).姓名.PadRight(12, CChar(" ")) + "|" + CStr(Mym.ClientsDataSet.工资表.Item(a).工资总额).PadLeft(8, CChar(" ")) + "|" + CStr(Mym.ClientsDataSet.工资表.Item(a).加班费).PadLeft(6, CChar(" ")) + "|" + CStr(Mym.ClientsDataSet.工资表.Item(a).请假扣除).PadLeft(8, CChar(" ")) + "|" + CStr(Mym.ClientsDataSet.工资表.Item(a).考勤扣除).PadLeft(8, CChar(" ")) + "|" + CStr(Mym.ClientsDataSet.工资表.Item(a).罚款).PadLeft(8, CChar(" ")) + "|" + CStr(Mym.ClientsDataSet.工资表.Item(a).迟到单价 * Mym.ClientsDataSet.工资表.Item(a).迟到分钟数).PadLeft(8, CChar(" ")) + "|" + CStr(Mym.ClientsDataSet.工资表.Item(a).住房公积金).PadLeft(10, CChar(" ")) + "|" + CStr(Mym.ClientsDataSet.工资表.Item(a).医疗保险).PadLeft(8, CChar(" ")) + "|" + CStr(Mym.ClientsDataSet.工资表.Item(a).失业保险).PadLeft(8, CChar(" ")) + "|" + CStr(Mym.ClientsDataSet.工资表.Item(a).养老保险).PadLeft(8, CChar(" ")) + "|" + CStr(Mym.ClientsDataSet.工资表.Item(a).实发工资).PadLeft(8, CChar(" ")) + "|" + Chr(10)
Next
Me.streamToPrint = Me.streamToPrint + " —————————————————————————————————————————————————————---" + Chr(10)
e.Graphics.DrawString(Me.streamToPrint, New Font("宋体", 12), Brushes.Black, 0, 0)
PrintOnNextPage = True
Else
For a As Integer = (i - 1) * 10 To i * 10 - 1
Me.streamToPrint = Me.streamToPrint + " —————————————————————————————————————————————————————---" + Chr(10)
Me.streamToPrint = Me.streamToPrint + "| 姓名 |工资总额|加班费|请假扣除|考勤扣除| 罚款 |迟到扣除|住房公积金|医疗保险|失业保险|养老保险|实发工资|" + Chr(10)
Me.streamToPrint = Me.streamToPrint + " —————————————————————————————————————————————————————---" + Chr(10)
Me.streamToPrint = Me.streamToPrint + "|" + Mym.ClientsDataSet.工资表.Item(a).姓名.PadRight(12, CChar(" ")) + "|" + CStr(Mym.ClientsDataSet.工资表.Item(a).工资总额).PadLeft(8, CChar(" ")) + "|" + CStr(Mym.ClientsDataSet.工资表.Item(a).加班费).PadLeft(6, CChar(" ")) + "|" + CStr(Mym.ClientsDataSet.工资表.Item(a).请假扣除).PadLeft(8, CChar(" ")) + "|" + CStr(Mym.ClientsDataSet.工资表.Item(a).考勤扣除).PadLeft(8, CChar(" ")) + "|" + CStr(Mym.ClientsDataSet.工资表.Item(a).罚款).PadLeft(8, CChar(" ")) + "|" + CStr(Mym.ClientsDataSet.工资表.Item(a).迟到单价 * Mym.ClientsDataSet.工资表.Item(a).迟到分钟数).PadLeft(8, CChar(" ")) + "|" + CStr(Mym.ClientsDataSet.工资表.Item(a).住房公积金).PadLeft(10, CChar(" ")) + "|" + CStr(Mym.ClientsDataSet.工资表.Item(a).医疗保险).PadLeft(8, CChar(" ")) + "|" + CStr(Mym.ClientsDataSet.工资表.Item(a).失业保险).PadLeft(8, CChar(" ")) + "|" + CStr(Mym.ClientsDataSet.工资表.Item(a).养老保险).PadLeft(8, CChar(" ")) + "|" + CStr(Mym.ClientsDataSet.工资表.Item(a).实发工资).PadLeft(8, CChar(" ")) + "|" + Chr(10)
Next
Me.streamToPrint = Me.streamToPrint + " —————————————————————————————————————————————————————---" + Chr(10)
e.Graphics.DrawString(Me.streamToPrint, New Font("宋体", 12), Brushes.Black, 0, 0)
PrintOnNextPage = True
End If
'e.Graphics.DrawString(Me.streamToPrint, New Font("宋体", 12), Brushes.Black, 0, 0)
If i + 1 > TotalPage Then
e.HasMorePages = False
Else
e.HasMorePages = True
End If
Next
End Sub