Foxtable(狐表)用户栏目专家坐堂 → 还是没搞定的分页,求指点


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

主题:还是没搞定的分页,求指点

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


加好友 发短信
等级:六尾狐 帖子:1209 积分:7263 威望:0 精华:0 注册:2013/3/4 18:02:00
还是没搞定的分页,求指点  发帖心情 Post By:2013/3/11 20:06:00 [显示全部帖子]

Dim Doc As New PrintDoc

Dim prs As Integer = 15   '每页行数
Dim tb As Table = Tables("销售出库单主表.销售出库单子表")
For p As Integer = 0 To Math.Ceiling(tb.Rows.Count / prs) - 1
    Dim rx As New prt.RenderTable
    rx.CellStyle.Spacing.All = 0.6 '单元格内距设为0.5毫米
    rx.Style.GridLines.All =  New prt.Linedef(0.1, Color.black)
    Dim icou As Integer
    rx.Width = 201
    rx.Style.Font = New Font("宋体", 9)
    rx.Style.TextAlignVert =prt.AlignVertEnum.Center
    Dim hd As Integer = tb.HeaderRows
    Dim cnt As Integer
    tb.CreateReportHeader(rx,True)
    rx.Cols.Insert(0) '在左边插入一列,用于打印行号
    rx.Cols(0).Width = 8 '设置行号列的宽度
    rx.Cells(0,0).SpanRows =2
    rx.Cells(0,0).Text = "№"
    For c As Integer = 0 To tb.Cols.Count - 1
        If tb.Cols(c).Visible
            For r As Integer = p * prs To math.min(tb.Rows.Count - 1,( p + 1) * prs - 1)
                rx.Rows(r).Height = 5.5
                rx.Cells(r - p * prs + hd, cnt+1).Text = tb.rows(r)(c)
                rx.Cells(r - p * prs + hd,0).text = r+1  '
                rx.Cols(7).Style.Font = New Font("Times New Roman",9)
                rx.Cols(6).Style.Font = New Font("Times New Roman",9)
                rx.Cols(5).Style.Font = New Font("Times New Roman",9)
                rx.Cols(4).Style.Font = New Font("Times New Roman",9)
                rx.Cells(r - p * prs + hd,10).Text = "***"
                rx.Cells(r - p * prs + hd,9).Text = "***"
                rx.Cells(r - p * prs + hd,8).Text = Format(tb.rows(r)(7),"#,###,###")
                rx.Cells(r - p * prs + hd,7).Text =Format(tb.rows(r)(6),"#,###,###")
                rx.Cells(r - p * prs + hd,6).Text =Format(tb.rows(r)(5),"#,###,###")
                rx.Cells(r - p * prs + hd,5).Text =Format(tb.rows(r)(4),"#,###,###")
                rx.Cells(r - p * prs + hd,4).Style.TextAlignHorz =prt.AlignHorzEnum.Center
                rx.Cols(4).Width = 8
                rx.Cols(10).Width = 10
                rx.Cols(9).Width = 10
                rx.Cols(8).Width = 15
                rx.Cols(7).Width = 15
                rx.Cols(6).Width = 15
                rx.Cols(5).Width = 15
                rx.Cols(3).Width = 32
                rx.Cols(2).Width = 41
            Next
            If p = math.Ceiling(tb.Rows.Count / prs) - 1
                Dim i As Integer =tb.Rows.count - (math.Ceiling(tb.Rows.Count / prs) - 1)*15 ’取最后一页的行数
                rx.Cells(i+hd,0).text = "" '
                rx.Rows(i+hd).Height = (15-i)*5.5
            ElseIf p < math.Ceiling(tb.Rows.Count / prs) - 1
                rx.BreakAfter = prt.BreakEnum.Page
            End If
            cnt = cnt+1
        End If
    Next
    doc.Body.Children.Add(rx)
Next
doc.Preview()

 

想要的效果是这样的


图片点击可在新窗口打开查看此主题相关图片如下:2.jpg
图片点击可在新窗口打开查看

第一页是没有问题的,一旦换页就有问题了,表格底部会多出行来,如下图

 


图片点击可在新窗口打开查看此主题相关图片如下:报表1.jpg
图片点击可在新窗口打开查看


 


图片点击可在新窗口打开查看此主题相关图片如下:报表2.jpg
图片点击可在新窗口打开查看

请高手帮忙改改,折腾几天了,之前那个帖子有误导大家了,我求证后改过来图片点击可在新窗口打开查看


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


加好友 发短信
等级:六尾狐 帖子:1209 积分:7263 威望:0 精华:0 注册:2013/3/4 18:02:00
  发帖心情 Post By:2013/3/12 9:15:00 [显示全部帖子]

以下是引用muhua在2013-3-12 8:15:00的发言:
把你具体的例子发上来。

能不能远程帮我看下呢?折腾这个例子好麻烦啊图片点击可在新窗口打开查看

昨天查了下,应该是

 rx.Cells(r - p * prs + hd, cnt+1).Text = tb.rows(r)(c)
这句有问题,但是不知道怎么改过来


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


加好友 发短信
等级:六尾狐 帖子:1209 积分:7263 威望:0 精华:0 注册:2013/3/4 18:02:00
  发帖心情 Post By:2013/3/12 9:28:00 [显示全部帖子]

不增加最后一页最后一行的行高的话,依然会有问题,就是换页后会多出一行来

 


图片点击可在新窗口打开查看此主题相关图片如下:报表3.jpg
图片点击可在新窗口打开查看

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


加好友 发短信
等级:六尾狐 帖子:1209 积分:7263 威望:0 精华:0 注册:2013/3/4 18:02:00
  发帖心情 Post By:2013/3/12 10:27:00 [显示全部帖子]

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1.foxdb

窗口的的打印按钮里的,折腾好了图片点击可在新窗口打开查看


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


加好友 发短信
等级:六尾狐 帖子:1209 积分:7263 威望:0 精华:0 注册:2013/3/4 18:02:00
  发帖心情 Post By:2013/3/12 10:42:00 [显示全部帖子]

以下是引用muhua在2013-3-12 10:40:00的发言:
报表的格式不一样哦,你发的代码是否是你需要设置的代码呀?

一样的啊,我发的代码只是截取了一段而已,表头表尾的设置因为太啰嗦就没有发了


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


加好友 发短信
等级:六尾狐 帖子:1209 积分:7263 威望:0 精华:0 注册:2013/3/4 18:02:00
  发帖心情 Post By:2013/3/12 10:47:00 [显示全部帖子]

你增加关联表的行到16行,就看出问题来了,第一页是没问题的

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


加好友 发短信
等级:六尾狐 帖子:1209 积分:7263 威望:0 精华:0 注册:2013/3/4 18:02:00
  发帖心情 Post By:2013/3/12 12:09:00 [显示全部帖子]

图片点击可在新窗口打开查看顶!

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


加好友 发短信
等级:六尾狐 帖子:1209 积分:7263 威望:0 精华:0 注册:2013/3/4 18:02:00
  发帖心情 Post By:2013/3/12 14:15:00 [显示全部帖子]

狐爸威武!

搞定!居然是这里...实在没注意到图片点击可在新窗口打开查看


 回到顶部