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()函數,完成最後的列印輸出。