列组
我们也可以将多列组合成一组进行设置,列组和行组一样,也有Style和Header属性。
假定一个表格很宽,以致水平方向要分页才行,我们希望最关键的一列,例如编号列,能够出现在每一页的左边。
示例:
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 = 0.5
'内容距离网格线0.5毫米
rt.Style.TextAlignHorz = prt.AlignHorzEnum.Center
'内容水平居中
rt.Style.TextAlignVert = prt.AlignVertEnum.Center
'内容垂直居中
rt.Rows(0).Style.BackColor
= Color.LightGray '第一行背景颜色设为灰色。
rt.RowGroups(0,1).Header
= prt.TableHeaderEnum.All '将第一行作为表头。
rt.Cols(0).Style.BackColor
= Color.LightGray '第一列背景颜色设为灰色。
rt.ColGroups(0,1).Header
= prt.TableHeaderEnum.All '将第一列作为表头。
rt.Width
= "Auto"
'表宽等于各列设置值之和
rt.SplitHorzBehavior = prt.SplitBehaviorEnum.SplitIfNeeded
'表格宽度超出页宽时,可以水平换页
'下面的代码向表格中填入值
For c As
Integer =
0
to
100
rt.Cols(c).Width = 15
'明确指定每一列的宽度
If
c = 0
then
rt.Cells(0,0).
Text = "编号"
Else
rt.Cells(0,
c).Text = "第" & (c +
1) &
"列"
End If
Next
For r As
Integer =
1
To
50
rt.Cells(r,0).Text
= r
For c
As
integer =
1
to
100
rt.Cells(r,c).Text = r &
"," & c
Next
Next
doc.Preview() '预览报表
执行后,你会发现编号列显示在每一页的左边:
再次提醒一下,如果需要表格的宽度等于各列的列宽设置值之和,必须满足三个条件:
1、表格的宽度设为“Auto”:
rt.Width
= "Auto"
'表宽等于各列设置值之和
2、如果宽度超过页宽,那么必须允许表格水平换页:
rt.SplitHorzBehavior = prt.SplitBehaviorEnum.SplitIfNeeded
3、每一列都必须设置列宽,不能漏掉任何一列,否则表宽始终等于页宽。
本页地址:http://www.foxtable.com/webhelp/topics/1217.htm