Dim doc As New PrintDoc '定义一个报表
'设置纸张
doc.PageSetting.PaperKind = 9 '纸张类型改为A4
doc.PageSetting.Landscape = False '纵向打印
'设置页边距
Doc.PageSetting.LeftMargin = 10 '设置左边距
Doc.PageSetting.RightMargin = 5 '设置右边距
Doc.PageSetting.TopMargin = 5 '设置上边距
Doc.PageSetting.BottomMargin = 5 '设置下边距
'设置页脚
Dim rt2 As New prt.RenderText '设置文本对象的内容
rt2.Text = "第[PageNo]页,共[PageCount]页" '设置文本内容
'rt2.Style.TextAlignHorz = prt.AlignHorzEnum.Right '靠右对齐
rt2.Style.TextAlignHorz = prt.AlignHorzEnum.Center'中心对齐
rt2.Style.Borders.Bottom = New prt.LineDef(0, Color.Green) '设置底边框
rt2.Style.Padding.Bottom = 0.2 '底端内容缩进0.5毫米
rt2.Style.FontSize = 10 '字体大小为8磅
'Doc.PageHeader = rt2 '作为页眉使用
Doc.PageFooter = rt2'作为脚使用
Dim rt As New prt.RenderTable() '定义一个表格对象
doc.Body.Children.Add(rt) '将表格对象加入到报表中
'设置列宽
rt.Style.FontSize = 10'字体大小
rt.Cols(0).Width = 25 '序号 mm
rt.Cols(3).Width = 25 '序号
rt.Cols(6).Width = 25 '序号
rt.Cols(1).Width = 25 '名称
rt.Cols(4).Width = 25 '名称
rt.Cols(7).Width = 25 '名称
rt.Cols(2).Width = 25 '金额
rt.Cols(5).Width = 25 '金额
rt.Cols(8).Width = 25 '金额
rt.Style.GridLines.All = New prt.Linedef '设置网格线
rt.CellStyle.Spacing.All = 1 '内容距离网格线1毫米
'设置主标题
rt.Cells(0, 0).text = "收入及支出报表"
rt.Cells(0, 0).SpanCols = 9 '合并第一行全部单元格,用于显示主标题
'设置对齐
rt.Style.TextAlignHorz = prt.AlignHorzEnum.Left'所有水平左对齐
rt.Style.TextAlignVert = prt.AlignVertEnum.Center '所有垂直中心对齐
'例外 金额列水平右对齐
rt.Cols(2).Style.TextAlignHorz = prt.AlignHorzEnum.Right
rt.Cols(5).Style.TextAlignHorz = prt.AlignHorzEnum.Right
rt.Cols(8).Style.TextAlignHorz = prt.AlignHorzEnum.Right
'例外 前3行水平中心对齐
'rt.cells(2, 2).Style.TextAlignHorz = prt.AlignHorzEnum.Center
'rt.cells(2, 5).Style.TextAlignHorz = prt.AlignHorzEnum.Center
'rt.cells(2, 8).Style.TextAlignHorz = prt.AlignHorzEnum.Center
'rt.Cells(0, 0).Style.TextAlignHorz = prt.AlignHorzEnum.Center '主标题居中
rt.Cells(0, 0).Style.Font = New Font("宋体", 16, FontStyle.Bold) '设置主标题字体
rt.Rows(0).Style.Borders.All = New prt.LineDef("0mm", Color.white) '去掉第一行的网格线
rt.Rows(0).Style.GridLines.Bottom = New prt.LineDef("0.1mm", Color.black) '设置底边框
'合并行设置及赋值
rt.cells(1, 0).SpanCols = 3 '合并第一行前3个单元格
rt.cells(1, 0).Text = "收入" '设置第一行第一个单元格的内容
rt.Cells(1, 3).SpanCols = 6 '合并第一行最后6个单元格
rt.Cells(1, 3).Text = "支出" '设置第一行第四个单元格的内容
rt.Cells(2, 0).Text = "序号1"
rt.Cells(2, 1).Text = "名称1"
rt.Cells(2, 2).Text = "金额1"
rt.Cells(2, 3).Text = "序号2"
rt.Cells(2, 4).Text = "名称2"
rt.Cells(2, 5).Text = "金额2"
rt.Cells(2, 6).Text = "序号3"
rt.Cells(2, 7).Text = "名称3"
rt.Cells(2, 8).Text = "金额3"
rt.RowGroups(0, 3).Header = prt.TableHeaderEnum.All '前3行作为表头(从0开始,共3行)
rt.RowGroups(0, 3).Style.TextAlignHorz = prt.AlignHorzEnum.Center'前3行水平对齐
Dim tb As Table = Tables("主窗口_Tab_收支报表")
Dim ColNames As New List(Of String)
For Each cl As Col In tb.Cols '排除隐藏列
If cl.Visible Then
ColNames.Add(cl.Name)
End If
Next
For ri As Integer = 0 To tb.Rows.count - 1 '行循环赋值
For ci As Integer = 0 To ColNames.Count - 1 '列循环赋值
rt.Cells(ri + 3, ci).Text = tb.Rows(ri)(ColNames(ci))
Next
Next
Doc.Preview() '预览报表
第三行 金额列为什么没有居中