王超
(遼寧建筑職業學院,遼寧遼陽 111000)
基于PowerBuilder應用程序的開發
王超
(遼寧建筑職業學院,遼寧遼陽 111000)
在進行任何開發和設計PowerBuiler應用程序之前,必須去制定一個計劃。這個應用程序看上去應該是什么樣、它是如何工作的、把各個部分組合到一塊的組成結構是什么、采取什么樣的數據庫、組織它的最好的方式是什么,以及如何使它在大小、速度和易用性方面達到最優,這些問題都需要我們在開發之前仔細地研究。本文通過一個開發實例闡述了PowerBuilder應用程序的開發過程。
PowerBuilder 應用程序 開發
在進行任何開發和設計PowerBuiler應用程序之前,必須去制定一個計劃。這個應用程序看上去應該是什么樣、它是如何工作的、把各個部分組合到一塊的組成結構是什么、采取什么樣的數據庫、組織它的最好的方式是什么,以及如何使它在大小、速度和易用性方面達到最優,這些問題都需要我們在開發之前仔細地研究。PowerBuilder應用程序的開發過程包括分析、設計、開發、調試、生成可執行文件這幾個部分。
這個階段也常常被稱為編碼階段,在這里說成開發是因為,在PowerBuilder中創建應用程序更多的是定義和設置屬性,而不是編寫大量的代碼,用戶可能會認為如果不編寫代碼,就是在浪費時間,但是用戶應該摒棄這種想法因為它就是全部的開發過程。在這里將講述開發過程的所有關鍵問題。用戶可以用任何適合于用戶項目的方法,以任何順序完成下列三個任務,但是在用戶進行調試和測試之前,必須將它們全部完成。(1)創建數據庫。數據庫的設計是在設計階段完成的,現在要真正地實現它并創建各種表和索引。這個過程可以借助于一些數據庫設計的工具,它們可以將設計中產生的圖表直接轉換成創建所有表、索引和事件觸發器的SQL腳本程序,在這個過程中將使用Database畫板。(2)創建應用程序。創建應用程序對象。設置應用程序級的屬性并編寫應用程序腳本,盡管這些在以后都是可以改變的,但最好還是事先想好需求什么。后面將詳細講述有關應用程序對象和Application畫板。(3)創建開發數據庫、基礎類庫、用戶對象和父窗口。創建開發數據庫是為了保存本項目的對象,和開發數據庫同時建立的還有一個子目錄結構,另外,用于版本控制和項目管理的對象檢查標準也應被建立。

圖1 數據庫畫板

圖2 數據表定義窗口
基于前一階段的設計結果,我們討論一下以下問題:有加快開發速度的公共函數和用戶對象嗎?有什么標準窗口嗎?能通過創建父窗口來提高開發速度和增加其標準化程度嗎?現在開發一些只有戰略性的對象可以在后面的開發過程中節省許多時間。
下列步驟也可以按任意順序來做。實際上,把它們看成是一個完整的反復過程可能會更好。因為在創建應用程序的過程中,不可避免地要在Window畫板、Datawindow畫板和其他畫板之間轉來轉去。(1)創建窗口對象。應用程序的窗口把所有Datawindow、控件和用戶對象結合在一起,形成完整的用戶界面。有關如何在Window畫板中創建窗口的所有內容將在后面講述。(2)創建菜單對象。一般在應用程序的主窗口中都有一個下拉菜單,這個菜單是在Menu畫板中創建的。在Menu畫板中,可以定義顯示在菜單中的菜單項和子菜單,以及當菜單項被選中時執行什么代碼。(3)創建Datawindow對象。可以說,任何一個PowerBuilder應用程序的核心都是數據庫和用戶與數據庫的交互,因此數據窗口就是PowerBuilder應用程序開發的重點。它們定義要使用的數據以及用戶怎樣來查看和編輯這些數據,它們能自動實現對這些接口的編碼。(4)編碼。在許多畫板中都可以進行編碼工作,可以在窗口和菜單項中為按鈕保存代碼。大部分代碼用來連接不同的控件以及實現它們之間的聯系,另有一些代碼用于直接訪問和更新數據。后面將詳細講述Powerscript語言以及嵌入式SQL語句。
PowerBuilder中有一個功能強大的集成調試器,可以跟蹤程序執行和驗證變量的值,它與其他環境中使用的調試器差不多。但是,編寫的代碼并不是唯一需要調試的東西,有時還需要跟蹤發送到數據庫的命令以及從數據庫返回的數據。
測試需要在多個不同的層次上進行。必須保證該程序符合規格定義,不出現任何不希望出現的事情。用戶的交互必須是可以預料的,并且即使涉及到太多的記錄時,程序也不應該死掉,這些都應該在測試階段好好把握。

圖4 菜單欄中的菜單項
在我們學習PowerBuilder的開始階段時,一般可以通過簡單的選擇菜單命令完成生成可執行文件的工作,但是事情并不是那么簡單的,隨著應用程序大小和復雜性的增長,就會碰到有關可執行文件大小和EXE中沒有包含的、動態分配對象的問題,用戶就需要在這個階段,利用PowerBuilder動態庫和它的資源文件來解決這些問題來創建高效的、專業化的Windows程序。
要求:展現使用PowerBuilder編程的完整過程。
技術要點:建立應用對象、建立數據庫、窗口對象、菜單對象、編譯成exe和dll文件。
操作步驟:
(1)在e:student下建立工作區newapp.pbw。(2)創建應用對象newapp。(3)創建數據庫,運行PowerBuilder 8.0,在工具欄中單擊Database圖標,進入數據庫畫板,打開ODB ODBC列表項,再打開其下面的Utilities列表項,如圖1所示。(4)創建數據表,右擊數據庫newdata中的Tables項,在彈出菜單中選擇“New Tables…”或單擊工具欄上的新建表按鈕,出現如圖2所示的列定義子窗口。可用Tab鍵在六個輸入框間切換輸入內容:如在Column Name(列名稱)中輸入xh;Data Type(數據類型)中輸入char指定該列的數據類型;在Width(寬度)中輸入9;Dec(小數點位數)不輸入;在Null(該列是否允許為空)中選擇No(主鍵不能為空);Default(默認值)來定義新插入一列時該列的默認值。(5)創建數據窗口對象。單擊工具欄上的New按鈕,然后在彈出的New對話框中選擇DataWindow標簽頁,選擇Grid(網格)顯示風格后,單擊OK按鈕,將會彈出選擇數據源對話框,選中Quick Select數據源,單擊Next按鈕,在Tables列表中單擊newtable,然后單擊Add All按鈕,單擊OK按鈕,彈出Select Color and Border Settings對話框后,單擊Next按鈕,會彈出列出了數據窗口的基本屬性的對話框,點擊Finish按鈕,進入數據窗口畫板。單擊工具欄上的按鈕或選擇菜單File︱Save As,鍵入數據窗口對象名:d_newtable,再單擊OK按鈕存盤。(6)創建窗口對象w_newtable,按如圖3所示添加控件、設置屬性、編碼。(7)創建菜單對象。單擊工具欄中上的圖標,或選擇File/New菜單項,選擇PB Object選項卡,選中圖標后單擊OK按鈕,打開菜單畫板。在菜單欄上插入第一個菜單項(菜單標題)。選擇Insert/Submenu Item菜單項,或單擊鼠標右鍵,在彈出式菜單中選擇Insert Submenu Item菜單項, PowerBuilder顯示一個空的文本輸入框,在文本框內輸入菜單標題:插入,然后按Enter鍵,選中剛輸入的【插入】菜單項,右擊選擇Insert Menu Item At End菜單項,在新的文本編輯框內輸入刪除,按回車鍵。仿此過程再加入菜單項【存盤】、【退出】,這樣菜單欄中所有的菜單項建立完畢如圖4所示。單擊畫板工具欄上的save按鈕,或在系統菜單中選擇File Save選項,彈出Save Menu對話框,輸入菜單文件名m_main,同時在菜單對象窗口的標題欄顯示m_main。
雙擊窗口對象w_newtable,通過在MenuName屬性中輸入m_main菜單名或單擊右邊的Browse的按鈕來選擇需要關聯的菜單。單擊工具欄中的按鈕或按快捷鍵,調試、測試程序。最后將程序編譯成為可執行文件,創建步驟一般如下:準備工作、創建新工程或打開已保存工程、設置編譯選項、生成可執行文件。
[1]張斌,陳越.Powerbuilder應用開發注記[J].計算機系統應用,1997(08).
[2]木尼拉·塔里甫.靈活運用PowerBuilder中事務管理的方法[J].中國科技信息, 2007(06).
[3]盧守東.PowerBuilder應用程序的數據庫連接技術[J].科技情報開發與經濟,2007(27).