指定行高和列宽

示例一

Dim doc As New PrintDoc '定义一个报表
Dim
rt As New prt.RenderTable() '定义一个表格对象
doc.Body.Children.Add(rt)
'将表格对象加入到报表中
rt.Style.GridLines.All = New prt.LineDef
'将网格线类型设为默认类型
rt.Width =
"Auto"
For
i As integer = 0 To 3
    rt.Rows(i).Height =
10 * i '设置行高
    rt.Cols(i).Width =
10 * i '设置列宽
next

Doc.Preview()
'预览报表

这是执行结果:

需要注意的是,如果要分别指定了每一列的绝对宽度,那么下面这一行是必须的:

rt.Width = "Auto"

只有这样,表格的宽度才会自动等于各列所设置宽度之和,否则表格的宽度将始终等于页面可打印区域的宽度,而列宽的设置值将成为该列宽度占表宽的比例。

示例二

例如下面的代码,因为没有将表格的宽度设为自动,所以表格的宽度等于页宽,第一列和第二列的宽度分别占表宽的25%,第三列占50%:

Dim doc As New PrintDoc '定义一个报表
Dim
rt As New prt.RenderTable() '定义一个表格对象
doc.Body.Children.Add(rt)
'将表格对象加入到报表中
rt.Style.GridLines.All = New prt.LineDef
'将网格线类型设为默认类型
rt.Height =
60 '
rt.Rows.Count =
3
rt.Cols(
0).Width = 25
rt.Cols(
1).Width = 25
rt.Cols(
2).Width = 50
Doc.Preview()
'预览报表

执行结果:

示例三

如果只是指定其中部分列的宽度,那么指定的列宽就是实际列宽,表宽减去这些列的宽度后,剩余的宽度将被平均分配到其余各列。
例如下面的代码,表格的宽度等于页宽,第一列的宽度为40毫米,剩余宽度被平均分配到另外两列:

Dim doc As New PrintDoc '定义一个报表
Dim
rt As New prt.RenderTable() '定义一个表格对象
doc.Body.Children.Add(rt)
'将表格对象加入到报表中
rt.Style.GridLines.All = New prt.LineDef '将网格线类型设为默认类型
rt.Height =
60 '
rt.Rows.Count =
3
rt.Cols.Count =
3
rt.Cols(
0).Width = 40
Doc.Preview()
'预览报表

执行结果:


本页地址:http://www.foxtable.com/webhelp/topics/1204.htm