1,979
社区成员
发帖
与我相关
我的任务
分享
Imports System.Drawing
Imports System.Drawing.Printing
Public Class Print
Private pagePos As Int16 = 0 '当前行数
Private XM_POS As Int16 = 0 '当前项目
Private WithEvents pd As New PrintDocument()
Private T As New DataSet
Private Sub pd_EndPrint(ByVal sender As Object, ByVal e As System.Drawing.Printing.PrintEventArgs) Handles pd.EndPrint
pagePos = 0
End Sub
Dim top_namet As Font = New Font("微软雅黑", 24)
Dim top_t As Font = New Font("微软雅黑", 9)
Dim mBrush As New SolidBrush(Color.Black)
Dim T_NAME_Format As New StringFormat
Private Sub pd_Print(ByVal sender As Object, ev As PrintPageEventArgs) Handles pd.PrintPage
Dim ColumnLefts As New ArrayList, ColumnWidths As New ArrayList '数组左与右
Dim TmpLeft, TmpWidth, Tmptop As Int16 '左 宽 标题行高
TmpLeft = 60
Tmptop = 25
Dim ts_lino As Int16 = TmpLeft
For I = 0 To T.Tables(XM_POS).Columns.Count - 1
If I = 1 Then Continue For
TmpWidth = Lw(I)
ColumnLefts.Add(TmpLeft)
ColumnWidths.Add(TmpWidth)
TmpLeft += TmpWidth
Next
TmpLeft = 0
TOPH += 7
T_NAME_Format.LineAlignment = StringAlignment.Center
Dim nn As Byte = 0
For I = 0 To T.Tables(XM_POS).Columns.Count - 1
If I = 1 Then Continue For
ev.Graphics.DrawRectangle(Pens.Black, New Rectangle(ColumnLefts(nn) + TmpLeft, _
TOPH + Tmptop, ColumnWidths(nn), Tmptop * 2))
ev.Graphics.DrawString(T.Tables(XM_POS).Columns(I).ColumnName.ToString, top_t, mBrush, New RectangleF(ColumnLefts(nn) + TmpLeft, _
TOPH + Tmptop, ColumnWidths(nn), Tmptop * 2), T_NAME_Format)
nn += 1
Next
'内容
TOPH += Tmptop * 3
If XM_POS <= T.Tables.Count - 1 Then
Do While pagePos <= T.Tables(XM_POS).Rows.Count - 1 '加入循环
If TOPH < 590 Then
nn = 0
For ii = 0 To T.Tables(XM_POS).Columns.Count - 1
If ii = 1 Then Continue For
ev.Graphics.DrawRectangle(Pens.Black, New Rectangle(ColumnLefts(nn) + TmpLeft, _
TOPH, ColumnWidths(nn), Tmptop))
ev.Graphics.DrawString(T.Tables(XM_POS).Rows(pagePos)(ii).ToString, top_t, mBrush, New RectangleF(ColumnLefts(nn) + TmpLeft, _
TOPH, ColumnWidths(nn), Tmptop), T_NAME_Format) '加入循环
nn += 1
Next
TOPH += Tmptop
pagePos += 1
ev.HasMorePages = False
Else '超出换页
ev.HasMorePages = True
End If
Loop
'项目换页
XM_POS += 1
pagePos = 0
ev.HasMorePages = True
Else
ev.HasMorePages = False
End If
End Sub
End Class