用个折中的办法解决了...
Dim doc As New PrintDoc
Dim rt As Prt.RenderTable
Dim tbl As Table = Tables("清单")
Dim Rows As List(Of DataRow)
Dim Regions As List(Of String) = tbl.DataTable.GetUniqueValues("类别 <> '其他'","类别")
doc.Pagesetting.LandScape = false
For Each Region As String In Regions
Dim rs As New prt.RenderText
rs.Text = "费用类别: " & Region
rs.Style.FontSize = 10
rs.Style.FontBold = True
doc.Body.Children.Add(rs)
rt = New prt.RenderTable
rt.Style.TextAlignVert = prt.AlignVertEnum.Center
rt.Style.GridLines.Top = New prt.LineDef(0.4,Color.Black)
rt.Style.Spacing.Bottom = 5
rt.CellStyle.Spacing.All = 1
rt.Style.Font = tbl.Font
rt.Cols(0).Width = 40
rt.Cols(1).Width = 30
rt.Cols(2).Width = 0
Rows = tbl.Datatable.Select("[类别] = '" & Region & "'")
For c As integer = 0 To tbl.Cols.Count - 1
rt.Cells(0,c).Text = tbl.Cols(c).Name
For r As integer = 0 To Rows.Count -1
rt.Cells(r + 1, c).Text = rows(r)(tbl.Cols(c).Name)
Next
Next
rt.RowGroups(0,1).Header = prt.TableHeaderEnum.All
rt.Style.Gridlines.Horz = New prt.Linedef(0.3,Color.LightGray)
doc.Body.Children.Add(rt)
Next
Dim Total As Double
Total = tbl.Datatable.Compute("Sum(金额)", "类别 = '其他'")
Dim rts As New prt.RenderText
rts.Text = "费用类别: 其他"
rts.Style.FontSize = 10
rts.Style.FontBold = True
doc.Body.Children.Add(rts)
rt = New prt.RenderTable
rt.Style.TextAlignVert = prt.AlignVertEnum.Center
rt.Style.GridLines.Top = New prt.LineDef(0.4,Color.Black)
rt.Style.Spacing.Bottom = 5
rt.CellStyle.Spacing.All = 1
rt.Style.Font = tbl.Font
rt.Cells(0,0).Text = "项目"
rt.Cells(0,6).Text = "金额"
rt.Cells(1,0).Text = "一次性医用消耗材料"
rt.Cells(1,6).Text = Total
rt.RowGroups(0,1).Header = prt.TableHeaderEnum.All
rt.Style.Gridlines.Horz = New prt.Linedef(0.3,Color.LightGray)
doc.Body.Children.Add(rt)
doc.preview()
[此贴子已经被作者于2009-5-13 17:32:13编辑过]