以文本方式查看主题

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

--  作者:pcxjxjhkw
--  发布时间:2015/8/4 18:36:00
--  [求助]专业报表段落问题
Dim rpar As New prt.RenderParagraph()
rpar.Content.AddText( vblf & "特此告知.",f2)
rpar.Content.AddText( vblf & Format(dr0("受理时间"),"yyyy-MM-dd"),f3)

想实现:特此告知左对齐,受理时间右对齐并空4个字符。


求助老师,谢谢

--  作者:大红袍
--  发布时间:2015/8/4 19:31:00
--  

不能这样做。

 

加入两个 RenderText 来控制。


--  作者:pcxjxjhkw
--  发布时间:2015/8/4 19:41:00
--  
老师,是在一个表格中的一单元格内加入该段落。
--  作者:大红袍
--  发布时间:2015/8/4 19:50:00
--  

你可以加入容器。

 

容器里面加入 段落和文本


--  作者:pcxjxjhkw
--  发布时间:2015/8/5 10:36:00
--  
老师,如何在单元格中加入容器?


--  作者:大红袍
--  发布时间:2015/8/5 10:58:00
--  

 

Dim doc As New PrintDoc \'定义一个报表
Dim rt As New prt.RenderTable() \'定义一个表格对象
doc.Body.Children.Add(rt) \'将表格对象加入到报表中
\'下面的代码向表格中填入值
For r As Integer = 0 To 5
    For c As Integer = 0 To 5
        Dim ra As New prt.RenderArea
        Dim rx As new prt.RenderText
        rx.Text = r & " " & c
        ra.children.add(rx)
        rt.Cells(r, c).RenderObject = ra \'将文本对象放置在单元格中
    Next
Next
doc.Preview() \'预览报表


--  作者:pcxjxjhkw
--  发布时间:2015/8/5 11:44:00
--  
老师,麻烦您将1楼的代码写一下,谢谢


--  作者:大红袍
--  发布时间:2015/8/5 12:15:00
--  

思路已经提供,要做,自己看帮助去

 

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

 


--  作者:pcxjxjhkw
--  发布时间:2015/8/5 15:28:00
--  
    ra = rt.Cells(rt.Rows.Count-1,1).Area   \'引用单元格的容器
    ra.Stacking = prt.StackingRulesEnum.BlockTopToBottom   \'排列方式改为从上到下
    rpar = New prt.RenderParagraph()  \'\'新的段落
    rpar.Content.AddText("特此告知",f3)
    rpar.Style.TextIndent = "10mm"
rpar.Style.TextAlignHorz = prt.AlignHorzEnum.Left  \'\'左对齐
rpar.Style.TextAlignVert =prt.AlignVertEnum.Bottom
    ra.Children.Add(rpar) \'加入段落到RenderArea中

    rs = New prt.RenderText()  \'\'新的文本
    rs.Text = Format(date.now,"yyyy年M月d日") 
rs.Width = "Auto"
    rs.Style.TextAlignHorz = prt.AlignHorzEnum.Center    \'\'文本水平对齐
    rs.Style.Padding.Right = 7 \'\'距右边距      
    ra.Children.Add(rs)
    rt.cells(rt.Rows.Count-1,1).RenderObject = ra

问题:红色代码无法实现该文本整体距右边距7毫米。只是实现了文本内容距文本框7毫米。求解

也就是如何设置对象在容器中的位置?水平靠右,垂直靠下。
[此贴子已经被作者于2015/8/5 15:35:45编辑过]

--  作者:大红袍
--  发布时间:2015/8/5 16:00:00
--  

参考

 

Dim doc As New PrintDoc \'定义一个报表
Dim ra As New prt.RenderArea
ra.Style.BackColor = color.red
ra.Stacking = prt.StackingRulesEnum.InlineLeftToRight
Dim rx As new prt.RenderText
rx.Text = "123456"
rx.width = "parent.width / 2"
rx.Style.TextAlignHorz = prt.AlignHorzEnum.Left
ra.children.add(rx)
rx = new prt.RenderText
rx.width = "parent.width / 2"
rx.Text = "123456"
rx.Style.TextAlignHorz = prt.AlignHorzEnum.right
ra.children.add(rx)
doc.body.Children.Add(ra)
doc.Preview() \'预览报表