Dim doc As New PrintDoc()
doc.PageSetting.PaperKind = 9 '纸张类型
Doc.PageSetting.LeftMargin = 5 '设置左边距
Doc.PageSetting.RightMargin = 5 '设置右边距
Doc.PageSetting.TopMargin = 5 '设置上边距
Doc.PageSetting.BottomMargin = 5 '设置下边距
doc.PageSetting.Landscape = True
Dim rx As New prt.RenderText '定义一个文本对象
rx.text = "集控表"
rx.Style.FontBold = True '字体加粗
rx.Style.FontSize = 16 '大体大小为16磅
rx.Style.TextAlignHorz = prt.AlignHorzEnum.Center '水平居中排列
rx.Style.Spacing.Bottom = 3 '和下面的对象(表格)距离3毫米
doc.Body.Children.Add(rx) '加入到报表中
Dim rt1 As New prt.RenderTable() '定义一个表格对象
rt1.Rows.Count = 2 '设置总行数
rt1.Cols.Count = 4 '设置总列数
rt1.Height = 20'设置表格的高度为80毫米
rT1.Style.FontSize = 12 '字体大小为8磅
rt1.CellStyle.Spacing.All = 1 '单元格内容缩进1毫米
rT1.Style.Spacing.Bottom = 2 '和下面的对象(表格)距离3毫米
rt1.Cols(0).Width = 25
rt1.Cols(1).Width = 35
rt1.Cols(2).Width = 20
rt1.Cells(0,0).Text= "产品编号"
rt1.Cells(0,1).Text = Tables("生产单").Current("老产品编号")
rt1.Cells(0,2).Text= "产品名称"
rt1.Cells(0,3).Text= Tables("集控表").Current("产品名称")
rt1.Cells(1,0).Text= "产品类型"
rt1.Cells(1,1).Text = Tables("集控表").Current("产品类型")
rt1.Cells(1,2).Text= "产品结构"
rt1.Cells(1,3).Text= Tables("集控表").Current("产品结构")
rt1.Style.Gridlines.All = New prt.Linedef(Color.Gray) '灰色网格线
doc.Body.Children.Add(rt1)
Dim rt As New prt.RenderTable '定义一个新表格
Dim tb As Table = Tables("集控表")
Dim RR As Row =tb.rows(0)
Dim hd As Integer = tb.HeaderRows '获得表头的层数
Dim cnt As Integer '用于记录列位置
'rt.Width = "Auto" '表格宽度为自动,也就是等于各列设置宽度之和
rt.Style.Font = tb.Font
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(0+HD, cnt).Text = rr(c)
Select Case tb.Cols(c).name
Case "一层_重量","一层_米数" '如果是人口列或面积列
rr(c)= format(rr(c),"00.0") '则显示千位分割符号
Case "一层_比例","二层_比例" '如果是人口列或面积列
rr(c)= format(rr(c),"00.0%") '则显示千位分割符号
End Select
Next
cnt = cnt + 1
End If
Next
rt.Style.Gridlines.All = New prt.Linedef(Color.Gray) '灰色网格线
rt.CellStyle.Spacing.All = 0.5 '单元格内距设为0.5毫米
rt.RowGroups(0, tb.HeaderRows).Header = prt.TableHeaderEnum.All '利用行组功能设置表头
doc.Body.Children.Add(rt) '将表格加入到报表
Dim rt2 As New prt.RenderTable() '定义一个表格对象
rt2.Rows.Count = 2 '设置总行数
rt2.Cols.Count = 2 '设置总列数
rt2.Height = 20'设置表格的高度为80毫米
rT2.Style.FontSize = 12 '字体大小为8磅
rt2.CellStyle.Spacing.All = 1 '单元格内容缩进1毫米
rT2.Style.Spacing.Bottom = 2 '和下面的对象(表格)距离3毫米
rt2.Cols(0).Width = 45
rt2.Cells(0,0).Text= "实际与预算正负比(%)"
rt2.Cells(0,1).Text =RR("预算与实际比例")
rt2.Cells(1,0).Text= "总结"
rt2.Cells(1,1).Text =RR("总结")
rt2.CellStyle.Spacing.All = 0.5 '单元格内距设为0.5毫米
rt2.Style.Gridlines.All = New prt.Linedef(Color.Gray) '灰色网格线
doc.Body.Children.Add(rt2)
Dim rt11 As New prt.RenderTable '定义一个新表格
Dim tb1 As Table = Tables("集控表")
Dim RR1 As Row =tb1.rows(1)
Dim hd1 As Integer = tb.HeaderRows '获得表头的层数
Dim cnt1 As Integer '用于记录列位置
'rt.Width = "Auto" '表格宽度为自动,也就是等于各列设置宽度之和
rt11.Style.Font = tb1.Font
tb1.CreateReportHeader(rt11,True) '生成表头,排除隐藏列
For c1 As Integer = 0 To tb1.Cols.Count -1 '逐列设置和填入内容
If tb1.Cols(c1).Visible Then
rt11.Cols(cnt1).Width = tb1.Cols(c1).PrintWidth '列宽等于实际列宽
If tb1.Cols(c1).IsNumeric OrElse tb1.Cols(c1).IsDate Then '如果是数值或日期列
rt11.Cols(cnt1).Style.TextAlignHorz = prt.AlignHorzEnum.Right '数据水平靠右
End If
For R1 As Integer =0 To TB1.RowS.COUNT -1
rt11.Cells(1+HD1, cnt1).Text =rr1(c1)
Next
cnt1 = cnt1 + 1
End If
Next
rt11.Style.Gridlines.All = New prt.Linedef(Color.Gray) '灰色网格线
rt11.CellStyle.Spacing.All = 0.5 '单元格内距设为0.5毫米
rt11.RowGroups(0, tb1.HeaderRows).Header = prt.TableHeaderEnum.All '利用行组功能设置表头
doc.Body.Children.Add(rt11) '将表格加入到报表
Dim rt3 As New prt.RenderTable() '定义一个表格对象
rt3.Rows.Count = 2 '设置总行数
rt3.Cols.Count = 2 '设置总列数
rt3.Height = 30'设置表格的高度为80毫米
rT3.Style.FontSize = 12 '字体大小为8磅
rt3.CellStyle.Spacing.All = 1 '单元格内容缩进1毫米
rT3.Style.Spacing.Bottom = 2 '和下面的对象(表格)距离3毫米
rt3.Cols(0).Width = 45
rt3.Cells(0,0).Text= "实际与预算正负比(%)"
rt3.Cells(0,1).Text = RR1("预算与实际比例")
rt3.Cells(1,0).Text= "总结"
rt3.Cells(0,1).Text =RR1("总结")
rt3.Cells(2,0).Text = "下批生产优化"
rt3.Cells(0,1).Text =RR1("下批生产优化计划")
rt3.Style.Gridlines.All = New prt.Linedef(Color.Gray) '灰色网格线
rt3.CellStyle.Spacing.All = 0.5 '单元格内距设为0.5毫米
doc.Body.Children.Add(rt3)
doc.Preview()
老师,我这就想着里面数字列格式化为两位小数。