-- 作者:hdffzxf
-- 发布时间:2014/4/10 12:51:00
--
相关代码:
Dim doc As New PrintDoc \'定义一个新报表 Dim rt As New prt.RenderTable \'定义一个表体表格 Dim bt As New prt.RenderTable \'定义页眉表格 Dim tb As Table = Tables("窗口1_Table1") Dim cnt As Integer \'用于记录列位置 Dim hd As Integer = tb.HeaderRows \'获得表头的层数 tb.CreateReportHeader(rt,True) \'生成多层表头,排除隐藏列
For c As Integer = 0 To tb.Cols.Count -1 \'逐列设置和填入内容 If tb.Cols(c).Visible Then rt.Cols(cnt).Width = tb.Cols(c).PrintWidth \'列宽等于实际列宽 If tb.Cols(c).IsNumeric OrElse tb.Cols(c).IsDate Then \'如果是数值或日期列 rt.Cols(cnt).Style.TextAlignHorz = prt.AlignHorzEnum.Right \'数据水平靠右 End If For r As Integer = 0 To tb.Rows.Count -1 \'开始填入该列内容 rt.Cells(r + hd+3, cnt).Style.F \'设置字体 rt.Cells(r + hd+3, cnt).Style.FontSize=10 \'设置字号 rt.Cells(r + hd+3, cnt).Style.Fontbold = False \'不设置加粗 rt.Rows(r + hd+3).Height = tb.DefaultRowHeight/4 \'设置行高 If tb.Cols(c).IsNumeric And tb.Cols(c).Name Like "*行次*"=False And tb.Cols(c).Name Like "*序号*"=False Then If tb(r,c)=0 Then \'如果是数值或日期列 rt.Cells(r + hd+3, cnt).Text ="" Else rt.Cells(r + hd+3, cnt).Text = format(tb(r,c),"#,###.00") End If Else rt.Cells(r + hd+3, cnt).Text = tb(r,c) End If Next cnt = cnt + 1 End If Next
rt.Style.Gridlines.All = New prt.Linedef(Color.black ) \'黑色网格线 rt.CellStyle.Spacing.All = 0.5 \'单元格内距设为0.5毫米
Doc.PageHeader = bt \'表名做为页眉使用 rt.RowGroups(0, hd).Header = prt.TableHeaderEnum.All \'利用行组功能设置表头 rt.RowGroups(0, hd).Style.F \'设置字体 rt.RowGroups(0, hd).Style.FontSize=10 \'设置字号 rt.RowGroups(0, hd).Style.Fontbold = False \'不设置加粗
rt.SplitHorzBehavior = prt.SplitBehaviorEnum.SplitIfNeeded \' 表格宽度超出页宽时,可以水平换页 rt.SplitVertBehavior = prt.SplitBehaviorEnum.SplitIfNeeded \' \'表格宽度超出页宽时,可以水平换页
rt.Height ="Parent.Height" doc.Body.Children.Add(rt) \'将表格加入到报表 doc.Preview()
|
-- 作者:有点甜
-- 发布时间:2014/4/10 13:57:00
--
这段代码,为什么要+3?
rt.Cells(r + hd+3, cnt).Style.F \'设置字体 rt.Cells(r + hd+3, cnt).Style.FontSize=10 \'设置字号 rt.Cells(r + hd+3, cnt).Style.Fontbold = False \'不设置加粗 rt.Rows(r + hd+3).Height = tb.DefaultRowHeight/4 \'设置行高 If tb.Cols(c).IsNumeric And tb.Cols(c).Name Like "*行次*"=False And tb.Cols(c).Name Like "*序号*"=False Then If tb(r,c)=0 Then \'如果是数值或日期列 rt.Cells(r + hd+3, cnt).Text ="" Else rt.Cells(r + hd+3, cnt).Text = format(tb(r,c),"#,###.00") End If Else rt.Cells(r + hd+3, cnt).Text = tb(r,c) End If
|