打印行号列
如果要打印行号列,可以参考下面的代码:
Dim 
doc 
As New 
PrintDoc 
'定义一个新报表
Dim rt 
As New 
prt.RenderTable
'定义一个新表格
Dim tb 
As Table 
= Tables("订单")
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
rt.Width 
= "Auto"
'表格宽度为自动,也就是等于各列设置宽度之和
rt.SplitHorzBehavior 
= prt.SplitBehaviorEnum.SplitIfNeeded
'表格宽度超出页宽时,可以水平换页
rt.Style.Font 
= tb.Font
For c 
As Integer 
= 0 
To ColNames.Count 
- 1
'逐列设置和填入内容
    rt.Cells(0,c).Text 
= ColNames(c)
'列名作为标题
    rt.Cells(0,c).Style.TextAlignHorz 
= prt.AlignHorzEnum.Center
'标题内容水平居中
    rt.Cols(c).Width 
= tb.Cols(ColNames(c)).PrintWidth
'列宽等于实际列宽
    If tb.Cols(ColNames(c)).IsNumeric 
OrElse tb.Cols(ColNames(c)).IsDate 
Then '如果是数值或日期列
        
rt.Cols(c).Style.TextAlignHorz 
= prt.AlignHorzEnum.Right
'数据水平靠右
    End If
    For r 
As Integer 
= 0 
To tb.Rows.Count 
- 1
'开始填入该列内容
        
rt.Cells(r 
+ 1,
c).Text 
= tb.Rows(r)(ColNames(c))
    Next
Next
rt.Cols.Insert(0)
'在左边插入一列,用于打印行号
rt.Cols(0).Width 
= 10 
'设置行号列的宽度
For i 
As Integer 
=  
1 
To rt.Rows.Count 
- 1
    rt.Cells(i,0).text 
= i 
'逐行写入行号
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.Body.Children.Add(rt)
'将表格加入到报表
doc.Preview()
上述代码中,加粗的几行用于打印行号,其原理很简单: 按常规生成要打印的表,然后在左边插入一列,按顺序自动填入行号。
    
本页地址:http://www.foxtable.com/webhelp/topics/2619.htm