Foxtable(狐表)用户栏目专家坐堂 → 请教分页码打印


  共有2999人关注过本帖树形打印复制链接

主题:请教分页码打印

帅哥哟,离线,有人找我吗?
hopestarxia
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:927 积分:6676 威望:0 精华:0 注册:2013/8/10 18:33:00
请教分页码打印  发帖心情 Post By:2019/5/9 23:11:00 [显示全部帖子]

老师,制作了一个窗口,窗口里有TABLE1插件,插件为SQL查询表,内容为业务员销售明细表。已按业务员名称进行排序。
现在想实现打印,打印时自动按业务员自动分页打印,如果一个业务员的数据太多时,那么当每页打到40行时再自动换页打印,请问有什么参考资料如何实现?

 回到顶部
帅哥哟,离线,有人找我吗?
hopestarxia
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:927 积分:6676 威望:0 精华:0 注册:2013/8/10 18:33:00
  发帖心情 Post By:2019/5/11 0:39:00 [显示全部帖子]

谢谢老师!

 回到顶部
帅哥哟,离线,有人找我吗?
hopestarxia
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:927 积分:6676 威望:0 精华:0 注册:2013/8/10 18:33:00
  发帖心情 Post By:2019/5/13 16:27:00 [显示全部帖子]

老师,这个是分组打印了,我照着这个研究,还是没能实现分页打印,我想在不是相同的仓库了的时候,则自动实现换页。

 回到顶部
帅哥哟,离线,有人找我吗?
hopestarxia
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:927 积分:6676 威望:0 精华:0 注册:2013/8/10 18:33:00
  发帖心情 Post By:2019/5/13 17:31:00 [显示全部帖子]

老师,用你教的代码实现了不同仓库的分页打印。
但是这样把我原来设置的打印纸张大于,定于每张打多少行,以及每页的标题及每页下面的其他内容都没有了。原来定义的样式没有了。
我看帮助里说的强制换页,我这个有没有办法用强制换页的代码解决?

 回到顶部
帅哥哟,离线,有人找我吗?
hopestarxia
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:927 积分:6676 威望:0 精华:0 注册:2013/8/10 18:33:00
  发帖心情 Post By:2019/5/13 17:52:00 [显示全部帖子]

老师,你看一下我用如下代码

Dim t As Table = e.Form.Controls("Table1").Table
Dim ps As Integer = Math.Ceiling(t.Rows.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 >= t.Rows.count Then
            Exit For
        End If
        idxs &= "'" & t.Rows(j)("仓库名称") & "',"
    Next
    t.Filter = "仓库名称  in (" & idxs.trim(",") & ")"
   
    Dim doc As PrintDoc = e.Form.GernatePrintDoc()
    doc.Preview()
Next
t.Filter = ""
怎么调整能有希望实现,我感觉这个比较接近能实现我的需求了。

 回到顶部
帅哥哟,离线,有人找我吗?
hopestarxia
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:927 积分:6676 威望:0 精华:0 注册:2013/8/10 18:33:00
  发帖心情 Post By:2019/5/13 18:30:00 [显示全部帖子]

谢谢老师,用老师的代码可以了。需要学习的地方还太多啊。

 回到顶部
帅哥哟,离线,有人找我吗?
hopestarxia
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:927 积分:6676 威望:0 精华:0 注册:2013/8/10 18:33:00
  发帖心情 Post By:2019/5/13 19:33:00 [显示全部帖子]

有点甜老师,我如果还想在这上面加上页码,页码按仓库来分(不是按所有的数据),共几页,第几页,请问如何实现?

 回到顶部
帅哥哟,离线,有人找我吗?
hopestarxia
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:927 积分:6676 威望:0 精华:0 注册:2013/8/10 18:33:00
  发帖心情 Post By:2019/5/15 14:36:00 [显示全部帖子]

谢谢有点甜老师!!!

 回到顶部
帅哥哟,离线,有人找我吗?
hopestarxia
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:927 积分:6676 威望:0 精华:0 注册:2013/8/10 18:33:00
  发帖心情 Post By:2019/5/30 13:07:00 [显示全部帖子]

老师,用如下代码最终实现了分页打印,但发现有如下问题,
如果某个仓库的汇总数据超过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

 回到顶部