Dim doc As New PrintDoc '定义一个报表
Dim rt As New prt.RenderTable() '定义一个表格对象
Dim rx As New prt.RenderText '定义一个文本对象
Dim rz As New prt.RenderText '定义一个文本对象
'加入标题
doc.Body.Children.Add(rt) '加入到报表中
rt.Style.GridLines.All = New prt.Linedef '设置网格线
rt.CellStyle.Spacing.All = 1 '内容距离网格线1毫米
rt.Rows(0).Style.TextAlignHorz = prt.AlignHorzEnum.Center
rt.Cells(0,0).text = _Userdwmc & "大额资金支出上会提案表"
rt.Cells(0,0).SpanCols = 11 '合并第一行全部单元格,用于显示主标题
rt.Cells(0,0).Style.TextAlignHorz = prt.AlignHorzEnum.Center '主标题居中
rt.Cells(0,0).Style.Font = New Font("宋体", 16, FontStyle.Bold) '设置主标题字体
rt.Rows(0).Style.Borders.All = New prt.LineDef("0mm", Color.white) '去掉第一行的网格线
rt.Rows(1).Height = 8
rt.cells(6,0).Text ="大额资金支付备案编码" '设置第一行第一个单元格的内容
rt.Cells(6,1).Text = "申报部门名称" '设置第一行第四个单元格的内容
rt.cells(6,2).Text = "填报人" '设置第一行第一个单元格的内容
rt.Cells(6,3).Text = "付款单位账户名称" '设置第一行第四个单元格的内容
rt.cells(6,4).Text = "收款单位账户名称" '设置第一行第一个单元格的内容
rt.Cells(6,5).Text = "支付性质" '设置第一行第四个单元格的内容
rt.Cells(6,6).Text = "支付项目名称和内容" '设置第一行第四个单元格的内容
rt.cells(6,7).Text = "支付金额" '设置第一行第一个单元格的内容
rt.Cells(6,8).Text = "提前支付时间" '设置第一行第四个单元格的内容
rt.cells(6,9).Text = "提前支付理由" '设置第一行第一个单元格的内容
rt.Cells(6,10).Text = "本单位过会时间" '设置第一行第四个单元格的内容
Dim rw As New prt.RenderArea
Dim rn As prt.RenderText
rw.Width = 250 '宽度等于分栏宽度
rw.Height = 30 '高度24毫米
rw.SplitHorzBehavior = prt.SplitBehaviorEnum.Never '禁止水平分割
rw.SplitVertBehavior = prt.SplitBehaviorEnum.Never '禁止垂直分割
rw.Style.Spacing.Bottom = 2
rn = New prt.RenderText
rn.Text = "过会提案编码:"
rn.X = 2
rn.Y = 2
rw.Children.Add(rn) '添加到容器中
rn = New prt.RenderText
rn.Text = jlbh
rn.X = 25
rn.Y = 2
rw.Children.Add(rn)
rn = New prt.RenderText
rn.Text = "过会时间:"
rn.X = 2
rn.Y = "Prev.Bottom + 2" '垂直坐标位于迁移对象之下的2毫米
rw.Children.Add(rn)
rn = New prt.RenderText
rn.Text =ghsj
rn.X = 25
rn.Y = "Prev.Top" '垂直坐标和前一对象相同
rw.Children.Add(rn)
rn = New prt.RenderText
rn.Text = "过会类型:"
rn.X = 2
rn.Y = "Prev.Bottom + 2" '垂直坐标位于迁移对象之下的2毫米
rw.Children.Add(rn)
rn = New prt.RenderText
rn.Text = ghlx
rn.X = 25
rn.Y = "Prev.Top" '垂直坐标和前一对象相同
rw.Children.Add(rn)
rn = New prt.RenderText
rn.Text = "会议记录人:"
rn.X = 2
rn.Y = "Prev.Bottom + 6" '垂直坐标位于迁移对象之下的2毫米
rw.Children.Add(rn)
rn = New prt.RenderText
rn.Text = hyjlr
rn.X = 25
rn.Y = "Prev.Top" '垂直坐标和前一对象相同
rw.Children.Add(rn)
rn = New prt.RenderText
rn.Text = "会议主持人:"
rn.X = 120
rn.Y = 2
rw.Children.Add(rn) '添加到容器中
rn = New prt.RenderText
rn.Text = hyzcr
rn.X = 150
rn.Y = 2
rw.Children.Add(rn)
rn = New prt.RenderText
rn.Text = "参加会议人员:"
rn.X = 120
rn.Y = "Prev.Bottom + 6"
rw.Children.Add(rn) '添加到容器中
rn = New prt.RenderText
rn.Text = cjhyry
rn.X = 145
rn.Y = "Prev.Top"
rw.Children.Add(rn)
rn = New prt.RenderText
rn.Text = "列席:"
rn.X = 120
rn.Y = "Prev.Bottom + 8"
rw.Children.Add(rn) '添加到容器中
rn = New prt.RenderText
rn.Text = lx
rn.X = 145
rn.Y = "Prev.Top"
rw.Children.Add(rn)
rt.Cells(1,0).Area .Children.Add (rw)
'rt.Cells(1,1).text = "jlbh"
rt.Cells(1,0).SpanCols = 11 '合并第一行全部单元格,用于显示主标题
rt.Rows(1).Style.Borders.All = New prt.LineDef("0mm", Color.white) '去掉第二行的网格线
rt.Rows(1).Style.Borders.Bottom = New prt.Linedef '恢复第二行底端的网格线
rt.Rows(1).Height = 30 '设置第二行的高度,拉开和表格主体的距离.
rt.RowGroups(0,6).Header = prt.TableHeaderEnum.All '前四行作为表头
Dim dt As DataTable
Dim shjg As String = "审核通过"
Dim g As New GroupTableBuilder("统计表1", DataTables("大额资金支出备案登记表"),"审核结果='" & shjg & "'and 过会提案编码 = '" & jlbh & "'")
g.Groups.AddDef("大额资金支付备案编码","大额资金支付备案编码") '根据根据用户账号分组
g.Groups.AddDef("部门名称","申报部门名称") '根据根据用户账号分组
g.Groups.AddDef("用户姓名","填报人") '根据用户姓名分组
g.Groups.AddDef("付款单位账户名称","付款单位账户名称") '根据用户姓名分组
g.Groups.AddDef("收款单位账户名称","收款单位账户名称") '根据用户姓名分组
g.Groups.AddDef("支付性质","支付性质") '根据用户姓名分组
g.Groups.AddDef("支付项目名称和内容","支付项目名称和内容") '根据用户姓名分组
g.Groups.AddDef("支付金额","支付金额") '根据用户姓名分组
g.Groups.AddDef("需要提前支付时间",DateGroupEnum.none,"提前支付时间") '根据用户姓名分组
g.Groups.AddDef("提前支付理由","提前支付理由") '根据用户姓名分组
g.Groups.AddDef("本单位过会时间",DateGroupEnum.none,"本单位过会时间")'根据用户姓名分组
g.FromServer = True
DT=g.build(True)
dt.DataCols("提前支付时间").SetDateTimeFormat(DateTimeFormatEnum.DateTime)
dt.DataCols("本单位过会时间").SetDateTimeFormat(DateTimeFormatEnum.DateTime)
' Dim rt1 As New prt.RenderTable
Dim Count As Integer =0
For Each Col As DataCol In Dt.DataCols
rt.Cells(6,Count).Text = Col.Name
For r As Integer = 1 To dt.DataRows.Count - 2
rt.Cells(r +1,Count).Text =dt.dataRows(r)(Col.Name)
Next
Count = Count + 1
Next
doc.Preview()