Dim doc As New PrintDoc '定义一个报表
Dim img As prt.RenderImage '定义一个图片对象
Dim Bar As New BarCodeBuilder
Bar.Symbology = Barpro.Symbology.Code39
'Bar.BarRatio = 0.8
'Bar.BarHeight = 8
Bar.Rotate = Barpro.Rotate.Degree90 '旋转条码
'Doc.Stacking = prt.StackingRulesEnum.InlineLeftToRight '分页打印
For Each r2 As Row In Tables("zzscjjzb").Rows
If r2.IsNull("规格") = False Then '如果规格列不为空
Dim nms() As String = r2("规格").Split("+") '将规格列内容拆分成数组
For Each nm As String In nms '遍历参与加工此产品的每个工号
Dim r As DataRow
If lst.ContainsKey(nm) '如果集合中包括此工号对应的行
r= lst(nm) '将此行赋值给变量r
Dim rt As New prt.RenderTable() '定义一个表格对象
Dim rx As New prt.RenderText '定义一个文本对象
Dim ra As New prt.RenderArea '定义一个容器
ra.SplitVertBehavior = prt.SplitBehaviorEnum.Never '禁止容器因为分页而被垂直分割
'加入标题
rx.text = "生产开工单条码打印"
rx.Style.FontBold = True '字体加粗
rx.Style.FontSize = 16 '大体大小为16磅
rx.Style.TextAlignHorz = prt.AlignHorzEnum.Center '水平居中排列
rx.Style.Spacing.Bottom = 3 '和下面的对象(表格)距离3毫米
ra.Children.Add(rx) '加入到容器中
'指定行数?列数?列宽?行高
rt.Rows.Count = 7 '设置总行数
rt.Cols.Count = 5 '设置总列数
rt.Height = 75 '设置表格的高度
rt.Rows(6).Height = 30 '设置第7行(显示备注的行)的高度,剩余高度被平均分排到其他行
rt.Cols(0).Width = 26 '设置前四列的宽度,剩余的宽度被分配给5列(显示图片的那列)
rt.Cols(1).Width = 35
rt.Cols(2).Width = 26
rt.Cols(3).Width = 40
'设置合并单元格
rt.Cells(0,4).SpanRows = 6 '第1行第5个单元格向下合并6行(用于显示照片)
rt.Cells(4,1).SpanCols = 3 '第5行第2个单元格向右合并3列(用于显示地址)
rt.Cells(6,0).SpanCols = 5 '第7行第1个单元格向右合并5列(用于显示备注)
'设置表格样式
rt.CellStyle.Spacing.All = 1 '单元格内容缩进1毫米
rt.Style.Spacing.Bottom = 5 '和下一个资料卡的距离是5毫米
rt.Style.GridLines.All = New prt.Linedef '设置网格线
rt.Style.TextAlignVert = prt.AlignVertEnum.Center '内容垂直居中
rt.Rows(6).Style.TextAlignVert = prt.AlignVertEnum.Top '唯独第7行是备注,内容靠上对齐
'下面很简单,指定每一个单元格的内容
rt.Cells(0,0).Text= "工单号"
rt.Cells(0,1).Text = r2("工单号")
rt.Cells(0,2).Text= "开工日期"
rt.Cells(0,3).Text = r2("开工日期")
rt.Cells(1,0).Text= "客户名称"
rt.Cells(1,1).Text = r2("客户名称")
rt.Cells(1,2).Text= "客户交期"
rt.Cells(1,3).Text = r2("客户交期")
rt.Cells(2,0).Text= "产品名称"
rt.Cells(2,1).Text = r2("产品名称")
rt.Cells(2,2).Text= "规格"
rt.Cells(2,3).Text = r("规格")
rt.Cells(3,0).Text= "颜色"
rt.Cells(3,1).Text = r2("颜色")
rt.Cells(3,2).Text= "数量"
rt.Cells(3,3).Text = r2("数量")
rt.Cells(4,0).Text= "单据备注"
rt.Cells(4,1).Text = r2("单据备注")
rt.Cells(5,0).Text= "套规格"
rt.Cells(5,1).Text = r2("规格")
rt.Cells(5,2).Text= "件数"
rt.Cells(5,3).Text = r2("件数")
rt.Cells(6,0).Text = r2("非标说明")
'rt.Cells(0,4).Image = GetImage(r("img"))
bar.Code = r2("_Identify")
img = new prt.RenderImage
img.Image = bar.GetImage
rt.Cells(0,4).Image = bar.GetImage
ra.Children.Add(rt) '加入到容器中
Doc.Body.ChildRen.Add(ra) '将容器加入到报表中
'Doc.Body.ChildRen.Add(img) '将容器加入到报表中
End If
Next
End If
Next
Doc.Preview() '预览报表