换页控制
首先在命令窗口执行下面的代码:
Dim
doc
As New PrintDoc()
'定义一个报表
Dim rt As
prt.RenderText '定义一个文本对象
For i AS
integer =
0
To
10
rt = New prt.RenderText()
'创建文本对象
rt.Text = "Hello
Foxtable" '设置文本对象的内容
rt.Width = 40
'宽度为40毫米
rt.Height = 40
'宽度为40毫米
rt.Style.Spacing.Bottom =
3
'设置下间隔为3毫米
rt.Style.Borders.All = New prt.Linedef(1,
Color.Red) '设置边框
rt.Style.TextAlignHorz = prt.AlignHorzEnum.Center
'水平居中
rt.Style.TextAlignVert = prt.AlignVertEnum.Center
'垂直居中
doc.Body.Children.Add(rt)
'将文本对象加入到报表
Next
doc.Preview() '预览
下图是执行结果,我们看到有一个RenderText被分成了两部分,分别处在不同的页面:
为了避免这种情况发生,所有的打印对象都提供了两个属性:
SplitHorzBehavior:设置对象的水平分割方式
SplitVertBehavior:设置对象的垂直分割方式
这两个属性都是SplitBehaviorEnum型枚举,可选值有:
Never:
不分割
SplitIfNeeded: 分割
现在我们只需如下修改代码,即可避免上图所出现的情况,注意加粗的一行:
Dim
doc As
New PrintDoc() '定义一个报表
Dim rt As
prt.RenderText '定义一个文本对象
For i AS
integer =
0
To
10
rt = New prt.RenderText()
'创建文本对象
rt.Text = "Hello
Foxtable" '设置文本对象的内容
rt.Width = 40
'宽度为40毫米
rt.Height = 40
'宽度为40毫米
rt.Style.Spacing.Bottom =
3
'设置下间隔为3毫米
rt.SplitVertBehavior = prt.SplitBehaviorEnum.Never
'禁止被垂直分割
rt.Style.Borders.All = New prt.Linedef(1,
Color.Red) '设置边框
rt.Style.TextAlignHorz = prt.AlignHorzEnum.Center
'水平居中
rt.Style.TextAlignVert = prt.AlignVertEnum.Center
'垂直居中
doc.Body.Children.Add(rt)
'将文本对象加入到报表
Next
doc.Preview() '预览
本页地址:http://www.foxtable.com/webhelp/topics/1184.htm