Dim tb As Table = Tables("表A")
Dim prs As Integer = 8 '每页20行
Dim doc As New PrintDoc() '定义一个报表
doc.PageSetting.Width = 240 '纸张宽度为240毫米
doc.PageSetting.Height = 140 '纸张高度为140毫米
Doc.PageSetting.LeftMargin = 0 '设置左边距
Doc.PageSetting.RightMargin = 0 '设置右边距
Doc.PageSetting.TopMargin = 0 '设置上边距
Doc.PageSetting.BottomMargin = 0 '设置下边距
For p As Integer = 0 To math.Ceiling(tb.Rows.Count / prs) - 1
Dim ra As New prt.RenderArea '定义一个容器
'ra.X = 0 '指定容器水平位置
'ra.y = 24 '指定容器垂直位置
Dim rt As prt.RenderText '定义一个文本对象
rt = New prt.RenderText() '创建文本对象(序列号)
rt.Width = "Auto" '自动设置宽度
rt.Style.Font = New Font("宋体", 12, FontStyle.Regular) '设置文本字体,宋体,12磅,普通
rt.Style.TextAlignHorz = prt.AlignHorzEnum.Left '水平靠左
rt.Text = "NO-20201104001 " '设置文本对象的内容
rt.X = 172 '指定水平位置
rt.y = 0 '指定垂直位置
ra.Children.Add(rt) '将文本对象加入到容器ra中
Dim rb As New prt.RenderTable() '定义一个表格对象
rb.Height = 70 '设置高度
rb.Cols.Count = 6 '设置列数
rb.Style.GridLines.All = New prt.LineDef '设置网格线类型
rb.X = 10 '指定水平位置
rb.y = 21 '指定垂直位置
rb.Style.Font = New Font("宋体", 10, FontStyle.Regular) '设置文本字体,宋体,10磅,普通
rb.Style.TextAlignHorz = prt.AlignHorzEnum.Left '水平靠左
rb.Style.TextAlignVert = prt.AlignVertEnum.Center '垂直居中
rb.Cols(0).Width = 27.5
rb.Cols(1).Width = 51
rb.Cols(2).Width = 52
rb.Cols(3).Width = 23
rb.Cols(4).Width = 21.5
rb.Cols(5).Width = 30
rb.Width = "Auto" '设置宽度
Dim ColNames As String() = New String(){"品名", "规格型号","SN", "登记单号", "货物特征","备注"}
For c As Integer = 0 To ColNames.Length -1
For r As Integer = p * prs To math.Min(tb.Rows.Count - 1,( p + 1) * prs - 1)
rb.Cells(r - p * prs, c).Text = tb.rows(r)(ColNames(c))
Next
Next
ra.Children.Add(rb) '将表格对象加入到容器ra中
If p = math.Ceiling(tb.Rows.Count / prs) - 1 '如果是最后一页
For r As Integer = tb.Rows.Count To ( p + 1) * prs - 1 '补空行
rb.Rows.Count = rb.Rows.Count + 1
rb.Rows(rb.Rows.count -1)(0).text = " "
Next
Else
rb.BreakAfter = prt.BreakEnum.Page '否则换页
End If
doc.Body.Children.Add(ra) '将容器ra加入到报表
Next
doc.Preview()
'ra.X = 0 '指定容器水平位置
'ra.y = 24 '指定容器垂直位置
这两行代码有问题吗?为什么一但取消注释,就不再换页了,就在一个页面重复打印?