每页都显示标题和表头
假定打印表的时候,希望每页都显示主标题、副标题和表头,如下图所示:
看起来有点麻烦,不过如果我们将主标题和副标题作为表头的一部分,那么问题迎刃而解,你可以在命令窗口测试下面的代码:
Dim
doc As
New PrintDoc
'定义一个报表
Dim
rt As
New prt.RenderTable()
'定义一个表格对象
doc.Body.Children.Add(rt)
'将表格对象加入到报表中
rt.Style.GridLines.All
= New prt.Linedef
'设置网格线
rt.CellStyle.Spacing.All
= 1
'内容距离网格线1毫米
'设置主标题
rt.Cells(0,0).text
=
"主标题内容"
rt.Cells(0,0).SpanCols
= 6
'合并第一行全部单元格,用于显示主标题
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.Cells(1,0).text
=
" 副标题内容"
'通过左边空格数量来调整副标题位置
rt.Cells(1,0).SpanCols
= 6
'合并地二行全部单元格,用于显示副标题
rt.Cells(1,0).Style.TextAlignHorz
= prt.AlignHorzEnum.Center
'副标题内容居中
rt.Rows(1).Style.Borders.All
= New prt.LineDef("0mm",
Color.white)
'去掉第二行的网格线
rt.Rows(1).Style.Borders.Bottom
= New prt.Linedef
'恢复第二行底端的网格线
rt.Rows(1).Height
= 8
'设置第二行的高度,拉开和表格主体的距离.
'设置列标题
rt.cells(2,0).SpanCols
= 3
'合并第一行前三个单元格
rt.Cells(2,3).SpanCols
= 3
'合并第一行最后三个单元格
rt.cells(2,0).Text
=
"第一季度"
'设置第一行第一个单元格的内容
rt.Cells(2,3).Text
=
"第二季度"
'设置第一行第四个单元格的内容
rt.Cells(3,0).Text=
"华东"
rt.Cells(3,1).Text
= "华南"
rt.Cells(3,2).Text
= "华北"
rt.Cells(3,3).Text=
"华东"
rt.Cells(3,4).Text
= "华南"
rt.Cells(3,5).Text
= "华北"
rt.RowGroups(2,2).Style.BackColor
= Color.LightGray
'第三第四行的颜色设为灰色
rt.RowGroups(2,2).Style.TextAlignHorz
= prt.AlignHorzEnum.Center
'第三第四行的文本水平居中
rt.RowGroups(2,2).Style.TextAlignVert
= prt.AlignVertEnum.Center
'第三第四行的文本垂直居中
rt.RowGroups(0,4).Header
= prt.TableHeaderEnum.All
'前四行作为表头
'给表格增加行测试效果
For
i
As
Integer
=
2
To
100
'增加100行
rt.Cells(i
+ 2, 0).Text
= i
Next
Doc.Preview()
'预览报表