王超
(遼寧建筑職業(yè)學(xué)院,遼寧遼陽 111000)
基于PowerBuilder應(yīng)用程序的開發(fā)
王超
(遼寧建筑職業(yè)學(xué)院,遼寧遼陽 111000)
在進行任何開發(fā)和設(shè)計PowerBuiler應(yīng)用程序之前,必須去制定一個計劃。這個應(yīng)用程序看上去應(yīng)該是什么樣、它是如何工作的、把各個部分組合到一塊的組成結(jié)構(gòu)是什么、采取什么樣的數(shù)據(jù)庫、組織它的最好的方式是什么,以及如何使它在大小、速度和易用性方面達到最優(yōu),這些問題都需要我們在開發(fā)之前仔細地研究。本文通過一個開發(fā)實例闡述了PowerBuilder應(yīng)用程序的開發(fā)過程。
PowerBuilder 應(yīng)用程序 開發(fā)
在進行任何開發(fā)和設(shè)計PowerBuiler應(yīng)用程序之前,必須去制定一個計劃。這個應(yīng)用程序看上去應(yīng)該是什么樣、它是如何工作的、把各個部分組合到一塊的組成結(jié)構(gòu)是什么、采取什么樣的數(shù)據(jù)庫、組織它的最好的方式是什么,以及如何使它在大小、速度和易用性方面達到最優(yōu),這些問題都需要我們在開發(fā)之前仔細地研究。PowerBuilder應(yīng)用程序的開發(fā)過程包括分析、設(shè)計、開發(fā)、調(diào)試、生成可執(zhí)行文件這幾個部分。
這個階段也常常被稱為編碼階段,在這里說成開發(fā)是因為,在PowerBuilder中創(chuàng)建應(yīng)用程序更多的是定義和設(shè)置屬性,而不是編寫大量的代碼,用戶可能會認為如果不編寫代碼,就是在浪費時間,但是用戶應(yīng)該摒棄這種想法因為它就是全部的開發(fā)過程。在這里將講述開發(fā)過程的所有關(guān)鍵問題。用戶可以用任何適合于用戶項目的方法,以任何順序完成下列三個任務(wù),但是在用戶進行調(diào)試和測試之前,必須將它們?nèi)客瓿伞?1)創(chuàng)建數(shù)據(jù)庫。數(shù)據(jù)庫的設(shè)計是在設(shè)計階段完成的,現(xiàn)在要真正地實現(xiàn)它并創(chuàng)建各種表和索引。這個過程可以借助于一些數(shù)據(jù)庫設(shè)計的工具,它們可以將設(shè)計中產(chǎn)生的圖表直接轉(zhuǎn)換成創(chuàng)建所有表、索引和事件觸發(fā)器的SQL腳本程序,在這個過程中將使用Database畫板。(2)創(chuàng)建應(yīng)用程序。創(chuàng)建應(yīng)用程序?qū)ο?。設(shè)置應(yīng)用程序級的屬性并編寫應(yīng)用程序腳本,盡管這些在以后都是可以改變的,但最好還是事先想好需求什么。后面將詳細講述有關(guān)應(yīng)用程序?qū)ο蠛虯pplication畫板。(3)創(chuàng)建開發(fā)數(shù)據(jù)庫、基礎(chǔ)類庫、用戶對象和父窗口。創(chuàng)建開發(fā)數(shù)據(jù)庫是為了保存本項目的對象,和開發(fā)數(shù)據(jù)庫同時建立的還有一個子目錄結(jié)構(gòu),另外,用于版本控制和項目管理的對象檢查標準也應(yīng)被建立。
圖1 數(shù)據(jù)庫畫板
圖2 數(shù)據(jù)表定義窗口
基于前一階段的設(shè)計結(jié)果,我們討論一下以下問題:有加快開發(fā)速度的公共函數(shù)和用戶對象嗎?有什么標準窗口嗎?能通過創(chuàng)建父窗口來提高開發(fā)速度和增加其標準化程度嗎?現(xiàn)在開發(fā)一些只有戰(zhàn)略性的對象可以在后面的開發(fā)過程中節(jié)省許多時間。
下列步驟也可以按任意順序來做。實際上,把它們看成是一個完整的反復(fù)過程可能會更好。因為在創(chuàng)建應(yīng)用程序的過程中,不可避免地要在Window畫板、Datawindow畫板和其他畫板之間轉(zhuǎn)來轉(zhuǎn)去。(1)創(chuàng)建窗口對象。應(yīng)用程序的窗口把所有Datawindow、控件和用戶對象結(jié)合在一起,形成完整的用戶界面。有關(guān)如何在Window畫板中創(chuàng)建窗口的所有內(nèi)容將在后面講述。(2)創(chuàng)建菜單對象。一般在應(yīng)用程序的主窗口中都有一個下拉菜單,這個菜單是在Menu畫板中創(chuàng)建的。在Menu畫板中,可以定義顯示在菜單中的菜單項和子菜單,以及當(dāng)菜單項被選中時執(zhí)行什么代碼。(3)創(chuàng)建Datawindow對象??梢哉f,任何一個PowerBuilder應(yīng)用程序的核心都是數(shù)據(jù)庫和用戶與數(shù)據(jù)庫的交互,因此數(shù)據(jù)窗口就是PowerBuilder應(yīng)用程序開發(fā)的重點。它們定義要使用的數(shù)據(jù)以及用戶怎樣來查看和編輯這些數(shù)據(jù),它們能自動實現(xiàn)對這些接口的編碼。(4)編碼。在許多畫板中都可以進行編碼工作,可以在窗口和菜單項中為按鈕保存代碼。大部分代碼用來連接不同的控件以及實現(xiàn)它們之間的聯(lián)系,另有一些代碼用于直接訪問和更新數(shù)據(jù)。后面將詳細講述Powerscript語言以及嵌入式SQL語句。
PowerBuilder中有一個功能強大的集成調(diào)試器,可以跟蹤程序執(zhí)行和驗證變量的值,它與其他環(huán)境中使用的調(diào)試器差不多。但是,編寫的代碼并不是唯一需要調(diào)試的東西,有時還需要跟蹤發(fā)送到數(shù)據(jù)庫的命令以及從數(shù)據(jù)庫返回的數(shù)據(jù)。
測試需要在多個不同的層次上進行。必須保證該程序符合規(guī)格定義,不出現(xiàn)任何不希望出現(xiàn)的事情。用戶的交互必須是可以預(yù)料的,并且即使涉及到太多的記錄時,程序也不應(yīng)該死掉,這些都應(yīng)該在測試階段好好把握。
圖4 菜單欄中的菜單項
在我們學(xué)習(xí)PowerBuilder的開始階段時,一般可以通過簡單的選擇菜單命令完成生成可執(zhí)行文件的工作,但是事情并不是那么簡單的,隨著應(yīng)用程序大小和復(fù)雜性的增長,就會碰到有關(guān)可執(zhí)行文件大小和EXE中沒有包含的、動態(tài)分配對象的問題,用戶就需要在這個階段,利用PowerBuilder動態(tài)庫和它的資源文件來解決這些問題來創(chuàng)建高效的、專業(yè)化的Windows程序。
要求:展現(xiàn)使用PowerBuilder編程的完整過程。
技術(shù)要點:建立應(yīng)用對象、建立數(shù)據(jù)庫、窗口對象、菜單對象、編譯成exe和dll文件。
操作步驟:
(1)在e:student下建立工作區(qū)newapp.pbw。(2)創(chuàng)建應(yīng)用對象newapp。(3)創(chuàng)建數(shù)據(jù)庫,運行PowerBuilder 8.0,在工具欄中單擊Database圖標,進入數(shù)據(jù)庫畫板,打開ODB ODBC列表項,再打開其下面的Utilities列表項,如圖1所示。(4)創(chuàng)建數(shù)據(jù)表,右擊數(shù)據(jù)庫newdata中的Tables項,在彈出菜單中選擇“New Tables…”或單擊工具欄上的新建表按鈕,出現(xiàn)如圖2所示的列定義子窗口??捎肨ab鍵在六個輸入框間切換輸入內(nèi)容:如在Column Name(列名稱)中輸入xh;Data Type(數(shù)據(jù)類型)中輸入char指定該列的數(shù)據(jù)類型;在Width(寬度)中輸入9;Dec(小數(shù)點位數(shù))不輸入;在Null(該列是否允許為空)中選擇No(主鍵不能為空);Default(默認值)來定義新插入一列時該列的默認值。(5)創(chuàng)建數(shù)據(jù)窗口對象。單擊工具欄上的New按鈕,然后在彈出的New對話框中選擇DataWindow標簽頁,選擇Grid(網(wǎng)格)顯示風(fēng)格后,單擊OK按鈕,將會彈出選擇數(shù)據(jù)源對話框,選中Quick Select數(shù)據(jù)源,單擊Next按鈕,在Tables列表中單擊newtable,然后單擊Add All按鈕,單擊OK按鈕,彈出Select Color and Border Settings對話框后,單擊Next按鈕,會彈出列出了數(shù)據(jù)窗口的基本屬性的對話框,點擊Finish按鈕,進入數(shù)據(jù)窗口畫板。單擊工具欄上的按鈕或選擇菜單File︱Save As,鍵入數(shù)據(jù)窗口對象名:d_newtable,再單擊OK按鈕存盤。(6)創(chuàng)建窗口對象w_newtable,按如圖3所示添加控件、設(shè)置屬性、編碼。(7)創(chuàng)建菜單對象。單擊工具欄中上的圖標,或選擇File/New菜單項,選擇PB Object選項卡,選中圖標后單擊OK按鈕,打開菜單畫板。在菜單欄上插入第一個菜單項(菜單標題)。選擇Insert/Submenu Item菜單項,或單擊鼠標右鍵,在彈出式菜單中選擇Insert Submenu Item菜單項, PowerBuilder顯示一個空的文本輸入框,在文本框內(nèi)輸入菜單標題:插入,然后按Enter鍵,選中剛輸入的【插入】菜單項,右擊選擇Insert Menu Item At End菜單項,在新的文本編輯框內(nèi)輸入刪除,按回車鍵。仿此過程再加入菜單項【存盤】、【退出】,這樣菜單欄中所有的菜單項建立完畢如圖4所示。單擊畫板工具欄上的save按鈕,或在系統(tǒng)菜單中選擇File Save選項,彈出Save Menu對話框,輸入菜單文件名m_main,同時在菜單對象窗口的標題欄顯示m_main。
雙擊窗口對象w_newtable,通過在MenuName屬性中輸入m_main菜單名或單擊右邊的Browse的按鈕來選擇需要關(guān)聯(lián)的菜單。單擊工具欄中的按鈕或按快捷鍵,調(diào)試、測試程序。最后將程序編譯成為可執(zhí)行文件,創(chuàng)建步驟一般如下:準備工作、創(chuàng)建新工程或打開已保存工程、設(shè)置編譯選項、生成可執(zhí)行文件。
[1]張斌,陳越.Powerbuilder應(yīng)用開發(fā)注記[J].計算機系統(tǒng)應(yīng)用,1997(08).
[2]木尼拉·塔里甫.靈活運用PowerBuilder中事務(wù)管理的方法[J].中國科技信息, 2007(06).
[3]盧守東.PowerBuilder應(yīng)用程序的數(shù)據(jù)庫連接技術(shù)[J].科技情報開發(fā)與經(jīng)濟,2007(27).