回林总,这是报表打印,代码如下:
Dim doc As New PrintDoc '定义一个报表
Dim rt As New prt.RenderTable() '定义一个表格对象
Dim rx As New prt.RenderText '定义一个文本对象
Dim CurRow As Row = Tables("订单").Current
Doc.PageSetting.TopMargin = 5 '设置上边距
Doc.PageSetting.BottomMargin = 5 '设置下边距
Doc.PageSetting.RightMargin = 5 '设置右边距
Doc.PageSetting.LeftMargin = 5 '设置左边距
doc.PageSetting.Width = 217 '纸张宽度为100毫米
doc.PageSetting.Height = 140 '纸张高度为120毫米
rx = New prt.RenderText '创建文本对象
rx.text = "XXXXXXXXXX有限公司"
rx.Style.TextAlignHorz = prt.AlignHorzEnum.Center '水平居中排列
rx.Style.CharSpacing = 3 '字符间距1毫米
rx.Style.Font = New Font("迷你简粗倩", 20) '设置字体跟大小
doc.Body.Children.Add(rx) '加入到报表中
rx = New prt.RenderText '创建文本对象
rx.text = "电话:XXXXXXX XXXXXXX XXXXXX 传真:XXXXXXX"
rx.Style.CharSpacing = 0.2 '字符间距1毫米
rx.Style.FontBold = True '字体加粗
rx.Style.FontSize = 10 '大体大小为16磅
rx.Style.TextAlignHorz = prt.AlignHorzEnum.Center '水平居中排列
rx.Style.Spacing.Bottom = 1 '和下面的对象(表格)距离3毫米
doc.Body.Children.Add(rx) '加入到报表中
rx = New prt.RenderText '创建文本对象
rx.text = "订单"
rx.Style.CharSpacing = 0.2 '字符间距1毫米
rx.Style.Font = New Font("迷你简粗倩", 20) '设置字体跟大小
rx.Style.TextAlignHorz = prt.AlignHorzEnum.Center '水平居中排列
rx.Style.Spacing.Bottom = 1 '和下面的对象(表格)距离3毫米
doc.Body.Children.Add(rx) '加入到报表中
rx = New prt.RenderText
rx.Text = "XX: " & Tables("订单").Current("XX") & " XX: " & Tables("订单").Current("XX")
rx.Style.FontBold = True '字体加粗
rx.Style.FontSize = 11 '大体大小为16磅
rx.Width = 100 '宽度为40毫米
rx.Style.Spacing.Left = 14 '设置下间隔为3毫米
rx.Style.Spacing.Bottom = 0 '和下面的对象(表格)距离3毫米
doc.Body.Children.Add(rx)
rx = New prt.RenderText
rx.Text = "单据编号: " & Tables("订单").Current("编号")
rx.Style.FontBold = True '字体加粗
rx.Style.FontSize = 11 '大体大小为16磅
rx.x = 162
rx.y = 20
doc.Body.Children.Add(rx)
rx = New prt.RenderText
rx.Text = "签订日期: " & Tables("订单").Current("签订日期")
rx.Style.FontBold = True '字体加粗
rx.Style.FontSize = 11 '大体大小为16磅
rx.x = 162
rx.y = 31.6
doc.Body.Children.Add(rx)
rx = New prt.RenderText
rx.Text = "客户姓名: " & Tables("订单").Current("客户姓名") & " 联系电话: " & Tables("订单").Current("联系电话")
rx.Style.FontBold = True '字体加粗
rx.Style.FontSize = 11 '大体大小为16磅
rx.Width = 200 '宽度为40毫米
rx.Style.Spacing.Left = 14 '设置左边隔为3毫米
rx.Style.Spacing.Bottom = 1 '和下面的对象(表格)距离3毫米
doc.Body.Children.Add(rx)
rx = New prt.RenderText '创建文本对象
rx.text = "①白色:存根 ②红色:客户 ③黄色:安排"
rx.Width = 3 '对象宽度为40毫米
rx.Style.FontSize = 9 '大体大小为16磅
rx.x = 206
rx.y = 42
rx.Style.FontBold = True '字体加粗
doc.Body.Children.Add(rx) '加入到报表中
rt = New prt.RenderTable'创建表格对象
rt.Style.GridLines.All = New prt.Linedef '设置网格线
rt.Style.Padding.Left = 14 '左边距5毫米
rt.Rows.Count = 8 '设置总行数
rt.Cols.Count = 9 '设置总列数
rt.Height = 88 '设置表格的高度为80毫米
rt.Width = 200 '设置表格的高度为80毫米
rt.Style.Spacing.Bottom = 2 '表和和后续对象的垂直间隔为10毫米
rt.Rows(7).Height = 10 '设置第8行(显示说明的行)的高度为40毫米,剩余高度被平均分排到其他行
rt.Rows(6).Height = 8 '设置第8行(显示说明的行)的高度为40毫米,剩余高度被平均分排到其他行
rt.Rows(0).Height = 10 '设置第8行(显示说明的行)的高度为40毫米,剩余高度被平均分排到其他行
rt.Cols(0).Width = 30 '设置前四列的宽度,剩余的宽度被分配给5列(显示图片的那列)
rt.Cols(1).Width = 12
rt.Cols(2).Width = 12
rt.Cols(3).Width = 10
rt.Cols(4).Width = 15
rt.Cols(5).Width = 8
rt.Cols(6).Width = 20
rt.Cells(6,1).SpanCols = 4 '第7行第2个单元格向右合并4列(用于显示制版费跟订金)
rt.Cells(6,5).SpanCols = 2 '第7行第6个单元格向右合并2列(用于显示制版费跟订金)
rt.Cells(6,7).SpanCols = 2 '第7行第7个单元格向右合并2列(用于显示制版费跟订金)
rt.Cells(7,0).SpanCols = 9 '第8行第1个单元格向右合并9列(用于显示说明)
rt.Style.TextAlignVert = prt.AlignVertEnum.Center '内容垂直居中
rt.Style.TextAlignHorz = prt.AlignHorzEnum.Center '水平居中排列
rt.Style.FontBold = True '字体加粗
rt.Cells(0,0).Text = "产品名称"
rt.Cells(0,1).Text = "总宽"
rt.Cells(0,2).Text = "长度"
rt.Cells(0,3).Text = "XX"
rt.Cells(0,4).Text = "数量"
rt.Cells(0,5).Text = "XX"
rt.Cells(0,6).Text = "单价"
rt.Cells(0,7).Text = "封口"
rt.Cells(0,8).Text = "备注"
rt.Cells(6,0).Text= "XXX:"
rt.Cells(6,1).Text = CurRow("XXX") &"元"&" " & CUMoney(CurRow("XXX"))
rt.Cells(6,5).Text= "XXXX:"
rt.Cells(6,7).Text = CurRow("XXX") &"元"&" " & CUMoney(CurRow("XXX"))
rt.Cells(7,0).Text = "注: XXXXXXXXXXXXXXXXXXXXXXXXXXXX . "
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)("总宽") &"cm"
rt.Cells(r+1,2).Text = .rows(r)("长度") &"cm"
rt.Cells(r+1,3).Text = .rows(r)("XX") &"C"
rt.Cells(r+1,4).Text = .rows(r)("数量")
rt.Cells(r+1,5).Text = .rows(r)("XXXX")
rt.Cells(r+1,6).Text = .rows(r)("单价") &"元"
rt.Cells(r+1,7).Text = .rows(r)("XX")
rt.Cells(r+1,8).Text = .rows(r)("备注")
If rt.Cells(r+1,5).Text = "张" Then
rt.Cells(r+1,4).Text = .rows(r)("数量") &"万"
ElseIf rt.Cells(r+1,5).Text = "KG" Then
rt.Cells(r+1,4).Text = .rows(r)("数量") &"KG"
End If
Next
End With
rt.Style.Spacing.Bottom = 0 '表和和后续对象的垂直间隔为10毫米
doc.Body.Children.Add(rt)
rx = New prt.RenderText
rx.Text = "XXX: " & Tables("XXX").Current("XXX")
rx.Style.FontBold = True '字体加粗
rx.x = 170
rx.Style.FontSize = 11 '大体大小为16磅
rx.Style.Spacing.Top = 3
doc.Body.Children.Add(rx)
rx = New prt.RenderText
rx.Text = "XXXXXX"
rx.Style.FontBold = True '字体加粗
rx.x = 19
rx.Style.FontSize = 11 '大体大小为16磅
rx.Style.Spacing.Top = 3
doc.Body.Children.Add(rx)
Doc.PrinterName = "DPK770E"
doc.AutoRotate = False '禁止自动旋转打印内容
doc.Print()