Foxtable(狐表)用户栏目专家坐堂 → 【专业报表】请问这种效果要如何加代码


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

主题:【专业报表】请问这种效果要如何加代码

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


加好友 发短信
等级:五尾狐 帖子:1197 积分:7056 威望:0 精华:0 注册:2013/3/4 18:02:00
【专业报表】请问这种效果要如何加代码  发帖心情 Post By:2013/3/9 9:15:00 [只看该作者]


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

这个是目前我做成的


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

这个是我想要的,每页固定15行,每行的行高固定为5.5毫米,如果不够15行,空行的的单元格边框如上图

下面是我的代码,求高手指点下如何加才能实现图2的效果

Dim Doc As New PrintDoc
Doc.PrinterName = "\\2011-20120311rn\EPSON LQ-735K ESC/P2"
Doc.PageSetting.Width =218
Doc.PageSetting.Height =138
Doc.AutoRotate = False
Doc.PageSetting.TopMargin=4
Doc.PageSetting.BottomMargin=2
Doc.PageSetting.LeftMargin=5
Doc.PageSetting.RightMargin=0
Doc.PageSetting.Landscape = True
Doc.AutoRotate = False

Dim prs As Integer = 15   '每页行数
Dim tb As Table = Tables("销售出库单主表.销售出库单子表")
Dim rx As New prt.RenderTable

rx.Width = 201
'rx.Height = 96
rx.Style.Font = New Font("宋体", 9)
For p As Integer = 0 To Math.Ceiling((tb.Rows.Count / prs) - 1 )
    Dim hd As Integer = tb.HeaderRows
    Dim cnt As Integer
    tb.CreateReportHeader(rx,True)
    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.Cells(r - p * prs + hd, cnt).Text = tb.rows(r)(c)
               
                rx.Cells(r - p * prs + hd,9).Text = "***"
                rx.Cells(r - p * prs + hd,8).Text = "***"
                rx.Cells(r - p * prs + hd,3).Style.TextAlignHorz =prt.AlignHorzEnum.Center
            Next
            If p < math.Ceiling(tb.Rows.Count / prs) - 1
                rx.BreakAfter = prt.BreakEnum.Page
            End If
            cnt = cnt+1
        End If
    Next
    rx.Cols.Insert(0) '在左边插入一列,用于打印行号
    rx.Cols(0).Width = 8 '设置行号列的宽度
    For i As Integer = 1 To rx.Rows.Count -hd
        rx.Cells(i+1,0).text = i '逐行写入行号
    Next
Next
rx.Cells(0,0).SpanRows = 2'第1行第1个单元格向下合并2行
rx.Cells(0,0).Text = "№"
rx.Cols(0).Style.TextAlignHorz= prt.AlignHorzEnum.Center
rx.Cols(0).Style.TextAlignVert =prt.AlignVertEnum.Center
rx.CellStyle.Spacing.All = 0.5 '单元格内距设为0.5毫米
rx.Style.GridLines.All =  New prt.Linedef(0.1, Color.black)
doc.Body.Children.Add(rx) '
doc.Preview()


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


加好友 发短信
等级:等待验证 帖子:3855 积分:20692 威望:0 精华:5 注册:2012/6/21 14:03:00
  发帖心情 Post By:2013/3/9 9:43:00 [只看该作者]

用户已被锁定

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


加好友 发短信
等级:五尾狐 帖子:1197 积分:7056 威望:0 精华:0 注册:2013/3/4 18:02:00
  发帖心情 Post By:2013/3/9 9:48:00 [只看该作者]


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

好像效果不对呢..


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


加好友 发短信
等级:五尾狐 帖子:1197 积分:7056 威望:0 精华:0 注册:2013/3/4 18:02:00
  发帖心情 Post By:2013/3/9 9:49:00 [只看该作者]

第二行直接跑到第二页了


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


加好友 发短信
等级:五尾狐 帖子:1197 积分:7056 威望:0 精华:0 注册:2013/3/4 18:02:00
  发帖心情 Post By:2013/3/9 9:52:00 [只看该作者]


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

改了下行高,最后一行的底边又没有了


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


加好友 发短信
等级:五尾狐 帖子:1197 积分:7056 威望:0 精华:0 注册:2013/3/4 18:02:00
  发帖心情 Post By:2013/3/9 9:55:00 [只看该作者]

搞定了

For i As Integer = 1 To rx.Rows.Count -hd
        rx.Cells(i+1,0).text = i '逐行写入行号
        icou = i +1
    Next

If icou < 15 Then
        rx.Cells(icou+1,0).text = "" '逐行写入行号
        rx.Rows(icou+1).Height = (15-icou) * 5.5 '第7行的高度为50毫米
    End If
指定行高要怎么设置呢?每一行的高度是5.5个毫米?


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


加好友 发短信
等级:五尾狐 帖子:1197 积分:7056 威望:0 精华:0 注册:2013/3/4 18:02:00
  发帖心情 Post By:2013/3/9 9:59:00 [只看该作者]

知道了..搞定,谢谢MUhua

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


加好友 发短信
等级:等待验证 帖子:3855 积分:20692 威望:0 精华:5 注册:2012/6/21 14:03:00
  发帖心情 Post By:2013/3/9 10:07:00 [只看该作者]

用户已被锁定

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


加好友 发短信
等级:五尾狐 帖子:1197 积分:7056 威望:0 精华:0 注册:2013/3/4 18:02:00
  发帖心情 Post By:2013/3/9 10:39:00 [只看该作者]

还是把代码贴一下,方便有需要的后来者

Dim Doc As New PrintDoc
Doc.PrinterName = "\\2011-20120311rn\EPSON LQ-735K ESC/P2"
Doc.PageSetting.Width =218
Doc.PageSetting.Height =138
Doc.AutoRotate = False
Doc.PageSetting.TopMargin=4
Doc.PageSetting.BottomMargin=2
Doc.PageSetting.LeftMargin=5
Doc.PageSetting.RightMargin=0
Doc.PageSetting.Landscape = True
Doc.AutoRotate = False

Dim prs As Integer = 15   '每页行数

Dim icou As Integer
Dim tb As Table = Tables("销售出库单主表.销售出库单子表")
Dim rx As New prt.RenderTable

rx.Width = 201
rx.Height = 93.5
rx.Style.Font = New Font("宋体", 9)
For p As Integer = 0 To Math.Ceiling((tb.Rows.Count / prs) - 1 )
    Dim hd As Integer = tb.HeaderRows
    Dim cnt As Integer
    tb.CreateReportHeader(rx,True)
    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.Cells(r - p * prs + hd, cnt).Text = tb.rows(r)(c)
               
                rx.Cells(r - p * prs + hd,9).Text = "***"
                rx.Cells(r - p * prs + hd,8).Text = "***"
                rx.Cells(r - p * prs + hd,3).Style.TextAlignHorz =prt.AlignHorzEnum.Center
            Next
            If p < math.Ceiling(tb.Rows.Count / prs) - 1
                rx.BreakAfter = prt.BreakEnum.Page
            End If
            cnt = cnt+1
        End If
    Next
    rx.Cols.Insert(0) '在左边插入一列,用于打印行号
    rx.Cols(0).Width = 8 '设置行号列的宽度
   
For i As Integer = 1 To rx.Rows.Count -hd
        rx.Cells(i+1,0).text = i '逐行写入行号
        icou = i +1
    Next

If icou < 15 Then
        rx.Cells(icou+1,0).text = "" '逐行写入行号
        rx.Rows(icou+1).Height = (15-icou+1) * 5.5 '第7行的高度为50毫米
    End If


Next
rx.Cells(0,0).SpanRows = 2'第1行第1个单元格向下合并2行
rx.Cells(0,0).Text = "№"
rx.Cols(0).Style.TextAlignHorz= prt.AlignHorzEnum.Center
rx.Cols(0).Style.TextAlignVert =prt.AlignVertEnum.Center
rx.CellStyle.Spacing.All = 0.5 '单元格内距设为0.5毫米
rx.Style.GridLines.All =  New prt.Linedef(0.1, Color.black)
doc.Body.Children.Add(rx) '
doc.Preview()

[此贴子已经被作者于2013-3-9 10:39:11编辑过]

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


加好友 发短信
等级:四尾狐 帖子:867 积分:6210 威望:0 精华:0 注册:2012/11/24 20:44:00
回复:(晕了快扶我)还是把代码贴一下,方便有需要的...  发帖心情 Post By:2013/3/10 7:47:00 [只看该作者]

好人啊

 回到顶部