Dim tb As Table = Tables("学生体检信息导入_table1")
Dim ColNames As String() = New String() {"班次", "姓名", "体检编号"}
Dim doc As New PrintDoc '定义一个新报表
'添加标题
Dim rt1 As New prt.RenderText '定义一个文本对象
Dim ra As New prt.RenderArea
rt1.Text = tb.Current("班次") & "班体检名单"
rt1.Style.Font = New Font("宋体", 14, FontStyle.Bold) '设置标题字体
rt1.Style.TextAlignHorz = prt.AlignHorzEnum.Center '标题水平居中
rt1.Height = 8 '高度等于容器高度
ra.Children.Add(rt1) '加入到容器中
doc.Body.Children.Add(ra) '将容器加入到报表
Dim rt As New prt.RenderTable '定义一个新表格
rt.Cols.Count = 3 '设置列数
' 设置表格行高和列宽
For i As Integer = 0 To tb.Rows.Count - 1
rt.Rows(i).Height = 8 '设置行高
Next
If tb.Rows.Count > 30 Then
rt.Cols(0).Width = 53 '设置列宽
rt.Cols(1).Width = 20 '设置列宽
rt.Cols(2).Width = 10 '设置列宽
' 设置表格样式
rt.Style.TextAlignHorz = prt.AlignHorzEnum.Center '内容水平居中
rt.Style.TextAlignVert = prt.AlignVertEnum.Center '内容垂直居中
rt.Width = "Auto" '表格宽度为自动
rt.Style.Font = New Font("宋体", 11) '设置表格字体
' 设置分栏
doc.Columns.Add() '第一栏
doc.Columns.Add() '第二栏
Doc.Columns(0).Width = 80 '第一栏的宽度为60毫米
Doc.Columns(1).Width = 80 '第一栏的宽度为60毫米
Doc.Columns(0).Spacing = 10 '栏间距1毫米
End If
' 强制换页
Dim drs As List(Of DataRow) = tb.DataTable.Select("班次 is not null")
For ii As Integer = 1 To drs.Count - 1
If drs(ii)("班次") <> drs(ii - 1)("班次") Then
Dim rm As New prt.RenderText '定义一个文本对象y
rm.BreakAfter = prt.BreakEnum.Column '打印之后另起一栏
doc.Body.Children.Add(rm) '加入到报表中
End If
Next
' 逐列设置和填入内容
For c As Integer = 0 To ColNames.Length - 1
rt.Style.TextAlignHorz = prt.AlignHorzEnum.Center '内容水平居中
rt.Style.TextAlignVert = prt.AlignVertEnum.Center '内容垂直居中
For r As Integer = 0 To tb.Rows.Count - 1 '开始填入该列内容
rt.Cells(r, c).Text = tb.Rows(r)(ColNames(c))
Next
Next
' 设置表格样式
rt.Style.Gridlines.All = New prt.Linedef(Color.Gray) '灰色网格线
rt.CellStyle.Spacing.All = 0.5 '单元格内距设为0.5毫米
rt.Rows(0).Style.TextAlignHorz = prt.AlignHorzEnum.Center '第一行内容水平居中
' rt.RowGroups(0, 1).Header = prt.TableHeaderEnum.All '利用行组,将第一行设为表头
doc.PageSetting.LeftMargin = 15 '设置左边距
doc.PageSetting.RightMargin = 15'设置右边距
doc.PageSetting.TopMargin = 15 '设置上边距
doc.PageSetting.BottomMargin = 15 '设置上边距
doc.Body.Children.Add(rt) ' 将表格加入到报表
doc.Preview() ' 预览报表