摘 要: PowerBuilder作為一種優(yōu)秀的數(shù)據(jù)庫應(yīng)用開發(fā)工具,與其他數(shù)據(jù)庫應(yīng)用開發(fā)工具相比較,最具特色的是它具有數(shù)據(jù)窗口對象技術(shù)。數(shù)據(jù)窗口對象是PowerBuilder中的一種對象類型,是專門為了訪問后臺的數(shù)據(jù)庫服務(wù)的。在數(shù)據(jù)窗口對象中,可以定義數(shù)據(jù)的來源和數(shù)據(jù)的顯示風(fēng)格,這樣在應(yīng)用程序中就可以把精力完全放在程序的運(yùn)行流程控制上。
關(guān)鍵詞: PowerBuilder 數(shù)據(jù)窗口 數(shù)據(jù)庫 應(yīng)用技巧
數(shù)據(jù)窗口是用戶(User)和數(shù)據(jù)庫服務(wù)器(DataBase Server)之間的一個(gè)操作接口。通過這個(gè)接口,用戶可以進(jìn)行數(shù)據(jù)維護(hù)、報(bào)表打印和制作統(tǒng)計(jì)圖形。數(shù)據(jù)窗口是一種智能型(Data Intelligent)的數(shù)據(jù)處理對象,它具有判斷輸入數(shù)據(jù)是否正確的能力。在建立一個(gè)新的數(shù)據(jù)窗口之前,必須先決定數(shù)據(jù)來源(Data Source)和顯示類型(Presentation Style)。而PowerBuilder的數(shù)據(jù)窗口繪圖器當(dāng)中提供了5種數(shù)據(jù)來源和11種顯示類型。數(shù)據(jù)窗口對象是利用PowerBuilder所提供的數(shù)據(jù)窗口繪圖器所產(chǎn)生的對象。數(shù)據(jù)窗口控件(DataWindow Control)是窗口(Window)上面許多控件(Controls)中的一種,用來將數(shù)據(jù)窗口對象的數(shù)據(jù)顯示在窗口控件上。
在數(shù)據(jù)窗口控件中交換不同的數(shù)據(jù)窗口對象有兩種方式:設(shè)計(jì)(design)階段和運(yùn)行(run time)階段。下面介紹下顯示數(shù)據(jù)中的一些操作技巧。
一、利用數(shù)據(jù)窗口實(shí)現(xiàn)基本數(shù)據(jù)顯示
以PowerBuilder本身所提供SQL Anywhere數(shù)據(jù)庫中的PowerSoft Demo DB數(shù)據(jù)庫為例,實(shí)現(xiàn)用數(shù)據(jù)窗口顯示基本數(shù)據(jù)。
步驟1.請先確認(rèn)當(dāng)前的PowerBuilder開發(fā)環(huán)境已連上SQLAnywhere的PowerSoft Demo DB數(shù)據(jù)庫。如果還沒有連上SQLAnywhere的PowerSoft Demo DB數(shù)據(jù)庫,可以利用圖形工具欄上的DBProfile的圖標(biāo),選擇PowerSoft DemoDB V 6項(xiàng),按下OK按鈕就可以連上PowerSoft Demo DB數(shù)據(jù)庫。
步驟2.進(jìn)入PowerBuilder應(yīng)用程序后,打開應(yīng)用程序繪圖器(Application Painter),選擇打開圖標(biāo),打開pbdw()目錄底下的pbdw.pbl文件后,選擇pbdw的應(yīng)用程序?qū)ο蟆?/p>
步驟3.打開進(jìn)入數(shù)據(jù)窗口繪圖器(DataWindow Painter)后,選擇New按鈕。
步驟4.選擇Quick Select作為 Data Source,Grid為Presentation Style。
步驟5.選擇table employee后,按照順序選擇dept_id,emp_id,emp_fname,emp_lname等字段,按照dept_id以Ascending方式排序,然后按下OK按鈕。
步驟6.選擇菜單中的“File/Save As”項(xiàng),將數(shù)據(jù)窗口存成d_emplist,并且寫上“員工一覽表”當(dāng)成注解。
步驟7.利用窗口繪圖器(Window Painter)打開w_basic窗口,在窗口上面放置一個(gè)數(shù)據(jù)窗口控件(DataWindow Control)后,命名為dw_emplist。并且將d_emplist的數(shù)據(jù)窗口對象(object)指定給dw_emplist的數(shù)據(jù)窗口控件。最后將Vscroll Bar選項(xiàng)打開。
步驟8.在窗口open event中寫上OPEN函數(shù)和數(shù)據(jù)讀取函數(shù)從數(shù)據(jù)庫中讀取數(shù)據(jù)。
步驟9.運(yùn)行應(yīng)用程序,選擇運(yùn)行窗口w_basic。
步驟10.結(jié)果會顯示所有員工數(shù)據(jù)。
二、動態(tài)改變數(shù)據(jù)窗口對象
步驟1.利用數(shù)據(jù)窗口繪圖器,選擇Quick Select作為Data Source,F(xiàn)reeForm當(dāng)成 Presentation Style。
步驟2.選擇table employee后,選擇Add All按鈕選取所有字段,按照emp_id排序后按下OK按鈕。
步驟3.適當(dāng)?shù)卣{(diào)整字段標(biāo)題位置后,將數(shù)據(jù)窗口存成d_empdetail,寫上“員工詳細(xì)數(shù)據(jù)”當(dāng)成注解。
步驟4.利用窗口繪圖器打開窗口w_change_dw,將d_emplist數(shù)據(jù)窗口對象指定給dw_1數(shù)據(jù)窗口控件,并選擇垂直滾動條(VScroll Bar)的功能。
步驟5.分別在“顯示多筆數(shù)據(jù)”與“顯示單筆數(shù)據(jù)”按鈕的clicked event中寫上顯示數(shù)據(jù)的程序代碼。
步驟6.運(yùn)行應(yīng)用程序后,選擇運(yùn)行窗口w_change_dw。
步驟7.按下“顯示多筆數(shù)據(jù)”按鈕時(shí),會顯示多筆員工數(shù)據(jù)。
步驟8.按下“顯示單筆數(shù)據(jù)”按鈕,會顯示單筆員工數(shù)據(jù)。
在數(shù)據(jù)窗口中顯示數(shù)據(jù)時(shí),必須先聲明一個(gè)交易對象(Transaction Object),把適當(dāng)?shù)臄?shù)據(jù)庫連接信息指定到交易對象的屬性(properties)后,再利用數(shù)據(jù)窗口所提供的settransobject()和retrieve()函數(shù)將數(shù)據(jù)從后端的數(shù)據(jù)庫中讀取到Client端的緩沖區(qū)(buffer)中,通過這種方式我們就可以在數(shù)據(jù)窗口上看到數(shù)據(jù)。
參考文獻(xiàn):
[1]戴士弘.美國教育史[M].北京:人民教育出版社,1994.
[2]王志勇.用PowerBuilder開發(fā)小型數(shù)據(jù)庫.西安:西安電子科技大學(xué)出版社,2000.
[3]朱愛民.PowerBuilder編程實(shí)用技術(shù)與案例.北京:清華大學(xué)出版社,2002.
[4]崔巍.PowerBuilder數(shù)據(jù)庫開發(fā)入門.北京:清華大學(xué)出版社,2002.