换页控制

首先在命令窗口执行下面的代码:

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