关联表和报表
在示例文件“专业报表.Table”中,类别表和产品表通过类别ID建立了关联,每一个类别下有多个产品。
现在希望按类别打印所有产品,代码如下:
Dim
doc
As New Printdoc
Dim rx As
prt.RenderText
Dim rt As
prt.RenderTable
rx = New prt.RenderText
rx.Style.FontSize = 14
rx.Style.FontBold = True
rx.Style.Spacing.Bottom = 5
rx.Text = "类别: " &
Tables("类别").Current("类别名称")
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)
With Tables("类别.产品")
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
End With
doc.Body.Children.Add(rt)
rx = New prt.RenderText
rx.Style.FontBold = True
rx.Style.Spacing.Top = 3
rx.Text = "产品数目: " &
Tables("类别.产品").Rows.Count
rx.Style.TextAlignHorz = prt.AlignHorzEnum.Right
doc.Body.Children.Add(rx)
doc.Preview
下图是执行结果:
请留意上面的代码中,我们是如何打印逻辑列的。
本页地址:http://www.foxtable.com/webhelp/topics/1249.htm