Foxtable(狐表)用户栏目专家坐堂 → [求助]专业报表


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

主题:[求助]专业报表

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2015/3/19 10:02:00 [只看该作者]

 或者你可以改成这样

 

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

rx.Text = "那就叫你ddddddddd"

rx.Width = "100%"
rx.Height = "100%"

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

rx.Style.TextAlignHorz = prt.AlignHorzEnum.Center

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

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

 


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


加好友 发短信
等级:童狐 帖子:206 积分:1646 威望:0 精华:0 注册:2014/9/26 11:18:00
  发帖心情 Post By:2015/3/19 16:46:00 [只看该作者]

用了甜老师修改的代码,还有点问题:第2列每个单元格填入数据时,也有多个文本对象。

当第2列有多个文本对象时,仍不能垂直居中。

 

 

Dim doc As New PrintDoc

Dim rt As New prt.RenderTable

Dim ra As prt.RenderArea

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 3

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

        rx.Text = "那就叫你交"

        rx.Style.TextAlignHorz = prt.AlignHorzEnum.Center

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

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

    Next

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

   

    ra = new prt.RenderArea

    For t As Integer = 0 To 2

        '设置文本对象

        rt.Cells(i,1).Style.TextAlignVert = prt.AlignVertEnum.Center '文本垂直居中

       

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

        rx.Text = "那就叫你交ddddddddd"

        rx.Style.TextAlignHorz = prt.AlignHorzEnum.Center

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

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

    Next

    rt.Cells(i,1).RenderObject = ra

   

Next

doc.Body.Children.Add(rt)

Doc.Preview()


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2015/3/19 18:26:00 [只看该作者]

测试了一下,没办法是做不到自动的

 

Dim doc As New PrintDoc

Dim rt As New prt.RenderTable

Dim ra As prt.RenderArea

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 3
       
        rx = New prt.RenderText '创建一个文本
       
        rx.Text = "那就叫你交"
       
        rx.Style.TextAlignHorz = prt.AlignHorzEnum.Center
       
        rx.Style.Spacing.Bottom = 1 '距离下边的对象2毫米
       
        ra.Children.Add(rx) '加入文本到RenderArea中
       
    Next
   
    rt.Cells(i,0).RenderObject = ra
   
   
   
    ra = rt.Cells(i,1).area
    Dim ra1 = new prt.RenderArea
    For t As Integer = 0 To 2
       
        '设置文本对象
        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中
       
    Next
    ra.Style.TextAlignVert = prt.AlignVertEnum.Center
    'ra1.Style.TextAlignVert = prt.AlignVertEnum.Center
    ra.Style.Padding.Top = 3
    ra.Style.Padding.Bottom = 2
    ra.children.add(ra1)
    ra1.Style.BackColor = color.red
    ra.Style.BackColor = color.blue
   
   
   
Next

doc.Body.Children.Add(rt)

Doc.Preview()


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


加好友 发短信
等级:童狐 帖子:206 积分:1646 威望:0 精华:0 注册:2014/9/26 11:18:00
  发帖心情 Post By:2015/3/20 15:20:00 [只看该作者]

    我想实现的效果图如下,请老师能不能提个其他思路,急!

     


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

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2015/3/20 15:49:00 [只看该作者]

用段落去做

 

 

Dim doc As New PrintDoc

Dim rt As New prt.RenderTable

Dim ra As prt.RenderArea

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 3
       
        rx = New prt.RenderText '创建一个文本
       
        rx.Text = "那就叫你交"
       
        rx.Style.TextAlignHorz = prt.AlignHorzEnum.Center
       
        rx.Style.Spacing.Bottom = 1 '距离下边的对象2毫米
       
        ra.Children.Add(rx) '加入文本到RenderArea中
       
    Next
   
    rt.Cells(i,0).RenderObject = ra
   
   
   
   
    Dim rpar As New prt.RenderParagraph() '定义一个段落对象
   
    For t As Integer = 0 To 2
       
        rpar.Content.AddText("这是一个段落. 现在是正常文本. " & vbcrlf)
    Next
    rpar.Style.TextAlignHorz = prt.AlignHorzEnum.Center
    rpar.Style.TextAlignVert = prt.AlignVertEnum.Center
    rpar.Style.BackColor = Color.red
    rt.Cells(i,1).RenderObject = rpar

   
Next

doc.Body.Children.Add(rt)

Doc.Preview()

 

 

 

http://www.foxtable.com/help/topics/1183.htm

 


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


加好友 发短信
等级:童狐 帖子:206 积分:1646 威望:0 精华:0 注册:2014/9/26 11:18:00
  发帖心情 Post By:2015/3/20 16:07:00 [只看该作者]

   这个思路不错,谢谢!

 回到顶部
总数 16 上一页 1 2