强制换页、换栏、换行
先看看下面两个属性:
BreakAfter: 用于决定在打印此对象之后,是否换行、换栏、换页
BreakBefore:用于决定在打印此对象之前,是否换行、换栏、换页。
这两个属性都是BreakEnum型枚举,有以下可选值:
Column: 另起一栏
Line: 另起一行
Page: 另起一页
None: 无动作
示例一
Dim
doc As
New PrintDoc '定义一个报表
Dim s As
String
'定义字符变量
Doc.Columns.Add() '增加第一栏
Doc.Columns.Add() '增加第二栏
s = "新华网绵阳5月16日电(记者孙承斌)16日上午,在四川抗震救灾的"
s = s &
"危急时刻,中共中央总书记、国家主席、中央军委主席胡锦涛乘飞机赶往四川"
s = s &
"省地震灾区,慰问灾区干部群众,看望奋战在抗震救灾第一线的部队官兵、公"
s = s & "安民警和医护人员,指导抗震救灾工作。"
For i As
Integer =
1
to
2
Dim
rt As New
prt.RenderText '定义一个文本对象
rt.Text = s '设置文本对象的内容
rt.Style.TextIndent = 9
'首行缩进9毫米
rt.Style.LineSpacing =
150 '1.5倍行距
rt.BreakAfter = prt.BreakEnum.Column
'打印之后另起一栏
doc.Body.Children.Add(rt)
'将文本对象加入到报表
Next
doc.Preview() '预览
可以看到,两个文本对象被打印在不同的分栏:
需要注意的是,如果给打印对象指定了坐标位置,那么其BreakAfter和BreakBefore属性是失效的;此时为了强制换页,我们可以加入一个RenderEmpty对象,RenderEmpty是一个空对象,不会打印任何内容;设置RenderEmpty对象的BreakAfter或BreakBefore属性,不指定其坐标,加入到报表中,即可实现强制换页、换栏,换行。
示例二
例如下面的代码,由于所有的打印对象都需要指定坐标位置,所以只有通过增加一个RenderEmpty对象来控制换页:
Dim
doc As
New PrintDoc() '定义一个报表
Dim rt As
prt.RenderText '定义一个文本对象
Dim rm As
prt.RenderEmpty '定一个空对象
For n As
integer =1
To
2
rm = new prt.RenderEmpty
'定义一个新的空对象
rm.BreakBefore = prt.BreakEnum.Page
'打印前换页
doc.Body.Children.Add(rm)
'加入到报表中
For i
AS
integer =
1
To
5
rt = New prt.RenderText()
'创建文本对象
rt.Text =
"Hello Foxtable " & i
'设置文本对象的内容
rt.Width =
"Auto"
'自动设置宽度
rt.X = i *
10 +
20
'指定水平位置
rt.y = i *
10 +
20
'指定垂直位置
rt.Style.Borders.All = New
prt.Linedef(1,
Color.Red) '设置边框
doc.Body.Children.Add(rt)
'将文本对象加入到报表
Next
Next
doc.Preview() '预览
本页地址:http://www.foxtable.com/webhelp/topics/1196.htm