以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  容器中加入过长文本的问题。  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=15908)

--  作者:cleek
--  发布时间:2012/1/17 11:30:00
--  容器中加入过长文本的问题。
在容器中加入文本时,如果文本是一个长度不定的变量,怎样在一个容器中使其自动分页打印?
--  作者:狐狸爸爸
--  发布时间:2012/1/17 11:46:00
--  
这是没有办法的。
--  作者:cleek
--  发布时间:2012/1/17 11:50:00
--  容器中加入过长文本的问题。
现在的情况是短些的文本没问题,长的文本就另起一页开始打印,而且如果一页打印不下也看不到了。
--  作者:yangming
--  发布时间:2012/1/17 12:01:00
--  

不要指定容器的尺寸试试呢?就是删除这两句

如果你没有明确指定RenderArea的尺寸,那么RenderArea会自动根据子对象的位置和尺寸调整到最佳大小。

 

rt.Width = "Parent.Width" \'宽度等于容器宽度
rt
.Height = "Parent.Height" \'高度等于容器高度

[此贴子已经被作者于2012-1-17 12:01:34编辑过]

--  作者:狐狸爸爸
--  发布时间:2012/1/17 12:11:00
--  

是的,不指定尺寸,就会自动换页。

 

 


--  作者:cleek
--  发布时间:2012/1/18 16:35:00
--  容器中加入过长文本的问题。
这个我没有指定,换页能自动换,不过是整个文本内容全部换到下一页,而且第二页打印不下也不再自动换页
--  作者:狐狸爸爸
--  发布时间:2012/1/18 16:39:00
--  

我测试可以自动换页啊,你看看:

 

Dim doc As New PrintDoc \'定义一个报表
Dim rt As New prt.RenderText \'定义一个文本对象
Dim s As String
For i As Integer = 1 To 100
    s = s & "hello foxtbale "  & i & vbcrlf
Next
rt.Text = s \'设置文本对象的内容
doc.Body.Children.Add(rt) \'将文本对象加入到报表
doc.Preview() \'预览


--  作者:cleek
--  发布时间:2012/1/18 16:50:00
--  
文本加入报表换页没有问题,加入容器就不行。另外,是否可以判断容器内文本的行数?
--  作者:狐狸爸爸
--  发布时间:2012/1/18 16:55:00
--  

加入容器,也可以自动换页的:

 

Dim doc As New PrintDoc \'定义一个报表
Dim rt As New prt.RenderText \'定义一个文本对象
Dim ra As new prt.RenderArea
Dim s As String
For i As Integer = 1 To 100
    s = s & "hello foxtbale "  & i & vbcrlf
Next
rt.Text = s \'设置文本对象的内容
ra.Width = "Parent.Width"
ra.Children.Add(rt)
doc.Body.Children.Add(ra) \'将文本对象加入到报表
doc.Preview() \'预览