以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]专业报表  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=65565)

--  作者:xxk02
--  发布时间:2015/3/18 14:59:00
--  [求助]专业报表

   在专业报表中,定义1个报表rb,并也某单元格为容器:

   ra = rb.cell(r,c).Area

   在容器ra中加入几个文本对象。

   请问如何将加入的文本对象在单元各种垂直居中?

   我试写了几个代码,一是统一用表属性设置不起作用,设置单元格的属性也不起作用

   设置文本对象垂直居中也不起作用。


--  作者:Bin
--  发布时间:2015/3/18 15:02:00
--  
http://www.foxtable.com/help/topics/1185.htm
--  作者:xxk02
--  发布时间:2015/3/18 15:09:00
--  
      我的容器是单元格,容器中有多个文本对象,采用循环对单个文本对象设置了垂直居中,但没起作用
--  作者:Bin
--  发布时间:2015/3/18 15:10:00
--  
你用容器,按照帮助的做,然后再把这个容器,添加进单元格
--  作者:有点甜
--  发布时间:2015/3/18 15:11:00
--  
 请贴出写的代码,可以单独运行的。
--  作者:xxk02
--  发布时间:2015/3/18 16:38:00
--  

    

    下列代码中,第1列垂直居中,第二列不垂直居中

    

Dim doc As New PrintDoc

Dim rt As New prt.RenderTable

Dim ra As prt.RenderArea

Dim ra1 As prt.RenderArea

Dim rm As prt.RenderImage

Dim rx As prt.RenderText

rt.Style.GridLines.All = New prt.LineDef

rt.CellStyle.Spacing.All = 1 \'单元格内容和网格线距离1毫米

rt.Cols.Count = 3 \'总列数为3

For i As Integer = 0 To 3

    ra = rt.Cells(i,0).Area \'引用单元格的容器

       

    \'设置文本对象

    For s As Integer = 0 To 3

        rx = New prt.RenderText \'创建一个文本

        rx.Text = "那就叫你"

        rx.Style.TextAlignVert = prt.AlignVertEnum.Center \'文本垂直居中

        rx.Style.TextAlignHorz = prt.AlignHorzEnum.Center

        rx.Style.Spacing.Bottom = 1 \'距离下边的对象2毫米

        ra.Children.Add(rx) \'加入文本到RenderArea中

    Next

 

    ra1 = rt.Cells(i,1).Area \'引用单元格的容器

       

    \'设置文本对象

        rx = New prt.RenderText \'创建一个文本

        rx.Text = "那就叫你ddddddddd"

        rx.Style.TextAlignVert = prt.AlignVertEnum.Center \'文本垂直居中

        rx.Style.TextAlignHorz = prt.AlignHorzEnum.Center

        rx.Style.Spacing.Bottom = 1 \'距离下边的对象2毫米

        ra1.Children.Add(rx) \'加入文本到RenderArea中

  

doc.Body.Children.Add(rt)

Doc.Preview()


--  作者:xxk02
--  发布时间:2015/3/18 17:00:00
--  
     请老师看一下,这个问题如何解决?
--  作者:xxk02
--  发布时间:2015/3/18 17:20:00
--  
        请各位老师指教!
--  作者:有点甜
--  发布时间:2015/3/18 17:28:00
--  

Dim doc As New PrintDoc

Dim rt As New prt.RenderTable

Dim ra As prt.RenderArea

Dim ra1 As prt.RenderArea

Dim rm As prt.RenderImage

Dim rx As prt.RenderText

rt.Style.GridLines.All = New prt.LineDef

rt.CellStyle.Spacing.All = 1 \'单元格内容和网格线距离1毫米

rt.Cols.Count = 3 \'总列数为3

For i As Integer = 0 To 3
    ra = new prt.RenderArea
    \'设置文本对象
   
    For s As Integer = 0 To 1
       
        rx = New prt.RenderText \'创建一个文本
       
        rx.Text = "那就叫你"
       
        \'rx.Style.TextAlignVert = prt.AlignVertEnum.Center \'文本垂直居中
       
        rx.Style.TextAlignHorz = prt.AlignHorzEnum.Center
       
        rx.Style.Spacing.Bottom = 1 \'距离下边的对象2毫米
       
        ra.Children.Add(rx) \'加入文本到RenderArea中
       
    Next
    rt.Cells(i,0).RenderObject = ra
   
    rt.Cells(i,1).Style.TextAlignVert = prt.AlignVertEnum.Center
   
    \'设置文本对象
   
    rx = New prt.RenderText \'创建一个文本
   
    rx.Text = "那就叫你ddddddddd"
    rx.Style.BackColor = Color.red
    rx.Style.TextAlignHorz = prt.AlignHorzEnum.Center
    rt.Cells(i,1).RenderObject = rx
Next


doc.Body.Children.Add(rt)

Doc.Preview()


--  作者:xxk02
--  发布时间:2015/3/19 9:59:00
--  

上述代码解决了问题,但是不太明白,不知引用单元格的容器,在定义格式和老师的代码有什么区别,请解释一下

 

ra = rt.Cells(i,0).Area \'引用单元格的容器

 

rt.Cells(i,0).RenderObject = rx