Foxtable(狐表)用户栏目专家坐堂 → 如图1打印成图2的样式,代码如何实现?


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

主题:如图1打印成图2的样式,代码如何实现?

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/11/11 22:51:00 [显示全部帖子]

 循环所有的行,分别新增行,赋值即可。

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/11/12 9:11:00 [显示全部帖子]

Dim doc As New PrintDoc() '定义一个报表
doc.PageSetting.Width = 58 '纸张宽度为100毫米
'  doc.PageSetting.Height = 120 '纸张高度为120毫米
Dim tbl As Table = Tables("表A")
Dim rw As Row
Dim rt As New prt.RenderTable() '定义一个表格对象
Dim rx As New prt.RenderText '定义一个文本对象
Dim ra As New prt.RenderArea '定义一个容器
Doc.Body.ChildRen.Add(ra)
rt.Cols(0).Width = 58
rt.Cols(1).Width = 58

rx.text = "缴费"
rx.Style.Font = New Font("宋体", 9 , FontStyle.Bold) '设置文本对象的
ra.Children.Add(rx) '加入到容器中

For i As Integer = tbl.TopPosition To tbl.BottomPosition
    rw = tbl.Rows(i)
    rt.rows(rt.Rows.Count).Height = 12
    Dim j As Integer = (i-tbl.TopRow) * 3
    rt.Cells(0+j,0).Text= "姓名"
    rt.Cells(0+j,1).Text = rw("第一列")
    rt.rows(0+j).Height = 12
    rt.Cells(1+j,0).Text= "卡号:"
    rt.Cells(1+j,1).Text = rw("第二列")
    rt.rows(1+j).Height = 12
    rt.Cells(2+j,0).Text= "金额:"
    rt.Cells(2+j,1).Text = rw("第三列")
   
    '将容器加入到报表中
Next
ra.Children.Add(rt) '加入到容器中
Doc.Preview()


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/11/12 10:52:00 [显示全部帖子]

i 不可能是 -2

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/11/12 10:58:00 [显示全部帖子]

 例子

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/11/12 11:51:00 [显示全部帖子]

Dim doc As New PrintDoc() '定义一个报表
doc.PageSetting.Width = 58 '纸张宽度为100毫米
'  doc.PageSetting.Height = 120 '纸张高度为120毫米
Dim tbl As Table = Tables("test")
If tbl.Current IsNot Nothing Then
    Dim rw As Row
    Dim rt As New prt.RenderTable() '定义一个表格对象
    Dim rx As New prt.RenderText '定义一个文本对象
    Dim ra As New prt.RenderArea '定义一个容器
    Doc.Body.ChildRen.Add(ra)
    rt.Cols(0).Width = 58
    rt.Cols(1).Width = 58
   
    rx.text = "缴费"
    rx.Style.Font = New Font("宋体", 9 , FontStyle.Bold) '设置文本对象的
    ra.Children.Add(rx) '加入到容器中
   
    For i As Integer = tbl.TopPosition To tbl.BottomPosition
        rw = tbl.Rows(i)
        rt.rows(rt.Rows.Count).Height = 12
        Dim j As Integer = (i-tbl.TopRow) * 3
        rt.Cells(0+j,0).Text= "姓名"
        rt.Cells(0+j,1).Text = rw("名称")
        rt.rows(0+j).Height = 12
        rt.Cells(1+j,0).Text= "卡号:"
        rt.Cells(1+j,1).Text = rw("卡号")
        rt.rows(1+j).Height = 12
        rt.Cells(2+j,0).Text= "金额:"
        rt.Cells(2+j,1).Text = rw("金额")
       
        '将容器加入到报表中
    Next
    ra.Children.Add(rt) '加入到容器中
    Doc.Preview()
End If

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/11/12 14:14:00 [显示全部帖子]

Dim doc As New PrintDoc() '定义一个报表
doc.PageSetting.Width = 58 '纸张宽度为100毫米
'  doc.PageSetting.Height = 120 '纸张高度为120毫米
Dim tbl As Table = Tables("test")
If tbl.Current IsNot Nothing Then
    Dim rw As Row
    Dim rt As New prt.RenderTable() '定义一个表格对象
    Dim rx As New prt.RenderText '定义一个文本对象
    Dim ra As New prt.RenderArea '定义一个容器
    Doc.Body.ChildRen.Add(ra)
    rt.Cols(0).Width = 58
    rt.Cols(1).Width = 58
   
    rx.text = "缴费"
    rx.Style.Font = New Font("宋体", 9 , FontStyle.Bold) '设置文本对象的
    ra.Children.Add(rx) '加入到容器中
   
    For i As Integer = 0 To tbl.Rows.Count - 1

        rw = tbl.Rows(i)
        rt.rows(rt.Rows.Count).Height = 12
        Dim j As Integer = (i-tbl.TopRow) * 3
        rt.Cells(0+j,0).Text= "姓名"
        rt.Cells(0+j,1).Text = rw("名称")
        rt.rows(0+j).Height = 12
        rt.Cells(1+j,0).Text= "卡号:"
        rt.Cells(1+j,1).Text = rw("卡号")
        rt.rows(1+j).Height = 12
        rt.Cells(2+j,0).Text= "金额:"
        rt.Cells(2+j,1).Text = rw("金额")
       
        '将容器加入到报表中
    Next
    ra.Children.Add(rt) '加入到容器中
    Doc.Preview()
End If


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/11/12 14:48:00 [显示全部帖子]

Dim doc As New PrintDoc() '定义一个报表
doc.PageSetting.Width = 58 '纸张宽度为100毫米
'  doc.PageSetting.Height = 120 '纸张高度为120毫米
Dim tbl As Table = Tables("test")
If tbl.Current IsNot Nothing Then
    Dim rw As Row
    Dim rt As New prt.RenderTable() '定义一个表格对象
    Dim rx As New prt.RenderText '定义一个文本对象
    Dim ra As New prt.RenderArea '定义一个容器
    Doc.Body.ChildRen.Add(ra)
    rt.Cols(0).Width = 58
    rt.Cols(1).Width = 58
   
    rx.text = "缴费"
    rx.Style.Font = New Font("宋体", 9 , FontStyle.Bold) '设置文本对象的
    ra.Children.Add(rx) '加入到容器中
   
   
    For i As Integer = 0 To tbl.Rows.Count - 1
        rw = tbl.Rows(i)
        rt.Cells(0,0).Text= "姓名"
        rt.Cells(0,1).Text = rw("名称")
       
       
        rt.rows(0).Height = 12
        Dim j As Integer = i * 2 + 1
       
        rt.rows(j).Height = 12
        rt.Cells(j,0).Text= "卡号:"
        rt.Cells(j,1).Text = rw("卡号")
        rt.rows(1+j).Height = 12
        rt.Cells(1+j,0).Text= "金额:"
        rt.Cells(1+j,1).Text = rw("金额")
       
        '将容器加入到报表中
    Next
    rt.Cells(rt.Rows.Count,0).Text = "合计"
    rt.Cells(rt.Rows.Count-1,1).Text = tbl.Compute("sum(金额)")
    ra.Children.Add(rt) '加入到容器中
    Doc.Preview()
End If

 回到顶部