连续打印关联表
示例
在示例文件的“类别”表中选定多行,然后执行下面的代码:
Dim
doc
As New Printdoc
Dim rx As
prt.RenderText
Dim rt As
prt.RenderTable
Dim Rows As
List(Of DataRow)
Dim tbl As
Table =
Tables("类别")
For i as
Integer = tbl.TopRow
To tbl.BottomRow
rx = New prt.RenderText
rx.BreakBefore = prt.BreakEnum.Page
'另起一页再打印
rx.Style.FontSize = 14
rx.Style.FontBold =
True
rx.Style.Spacing.Bottom =
5
rx.Text = "类别: "
& Tables("类别").Rows(i)("类别名称")
doc.Body.Children.Add(rx)
rt = New prt.RenderTable
rt.Style.TextAlignHorz = prt.AlignHorzEnum.Center
rt.Style.TextAlignVert = prt.AlignVertEnum.Center
rt.Style.Borders.Bottom = New prt.LineDef(0.3,Color.LightGray)
rt.CellStyle.Spacing.All =
1
rt.Cols.Count = 4
rt.Cells(0,0).Text
= "产品名称"
rt.Cells(0,1).Text
= "单价"
rt.Cells(0,2).Text
= "库存量"
rt.Cells(0,3).Text
= "订购量"
rt.Cells(0,4).Text
= "再订购量"
rt.Cells(0,5).Text
= "中止"
rt.rows(0).Style.Borders.Top
= New prt.LineDef(1,Color.LightGray)
rt.rows(0).Style.Borders.Bottom
= New prt.LineDef(1,Color.LightGray)
Rows = Tables("类别").Rows(i).DataRow.GetChildRows("产品")
For r
As
integer =
0
To Rows.Count -
1
rt.Cells(r+1,0).Text
= rows(r)("产品名称")
rt.Cells(r+1,1).Text
= rows(r)("单价")
rt.Cells(r+1,2).Text
= rows(r)("库存量")
rt.Cells(r+1,3).Text
= rows(r)("订购量")
rt.Cells(r+1,4).Text
= rows(r)("再订购量")
If rows(r)("中止")
= True
Then
Dim
rm As New
prt.RenderImage
rm.Image =
getImage("Check.Ico")
rm.Style.ImageAlign.AlignHorz = prt.ImageAlignHorzEnum.Center
rm.Style.ImageAlign.StretchHorz = False
rm.Style.ImageAlign.StretchVert = False
rt.Cells(r+1,5).RenderObject
= rm
End
If
Next
doc.Body.Children.Add(rt)
rx = New prt.RenderText
rx.Style.FontBold =
True
rx.Style.Spacing.Top =
3
rx.Text = "产品数目: "
& Rows.Count
rx.Style.TextAlignHorz = prt.AlignHorzEnum.Right
doc.Body.Children.Add(rx)
Next
doc.Preview
本页地址:http://www.foxtable.com/webhelp/topics/1250.htm