老师,用如下代码最终实现了分页打印,但发现有如下问题,
如果某个仓库的汇总数据超过1页,那么有几页就会把这个仓库的打印几遍出来、
列如,如果A仓有40行数据,(现是16行1页),则这个仓库的1至3页都会打印出来三份。(打三遍,一份三页,共9页),
B仓有20行数据,则B仓的就打印出来二份,(两个一页,两个第二页),
C仓的只有10行数据,那么C仓打印出来就只有一页。
Dim t As Table = e.Form.Controls("Table1").Table
For Each ck As String In t.DataTable.GetValues("仓库名称")
Dim drs = t.DataTable.Select("仓库名称='" & ck & "'")
Dim ps As Integer = Math.Ceiling(drs.count / 16)
For i As Integer = 1 To ps
Dim idxs As String = ""
t.Filter = ""
For j As Integer = (i-1)*16 To i*16-1
If j >= drs.count Then
Exit For
End If
idxs &= "'" & drs(j)("仓库名称") & "',"
e.Form.Controls("Label4").Text = "第[PageNo]页,共[PageCount]页"
e.Form.Controls("textbox3").Text = t.DataTable.Compute("Sum(数量)","[仓库名称] = '" & ck & "' ")
Next
t.Filter = "仓库名称 in (" & idxs.trim(",") & ")"
Dim doc As PrintDoc = e.Form.GernatePrintDoc()
doc.Print()
Next
Next