以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  如图1打印成图2的样式,代码如何实现?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=59829)

--  作者:y2287958
--  发布时间:2014/11/11 22:39:00
--  
整个临时表就可以了
--  作者:有点甜
--  发布时间:2014/11/11 22:51:00
--  
 循环所有的行,分别新增行,赋值即可。
--  作者:有点甜
--  发布时间: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()


--  作者:有点甜
--  发布时间:2014/11/12 10:52:00
--  
i 不可能是 -2
--  作者:有点甜
--  发布时间:2014/11/12 10:58:00
--  
 例子
--  作者:有点甜
--  发布时间: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

--  作者:有点甜
--  发布时间: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


--  作者:有点甜
--  发布时间: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