1.引言
自PowerBuild4.0问世以来,以其简洁高效的集成开发环境、强大的数据窗口技术、(几乎)无所不能的数据库访问能力,越来越受到编程人员的青睐。据Sybase自己的统计,目前全球有60万程序员和系统分析人员在使用他们的Powerbuilder和S-designer,进行各种类型的应用程序开发。最新发布的PowerBuilder6.0族系列开发工具,直接支持ActiveX技术、ServerPush技术,对分布式计算模型的定义更加明确,实现更为简便,并可以利用数据窗口直接生成HTML格式文件,等等。所以,PowerBuilder 已成为C/S模式应用和基于InterNet 模式应用的主要开发工具之 一。
数据窗口(DataWindow)是PowerBuilder的专利,也是PowerBuilder应用程序的核心和精华所在.PowerBuilder通过丰富的属性和函数来控制数据窗口的显示和数据操纵,但对数据窗口的打印支持似乎过于简单,只有一个Print() 窗口函数和一个PrintDataWindowPowerScript函数,并且这两个函数的功能几乎都是一样,都只简单地将选定数据窗口原样送入打印队列,本身 不具备页面控制功能。为此很多程序员抱怨这是PowerBuilder的一个缺陷,其实,PowerBuilder对打印功能的支持一样十分周到全面,只不过应用场合不同,需要用户自行加以选择。
以下是对PowerBuilder打印控制功能的详尽分析,并介绍一个实用的数据窗口页面控制程序。
2.Powerbuilder实现动态页面控制的途径
PowerBuilder数据窗口有一对函数Describe 和Modify,用于动态描述和修改数据窗口结构,与其它相关函数结合可以完成动态生成数据窗口、任意改变数据窗口显示方式、修改打印属性等。这两个函数是控制与修改数据窗口的核心函数,其使用方法如下:
1)Describe获取数据窗口特定属性值
语法:dwcontrol.Describe(propertylist)
参数:dwcontrol数据窗口(或datastore)控 件名。
propertylist用字符串表示的数据窗口属性。
返回值:返回一个表示属性的字符串。
数据窗口属性值也可以用dwcontrol.object.Datawindow.property来完成直接取得。
2)Modify修改数据窗口特定属性
语法:dwcontrol.Modify(modstring)
参数:dwcontroldwcontrol数据窗口(或datastore)控 件名。
modstring用字符串表示的数据窗口属性。
返回值:如果函数执行成功返回“1”。
与Describe类似, 修改数据窗口属性可以用:
dwcontrol.object.Datawindow.property=value直 接赋值。
3)与打印有关的数据窗口属性
数据窗口属性中与打印有关的有24个,其中实现打印页面控制的几个属性是:
Copies:打印份数。
Filename:如果不为空,表示输出到文件的文件名。
Orientation:打印方向1=横向,2=纵 向
Page.Range:输出页范围,要打印1,2,和5到10 页,输入: "1,2,5-10"。Page.RangeInclude:本 次打印范围,0=全部,1= 偶数页,2= 奇数页。Paper.Size:纸张大小。
Scale:打印比例。
程序中利用Modify函数设置好这些属性后,即可实现动态修改数据窗口的目的,再调用datawindow.print()函数,完成最后的打印输出。