'DataTables("公斤数录入1").deletefor("[公斤数] is Null")
'DataTables("发货单号1").deletefor("[客户名] is Null")
Dim doc As New PrintDoc
Dim rt As New prt.RenderTable()
Dim tbl As Table = Tables("公斤数录入1")
Dim tb As Table = Tables("发货单号1")
doc.PageSetting.Width = 400 '纸张宽度为100毫米
doc.PageSetting.Landscape = True '横向打印
Doc.PageSetting.LeftMargin = 5 '设置左边距
Doc.PageSetting.RightMargin = 5 '设置右边距
Doc.PageSetting.TopMargin = 10 '设置上边距
Doc.PageSetting.BottomMargin = 5 '设置下边距
Doc.PrinterName = "HP Officejet 6500 E710n-z"
Dim rx As New prt.RenderTable
rx.Cells(0,0).Text = Date.Today
rx.Cells(0,1).Text = "T R J list"
rx.Cells(0,2).Text = "第[PageNo]页,共[PageCount]页"
rx.Cols(0).Style.TextAlignHorz = prt.AlignHorzEnum.Left
rx.Cols(1).Style.TextAlignHorz = prt.AlignHorzEnum.Center
rx.Cols(2).Style.TextAlignHorz = prt.AlignHorzEnum.right
rx.Style.Borders.Bottom = New prt.LineDef '设置底边框
rx.CellStyle.Spacing.Bottom = 0.5 '底端内容缩进0.5毫米
rx.Style.FontSize = 15 '字体大小为8磅
Doc.PageHeader = rx '作为页眉使用
rt.Style.Font = New Font("宋体", 15 , FontStyle.Bold) '设置文本对象的字体
rt.Style.TextAlignHorz = prt.AlignHorzEnum.Center '水平居中
rt.Style.TextAlignVert = prt.AlignVertEnum.Center '垂直居中
rt.Style.Borders.All = New prt.Linedef(0, Color.Lavender) '设置边框
rt.Style.TextAlignHorz = prt.AlignHorzEnum.Center '水平居中
rt.Style.TextAlignVert = prt.AlignVertEnum.Center '垂直居中
doc.Body.Children.Add(rt)
rt.Style.GridLines.All = New prt.Linedef
rt.cells(1,0).text = "地区"
rt.cells(1,1).text = "客户名"
rt.cells(1,2).text = "C/T"
rt.cells(1,3).text = "Total"
rt.cells(1,4).text = "重量1"
rt.cells(1,5).text = "重量2"
rt.cells(1,6).text = "重量3"
rt.cells(1,7).text = "重量4"
rt.cells(1,8).text = "重量5"
rt.cells(1,9).text = "重量6"
rt.cells(1,10).text = "重量7"
rt.cells(1,11).text = "重量8"
rt.cells(1,12).text = "重量9"
rt.cells(1,13).text = "重量10"
rt.cells(1,14).text = "接收单位"
rt.Cols(14).Width = 30
For i As Integer = tb.TopPosition To tb.BottomPosition
Dim dr As DataRow = Tables("发货单号1").Rows(i).DataRow
Dim crs As List(of DataRow) = tbl.DataTable.Select("发货单号 = '" & dr("发货单") & "' and 接收单位 = 'ems'")
Dim Total As Integer = tbl.Compute("sum(公斤数)", "发货单号 = '" & dr("发货单") & "' and 接收单位 = 'ems'")
Dim st As Integer = rt.Rows.count - 1 '起始行位置
Dim nt As Integer = st '当前行位置
Dim cp As Integer = 4 '当前列位置
Dim pdr As DataRow = dr.GetParentRow("用户")
If pdr IsNot Nothing Then
For n As Integer = 0 To crs.count - 1
rt.cells(nt+1,cp).text = cint(crs(n)("公斤数"))
If crs(n)("包") = True Then
rt.cells(nt+2,cp).text = "yes"
End If
If crs(n)("鞋子") Then
rt.cells(nt+3,cp).text = "yes"
End If
If crs(n)("饰品") Then
rt.cells(nt+4,cp).text = "yes"
End If
rt.cells(nt+1,0).text = pdr("city")
rt.cells(nt+1,1).text = pdr("name")
rt.cells(nt+1,2).text = crs.count
rt.cells(nt+1,3).text = total
rt.cells(nt+1,14).text = crs(n)("接收单位")
rt.Cells(st+2, 3).Text = "包"
rt.Cells(st+3, 3).Text = "鞋子"
rt.Cells(st+4, 3).Text = "饰品"
cp = cp + 1
If cp = 7 Then
cp=2
nt = nt + 2
End If
Next
rt.cells(st+5,0).SpanCols = 2
rt.cells(st+5,0).text = pdr("phone")
rt.cells(st+5,2).SpanCols = 2
rt.cells(st+5,2).text = pdr("phone1")
rt.cells(st+5,4).SpanCols = 6
rt.cells(st+5,4).text = pdr("address")
End If
Next
doc.Preview() '预览报表