下面的代码实现:
1.提取批签发不重复列表,打印
2.提取通关单不重重列表,打印 (注:表中的批签发都有,通关单有的没有)
问题:打印完批签发后,如果没有通关单也会打印一张空白,但只打印同时有批签发和通关单的一行时,不会有空白.如何修改?
另外:如果打印多行时,先打印所有批签发,再打印通关单,如何实现同一行的批签发和通关单挨着打印?
Dim tb As Table = Tables("出库查询_出库副表")
If tb.Current
Is Nothing Then '如果表为空
MessageBox.Show("请按领取单位和出库时间查询!")
Else
Dim cnt As Integer = DataTables("出库").GetValues("领取单位",Tables("出库查询_出库副表").Filter).count '列出table 不同项列表
If Cnt >1 Then '如果不是同一领取单位
MessageBox.Show("请分领取单位打印!")
Else
Dim Customers As List(Of String)
Customers
= Tables("出库查询_出库副表").DataTable.GetValues("批签发",Tables("出库查询_出库副表").Filter)
If
Customers.Count
>0 Then
For Each Customer As String In Customers
Dim doc As New PrintDoc
Dim rm As New prt.RenderImage
rm.image = getimage("D:\用户目录\Documents\Scanned
Documents\"& Customer &".JPG")
rm.y = 10
rm.x = 10
rm.Width = "130%Parent" '设置尺寸为容器(页面)尺寸
rm.Height = "Auto" '高度由图片大小自动决定
rm.Style.ImageAlign.KeepAspectRatio
= True '保持比例
doc.Body.Children.Add(rm) '将图片对象加入报表
Doc.Preview()
'预览
'Doc.Print()
Next
End If
Dim Customer2s As List(Of String)
Customer2s
= Tables("出库查询_出库副表").DataTable.GetValues("通关单",Tables("出库查询_出库副表").Filter)
If
Customer2s.Count
>0 Then
For Each Customer2 As String In Customer2s
Dim doc2 As New PrintDoc
Dim rm2 As New prt.RenderImage
rm2.image = getimage("D:\用户目录\Documents\Scanned
Documents\"& Customer2 &".JPG")
rm2.y = 10
rm2.x = 10
rm2.Width = "130%Parent" '设置尺寸为容器(页面)尺寸
rm2.Height = "Auto" '高度由图片大小自动决定
rm2.Style.ImageAlign.KeepAspectRatio
= True '保持比例
doc2.Body.Children.Add(rm2) '将图片对象加入报表
Doc2.Preview()
'预览
'Doc.Print()
Next
End If
End If
End If