powerbuilder10實(shí)用教程AAAA1.ppt_第1頁
powerbuilder10實(shí)用教程AAAA1.ppt_第2頁
powerbuilder10實(shí)用教程AAAA1.ppt_第3頁
powerbuilder10實(shí)用教程AAAA1.ppt_第4頁
powerbuilder10實(shí)用教程AAAA1.ppt_第5頁
已閱讀5頁,還剩326頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、2020年8月28日,第1頁,第1章 PowerBuilder 10.0概述,教學(xué)目標(biāo) 教學(xué)重點(diǎn) 教學(xué)過程,2020年8月28日,第2頁,第2章 PowerBuilder 10.0編程基礎(chǔ),教學(xué)目標(biāo) 教學(xué)重點(diǎn) 教學(xué)過程,2020年8月28日,第3頁,教學(xué)目標(biāo),熟悉和掌握PowerBuilder 10.0的基本語法規(guī)則 對PowerBuilder 10.0有初步的認(rèn)識和了解,并能夠編寫一些簡單的小程序,2020年8月28日,第4頁,教學(xué)重點(diǎn),標(biāo)識符命名規(guī)則 注釋語句 基本控制語句 函數(shù)和結(jié)構(gòu),2020年8月28日,第5頁,教學(xué)過程,語言特點(diǎn) PowerScript基礎(chǔ)語句 控制語句 系統(tǒng)函數(shù) 自

2、定義函數(shù) 函數(shù)的重載和超越 使用外部函數(shù) 結(jié)構(gòu),2020年8月28日,第6頁,2.1 語言特點(diǎn),PowerScript語言的語法和組織結(jié)構(gòu)與傳統(tǒng)的Basic相似,但是它格式更自由,在編寫程序代碼時(shí),編譯器忽略它的空格、縮進(jìn)、空行等。 PowerScript語言不僅支持標(biāo)準(zhǔn)的SQL語句,而且還提供了一套完整的嵌入式SQL語句,大大增強(qiáng)了程序操作和訪問數(shù)據(jù)庫的能力。 PowerScript語言不僅支持常規(guī)的數(shù)據(jù)類型,同時(shí)也支持用于處理多媒體的二進(jìn)制對象數(shù)據(jù)。,2020年8月28日,第7頁,2.2 PowerScript基礎(chǔ)語句,PowerScript語言基礎(chǔ)做簡單介紹,包括標(biāo)識符、保留字、注釋和代

3、詞、數(shù)據(jù)類型、變量和常量、數(shù)組、運(yùn)算符和表達(dá)式等。讀者可以與其他程序語言的相關(guān)知識相對比,以加深對該語言的理解。,2020年8月28日,第8頁,標(biāo)識符,標(biāo)識符是程序中用來代表變量、標(biāo)號、函數(shù)、窗口、菜單、控件及對象等名稱的符號。在PowerBuilder中標(biāo)識符的命名必須遵循以下命名規(guī)則: 必須以字母和下劃線開頭。 保留字不能作為標(biāo)識符。 除了首字母其余字符可以是字母、數(shù)字以及下述特殊符號:下劃線(_)、連字符()、美元符號($)、和百分號(%)。 最大有效字符長度為40,中間不能出現(xiàn)空格或指定字符以外的其他字符。 標(biāo)識符不區(qū)分大小寫,如Part1、PART1、part1是同一個(gè)標(biāo)識符。,20

4、20年8月28日,第9頁,保留字,保留字是PowerBuilder語言中具有特殊用途的一組單詞,不能把保留字作為標(biāo)識符使用,否則PowerBuilder將會(huì)給出編譯錯(cuò)誤。保留字同標(biāo)識符一樣,不區(qū)分大小寫,但在程序中一般把保留字書寫為大寫形式。,2020年8月28日,第10頁,注釋,注釋是在程序中用來說明某些語句的作用的文本,或者是程序開發(fā)者在程序中暫時(shí)屏蔽的代碼段。在程序中,它是不會(huì)被編譯執(zhí)行的。 行注釋用來對單行語句進(jìn)行注釋,它可以是一整行。行注釋以雙斜線“/”開始,其后書寫注釋內(nèi)容。如:num=num1*23 塊注釋既可以注釋單獨(dú)一行,也可以注釋一段或連續(xù)幾段。塊注釋以“/*”開頭,以“*

5、/”結(jié)尾,中間為注釋內(nèi)容。如:num=num1+num2,2020年8月28日,第11頁,代詞,PowerBuilder的代詞用于指代特定的對象或控件。使用代詞可以避免因?qū)ο蠡蚩丶恍薷牡惹闆r而使引用出錯(cuò)。主要有以下三個(gè)代詞: This:在為一個(gè)窗口、自定義用戶對象、菜單、應(yīng)用對象或控件編寫腳本時(shí),This表示正在處理的對象和控件本身。 Super:在編寫繼承的對象或者控件代碼時(shí),有兩種方式可供選擇,一種是直接使用祖先對象的名稱;一種是使用Super,用于調(diào)用祖先對象中的函數(shù),但是不能用于調(diào)用與祖先窗口控件相關(guān)的腳本,只能在祖先的直接后代的函數(shù)和事件中使用Super,否則會(huì)編譯出錯(cuò)。 Par

6、ent:用于窗口中的控件、自定義用戶對象的控件和菜單編寫腳本,指示包含控件的窗口、自定義用戶對象和當(dāng)前菜單的上層菜單項(xiàng)。,2020年8月28日,第12頁,數(shù)據(jù)類型,數(shù)據(jù)類型是編程語言中的一個(gè)重要概念,它表示數(shù)據(jù)的特點(diǎn)。在PowerScript語言中共有4種數(shù)據(jù)類型,它們分別是:標(biāo)準(zhǔn)數(shù)據(jù)類型、Any數(shù)據(jù)類型、系統(tǒng)對象數(shù)據(jù)類型以及枚舉數(shù)據(jù)類型。,2020年8月28日,第13頁,標(biāo)準(zhǔn)數(shù)據(jù)類型,標(biāo)準(zhǔn)數(shù)據(jù)類型包括整型(Integer或Int)、字符型(Character或Char)、字符串型(String)、布爾型(Boolean)、日期型(Date)等,可以用這些數(shù)據(jù)類型聲明變量、常量或數(shù)組中。,20

7、20年8月28日,第14頁,系統(tǒng)對象數(shù)據(jù)類型,系統(tǒng)對象數(shù)據(jù)類型是PowerScript語言中比較特殊的數(shù)據(jù)類型。在PowerBuilder應(yīng)用程序中,所有用戶用到的系統(tǒng)對象,例如窗口、菜單、按鈕、列表框、圖形等,都被認(rèn)為是系統(tǒng)對象數(shù)據(jù)類型。下面的代碼聲明了菜單和窗口變量。,2020年8月28日,第15頁,Any數(shù)據(jù)類型,Any數(shù)據(jù)類型是一種可以變化的數(shù)據(jù)類型,可以用來存儲任何類型的數(shù)據(jù),包括標(biāo)準(zhǔn)數(shù)據(jù)類型、對象、結(jié)構(gòu)或矩陣在內(nèi)的任何指定的數(shù)據(jù)類型。一個(gè)Any數(shù)據(jù)類型的變量類型并不是固定的,它取決于賦值變量的數(shù)據(jù)類型。但是當(dāng)把一個(gè)Any數(shù)據(jù)類型的變量賦值給另一變量時(shí),必須要明確該Any變量的實(shí)際數(shù)

8、據(jù)類型,否則就有可能發(fā)生數(shù)據(jù)類型不匹配的錯(cuò)誤。,2020年8月28日,第16頁,枚舉數(shù)據(jù)類型,枚舉數(shù)據(jù)類型是PowerScript語言中的一種特殊的數(shù)據(jù)類型。開發(fā)人員可以使用兩種方式使用枚舉數(shù)據(jù)類型:作為函數(shù)的參數(shù)和指定一個(gè)對象或控件的屬性。枚舉數(shù)據(jù)類型的變量能夠被賦上固定值,并以感嘆號(!)結(jié)尾。 例如,BackColor是枚舉類型,用來指定該單行編輯框邊框的顏色。它的有效取值為: Yellow!(黃色) 、Green!(綠色)、Black!(黑色)、 Red!(紅色) 。指定一個(gè)單行編輯框的sle_1中所顯示的邊框顏色為“紅色”的代碼如下:sle_1.BackColor = Red!,20

9、20年8月28日,第17頁,變量與常量,變量就是在應(yīng)用程序的使用中可以改變其自身值的數(shù)據(jù)標(biāo)識。在PowerBuilder中,根據(jù)作用范圍變量可以分為全局變量、實(shí)例變量、共享變量和局部變量4種。 全局變量(Global):它是獨(dú)立于應(yīng)用程序中的其他對象,在整個(gè)應(yīng)用程序中都可以訪問到的變量。 實(shí)例變量(Instance):它屬于單獨(dú)的一個(gè)對象,是對象的一個(gè)屬性。 共享變量(Shared):它屬于一個(gè)對象的定義,可以被這個(gè)對象的所有實(shí)例所共享。共享變量在對象關(guān)閉和再次打開的時(shí)候仍然保持它自己的值。 局部變量(Local):它是一個(gè)臨時(shí)變量,存活范圍僅在定義它的腳本程序中。腳本程序運(yùn)行完畢,變量即被銷

10、毀。 與變量不同的是,常量在聲明之后是不會(huì)再改變的,試圖對它進(jìn)行二次賦值,會(huì)引發(fā)編譯錯(cuò)誤。,2020年8月28日,第18頁,數(shù)組,數(shù)組是一系列有相同數(shù)據(jù)類型的有序數(shù)據(jù)的集合。數(shù)組中的所有元素都共用一個(gè)變量名,通過下標(biāo)可以訪問數(shù)組中的每一個(gè)元素。要聲明一個(gè)數(shù)組只要在變量名后加上方括號即可。對于固定數(shù)組,還可以在方括號中指定數(shù)組的維數(shù)。如果聲明數(shù)組時(shí)括號中沒有指定維數(shù),則此數(shù)組是變長數(shù)組,在運(yùn)行時(shí)可以根據(jù)需要調(diào)整數(shù)組的大小。,2020年8月28日,第19頁,運(yùn)算符,PowerScript中,運(yùn)算符就是連接數(shù)據(jù)構(gòu)成表達(dá)式,并完成一定運(yùn)算的符號。有4大類運(yùn)算符:算術(shù)運(yùn)算符、關(guān)系運(yùn)算符、連接運(yùn)算符和邏輯

11、運(yùn)算符。 算術(shù)運(yùn)算符是對數(shù)字?jǐn)?shù)據(jù)進(jìn)行運(yùn)算的。 關(guān)系運(yùn)算符用來比較兩個(gè)或者多個(gè)操作數(shù),比較的結(jié)果為以下3個(gè)值之一:TRUE、FALSE、NULL。關(guān)系運(yùn)算符可以用于所有數(shù)據(jù)類型的比較。 邏輯運(yùn)算符多用于比較判斷語句中用于構(gòu)建結(jié)果為TRUE或FALSE的Boolean表達(dá)式。 連接運(yùn)算符,用于把兩個(gè)或者多個(gè)String型或Blob型的變量連接到一起,形成一個(gè)新的字符串的操作,PowerScript語言用符號“+”表示連接字符串的操作 。,2020年8月28日,第20頁,表達(dá)式,表達(dá)式是由運(yùn)算符和操作數(shù)組成的、符合PowerScript語法規(guī)則的式子。運(yùn)算對象可以是PowerScript語言中的任何

12、數(shù)據(jù)類型。在表達(dá)式中,必須使用與運(yùn)算對象的數(shù)據(jù)類型相兼容的運(yùn)算符,如數(shù)值型數(shù)據(jù)可以使用乘或除作為運(yùn)算符。 具有兩種類型的表達(dá)式,它們分別是數(shù)字類型表達(dá)式和字符(串)類型表達(dá)式。,2020年8月28日,第21頁,2.3 控制語句,條件判斷語句 循環(huán)語句 賦值語句 返回和中止語句,2020年8月28日,第22頁,條件判斷語句,條件判斷語句是根據(jù)判斷條件不同,執(zhí)行不同語句的一組語句。在PowerBuilder中有兩種條件判斷語句: If語句和ChooseCase語句。 If語句是針對程序中某一給定條件進(jìn)行判斷,根據(jù)判斷的結(jié)果執(zhí)行不同操作的一組語句。它主要有兩種結(jié)構(gòu):IfThen結(jié)構(gòu)和IfThenEl

13、se結(jié)構(gòu)。 ChooseCase語句是根據(jù)判斷表達(dá)式的值來選擇不同的Case塊語句執(zhí)行。ChooseCase語句與IfThen語句都屬于條件判斷語句,可以交換使用實(shí)現(xiàn)同樣的功能,但ChooseCase提供了比IfThen語句更多的分支供用戶篩選,增強(qiáng)了程序的可讀性,提高了運(yùn)行效率。,2020年8月28日,第23頁,循環(huán)語句,循環(huán)是重復(fù)執(zhí)行某一動(dòng)作的語言結(jié)構(gòu)。循環(huán)語句根據(jù)設(shè)置的循環(huán)條件來決定執(zhí)行的循環(huán)語句塊。在PowerScript語言中,用于循環(huán)控制的語句有For.Next語句、Do.Loop語句和Goto語句3種形式。 For.Next語句是循環(huán)次數(shù)確定的循環(huán)結(jié)構(gòu),在執(zhí)行循環(huán)的時(shí)候,規(guī)定了循

14、環(huán)執(zhí)行的次數(shù)。 Do.Loop語句是一個(gè)通用的循環(huán)語句。用來控制當(dāng)所給條件滿足時(shí)或直到所給條件滿足時(shí)所要執(zhí)行的代碼段。 Goto語句是一條無條件跳轉(zhuǎn)語句,只要是遇到Goto語句,就強(qiáng)制控制程序直接跳轉(zhuǎn)至Goto語句上相應(yīng)的標(biāo)號語句上。 在DoLoop語句或For.Next語句循環(huán)體中,遇到Continue語句后,將不執(zhí)行Continue語句后循環(huán)結(jié)束前的所有語句,而直接開始執(zhí)行下一輪的循環(huán)。 Exit語句只能用于Do.Loop語句或For.Next語句循環(huán)體中,可以直接終止并跳出當(dāng)前循環(huán)體。,2020年8月28日,第24頁,賦值語句,賦值語句是用來對變量或?qū)ο髮傩灾付ㄖ档恼Z句 。,2020年8

15、月28日,第25頁,返回和中止語句,返回和中止語句 有Return 、Halt語句 兩種。 Return語句用于從腳本中返回調(diào)用程序。 Halt語句用于中止應(yīng)用程序的執(zhí)行 。,2020年8月28日,第26頁,2.4 系統(tǒng)函數(shù),系統(tǒng)函數(shù)是PowerScript的通用函數(shù),它們不屬于任何對象,是PowerBuilder的內(nèi)部函數(shù),在應(yīng)用程序的任何地方都可以直接使用。這些函數(shù)大大簡化了開發(fā)人員的編程工作。其中常用的幾類函數(shù)為:打開關(guān)閉窗口函數(shù)、類型轉(zhuǎn)換類函數(shù)、日期時(shí)間類函數(shù)、字符串操作函數(shù)等。,2020年8月28日,第27頁,2.5 自定義函數(shù),在PowerBuilder中除了有豐富的內(nèi)置函數(shù)供使用

16、外,還可以根據(jù)所實(shí)現(xiàn)的功能定義自己的函數(shù)。在PowerScript中的自定義函數(shù)分為兩種類型:全局函數(shù)和對象級函數(shù)。,2020年8月28日,第28頁,2.6 函數(shù)的調(diào)用,在窗口中,可以手動(dòng)輸入函數(shù)名來調(diào)用函數(shù),也可以通過粘貼操作來調(diào)用用戶的自定義函數(shù)。在菜單欄中選擇“Edit”“Paste Special”“Function”命令,并從“Function”子菜單中選擇內(nèi)部函數(shù)、用戶自定義函數(shù)或外部函數(shù)。選擇使用AutoScript功能并在彈出的列表框中雙擊函數(shù)名,然后在Browser中選擇函數(shù)并將其粘貼至腳本中即可。,2020年8月28日,第29頁,2.7 函數(shù)的重載和超越,繼承對象函數(shù)時(shí)可以

17、選擇重載(overloading)或超越(overriding)函數(shù)定義,都是由函數(shù)名和參數(shù)列表決定函數(shù)是重載還是超越已有的函數(shù)。 函數(shù)的重載,就是相同的函數(shù)名對應(yīng)參數(shù)的幾種不同表現(xiàn)形式,它可以使同一函數(shù)名的函數(shù)體有不同的操作內(nèi)涵,從而達(dá)到程序的多態(tài)性。函數(shù)的重載必須是在同一個(gè)作用域下的。 函數(shù)的超越是指在后代對象中定義了一個(gè)與祖先對象中所包含的函數(shù)完全相同的函數(shù),它們不僅擁有相同的函數(shù)名稱,而且還擁有同樣的參數(shù)列表和返回值。在這種情況下,在后代對象中調(diào)用該函數(shù)時(shí),該后代對象中的函數(shù)的優(yōu)先級永遠(yuǎn)要比其祖先對象中的相同函數(shù)的優(yōu)先級要高。在后代對象中,除非使用全局函數(shù)作用域時(shí)調(diào)用祖先的該函數(shù),否則

18、一直調(diào)用后代的該函數(shù)。,2020年8月28日,第30頁,2.8 使用外部函數(shù),在使用PowerBuilder的編程過程中,用戶除了可以使用系統(tǒng)提供的函數(shù)和用戶自定義函數(shù)之外,還可以使用PowerBuilder平臺之外的函數(shù),即外部函數(shù)。在PowerBuilder 10.0中所支持的外部函數(shù)范圍非常廣泛,它可以是由PowerScript語言之外的任何語言寫出的,支持32位平臺標(biāo)準(zhǔn)調(diào)用序列的函數(shù),比如動(dòng)態(tài)鏈接庫(DLL)中的函數(shù)、Windows API以及其他的工具軟件包中所提供的函數(shù)等。,2020年8月28日,第31頁,2.9 結(jié)構(gòu),結(jié)構(gòu)是一種數(shù)據(jù)類型,是由一個(gè)或多個(gè)相互關(guān)聯(lián)的變量通過共用一個(gè)名

19、稱所組合成的有機(jī)整體。這些相互關(guān)聯(lián)的變量的數(shù)據(jù)類型組織形式靈活多樣,不受任何限制。用戶可以把相互關(guān)聯(lián)的對象通過一個(gè)結(jié)構(gòu)集合起來操作。 PowerScript語言中的結(jié)構(gòu)分為兩種類型:全局結(jié)構(gòu)和對象級結(jié)構(gòu)。全局結(jié)構(gòu)不與任何對象關(guān)聯(lián),并且能夠在整個(gè)應(yīng)用程序中使用。對象級結(jié)構(gòu)必須與具體對象相關(guān)聯(lián)。 定義一個(gè)結(jié)構(gòu)也就定義了一個(gè)新的數(shù)據(jù)類型。只要該結(jié)構(gòu)的定義保存在應(yīng)用庫中,用戶就可以在腳本和用戶自定義函數(shù)中使用該結(jié)構(gòu)。用戶也可以在用戶自定義函數(shù)中,將結(jié)構(gòu)作為參數(shù)再函數(shù)中傳遞。在定義函數(shù)時(shí),將結(jié)構(gòu)定義為函數(shù)的參數(shù)。同樣用戶自定義函數(shù)的返回值也可以是結(jié)構(gòu)。對于外部函數(shù),也可以將結(jié)構(gòu)作為函數(shù)的參數(shù)。,2020

20、年8月28日,第32頁,第3章 數(shù)據(jù)庫管理,教學(xué)目標(biāo) 教學(xué)重點(diǎn) 教學(xué)過程,2020年8月28日,第33頁,教學(xué)目標(biāo),學(xué)習(xí)和掌握數(shù)據(jù)庫管理的基礎(chǔ)知識 能運(yùn)用PowerBuilder 10.0中的工具對數(shù)據(jù)庫進(jìn)行操作 能在程序中連接數(shù)據(jù)庫,2020年8月28日,第34頁,教學(xué)重點(diǎn),建立數(shù)據(jù)源 對數(shù)據(jù)庫進(jìn)行管理 操作數(shù)據(jù)庫,2020年8月28日,第35頁,教學(xué)過程,數(shù)據(jù)源的創(chuàng)建與設(shè)置 數(shù)據(jù)庫面板 數(shù)據(jù)庫管理 連接數(shù)據(jù)庫 操作數(shù)據(jù)表 操作表中的數(shù)據(jù),2020年8月28日,第36頁,3.1 數(shù)據(jù)源,創(chuàng)建ODBC數(shù)據(jù)源 設(shè)置ODBC數(shù)據(jù)源 刪除ODBC數(shù)據(jù)源,2020年8月28日,第37頁,創(chuàng)建ODBC數(shù)

21、據(jù)源,要實(shí)現(xiàn)通過ODBC訪問數(shù)據(jù)庫,就必須首先為數(shù)據(jù)庫建立一個(gè)ODBC數(shù)據(jù)源,這樣數(shù)據(jù)庫才能實(shí)現(xiàn)和應(yīng)用程序的交互。而使用ODBC數(shù)據(jù)源可以訪問來自多種數(shù)據(jù)庫管理系統(tǒng)的數(shù)據(jù),所以必須為系統(tǒng)添加驅(qū)動(dòng)程序的軟件組件。且ODBC數(shù)據(jù)源會(huì)自動(dòng)添加并配置這些驅(qū)動(dòng)程序。,2020年8月28日,第38頁,設(shè)置ODBC數(shù)據(jù)源,在創(chuàng)建ODBC數(shù)據(jù)源后,有時(shí)還需要對創(chuàng)建的數(shù)據(jù)源的配置進(jìn)行修改,以便改變一些參數(shù)。例如設(shè)置登錄名稱和密碼、受損壞的數(shù)據(jù)庫文件、對數(shù)據(jù)庫進(jìn)行壓縮操作、設(shè)置驅(qū)動(dòng)程序的頁超時(shí)、緩沖區(qū)大小等。,2020年8月28日,第39頁,刪除ODBC數(shù)據(jù)源,在“用戶DSN”選項(xiàng)卡中,選擇要?jiǎng)h除的數(shù)據(jù)源后,單擊

22、“刪除”按鈕就會(huì)彈出“ODBC管理器”對話框,在此對話框中單擊“是(Y)”按鈕就可以完成數(shù)據(jù)源的刪除。,2020年8月28日,第40頁,3.2 數(shù)據(jù)庫面板,數(shù)據(jù)庫面板在PowerBuilder 10.0中起到了非常重要的作用,數(shù)據(jù)庫的很多操作都可以通過數(shù)據(jù)庫面板來完成。可以通過選擇“Tools”“Database Painter”命令來調(diào)用數(shù)據(jù)庫面板,如下圖所示。在數(shù)據(jù)庫面板窗體中,包括了很多的視圖,這些視圖的功能如下所示 : Objects視圖。此視圖列出了數(shù)據(jù)庫概要和結(jié)構(gòu)信息,對于活動(dòng)的數(shù)據(jù)庫連接,還列出了同數(shù)據(jù)庫關(guān)聯(lián)的對象,顯示的信息由數(shù)據(jù)庫和用戶權(quán)限決定。 Object Layout視

23、圖。用于顯示表的圖形外觀。 Columns視圖。用于創(chuàng)建或者修改數(shù)據(jù)表的列。 ISQL Session視圖。用于建立、執(zhí)行和解釋SQL語句。 Object Details視圖。用于顯示對象的屬性,有些對象的屬性是只讀的,有些對象的屬性是可修改的。 Results視圖。用網(wǎng)格、表或自由表單形式顯示數(shù)據(jù)。 Activity Log視圖。顯示執(zhí)行動(dòng)作的SQL定義。 Extended Attributes視圖。列出了連接數(shù)據(jù)庫里定義的顯示格式、編輯風(fēng)格以及有效性規(guī)則。,2020年8月28日,第41頁,2020年8月28日,第42頁,3.3 數(shù)據(jù)庫管理,數(shù)據(jù)庫是數(shù)據(jù)表、索引、視圖及數(shù)據(jù)的集合。數(shù)據(jù)庫的管

24、理主要也就是對數(shù)據(jù)表、索引、視圖和數(shù)據(jù)的管理。其中,數(shù)據(jù)庫的創(chuàng)建和刪除可以通過Sybase Central來完成,Sybase Central提供了一個(gè)管理ASA數(shù)據(jù)庫的圖形界面。,2020年8月28日,第43頁,3.4 連接數(shù)據(jù)庫,PowerBuilder在訪問數(shù)據(jù)庫之前,必須首先與要操作的數(shù)據(jù)庫建立連接。利用數(shù)據(jù)庫面板可以很容易地連接數(shù)據(jù)庫,下面以O(shè)DBC接口為例,講解連接步驟。,2020年8月28日,第44頁,啟動(dòng)PowerBuilder,單擊DB Profile圖標(biāo),打開“Database Profiles”對話框。,2020年8月28日,第45頁,在ODB ODBC節(jié)點(diǎn)上單擊鼠標(biāo)右鍵

25、,在彈出的快捷菜單上選擇“New Profile”命令,打開“Database Profile SetupODBC”對話框。選擇“Connection”選項(xiàng)卡,在“Profile Name”文本框中輸入名稱,在“Data Source”下拉列表框中選擇前面設(shè)置的ODBC數(shù)據(jù)源,在“UserID”文本框中輸入用戶名,在“Password”文本框中輸入密碼 。,2020年8月28日,第46頁,2020年8月28日,第47頁,選擇“Preview”選項(xiàng)卡,單擊此選項(xiàng)卡上的“Test Connection”按鈕,測試數(shù)據(jù)庫的連接配置。如果能夠成功地連接數(shù)據(jù)庫,則顯示對話框,提示數(shù)據(jù)庫連接成功 。,20

26、20年8月28日,第48頁,3.5 操作數(shù)據(jù)表,創(chuàng)建表 設(shè)置主鍵 設(shè)置外鍵 設(shè)置索引,2020年8月28日,第49頁,創(chuàng)建表,數(shù)據(jù)表是存放數(shù)據(jù)的主要地方,在數(shù)據(jù)庫中作用很重要。選擇“Objects”“Insert”“Table”命令,激活Columns視圖,在此視圖中輸入相應(yīng)的列內(nèi)容。輸入完成以后 保存,并輸入表名即可。,2020年8月28日,第50頁,設(shè)置主鍵,主鍵的作用是為了惟一標(biāo)識數(shù)據(jù)表中的一個(gè)或多個(gè)列,它不允許為空也不允許重復(fù)。在菜單中選擇“Objects”“Insert”“Primary Key”命令,或者在數(shù)據(jù)表上單擊鼠標(biāo)右鍵,在彈出的快捷菜單中選擇“New”“Primary Ke

27、y”命令,打開“Primary Key”對話框,在 “Primary Key”文本框中輸入“id”,在“Columns”列表框中選中“id”列。設(shè)置完成后單擊工具欄上的保存按鈕保存設(shè)置,完成主鍵的定義。 刪除主鍵的方法是在Objects視圖中選擇要?jiǎng)h除的主鍵,在該主鍵上單擊鼠標(biāo)右鍵,在彈出的快捷菜單中選擇“Drop Primary key”命令,在打開的對話框中選擇“Yes”按鈕,完成對主鍵的刪除。,2020年8月28日,第51頁,設(shè)置外鍵,外鍵的作用是與其他表中的主鍵匹配,對于一個(gè)表來說外鍵可以有多個(gè)。在菜單中選擇“Objects”“Insert”“Foreign Key”命令,打開“For

28、eign Key”對話框,然后在“General”選項(xiàng)卡中選擇要與其他表主鍵關(guān)聯(lián)的列name,然后在“Foreign Key”文本框中輸入外鍵的名稱,選擇“Primary Key”選項(xiàng)卡,在該選項(xiàng)卡中的“Table”下拉列表框中選擇要關(guān)聯(lián)的表admin,然后保存對外鍵的設(shè)置。 刪除外鍵的方法是在Objects視圖中選擇要?jiǎng)h除的外鍵,在該外鍵上單擊鼠標(biāo)右鍵,在彈出的快捷菜單中選擇“Drop Foreign key”命令,在打開的對話框中選擇“Yes”按鈕,完成對外鍵的刪除。,2020年8月28日,第52頁,設(shè)置索引,索引是表的一個(gè)重要概念,在進(jìn)行表的搜索和排序時(shí),索引起著關(guān)鍵性的作用。索引與主鍵

29、不同,索引既可以重復(fù)也可以為空值。選擇要建立索引的表,在菜單中選擇“Objects”“Insert”“Index”命令,打開Index視圖。在 “Index:”文本框中輸入索引的名字,在“Columns”列表框中選擇sex,選中“Unique”復(fù)選框表示該列中的數(shù)據(jù)惟一,而“Ascending”復(fù)選框用于指定數(shù)據(jù)排序的順序,然后保存對索引的設(shè)置。 刪除索引的方法是在Objects視圖中選擇要?jiǎng)h除的索引,在該索引上單擊鼠標(biāo)右鍵,在彈出的快捷菜單中選擇“Drop Index”命令,在打開的對話框中選擇“Yes”按鈕,完成對索引的刪除。,2020年8月28日,第53頁,3.6 操作表中的數(shù)據(jù),在數(shù)據(jù)

30、庫面板中除了創(chuàng)建數(shù)據(jù)表和設(shè)置主鍵、外鍵和索引以外還可以對數(shù)據(jù)表中的數(shù)據(jù)進(jìn)行瀏覽、編輯和刪除。,2020年8月28日,第54頁,第4章 應(yīng)用程序設(shè)計(jì)基礎(chǔ),教學(xué)目標(biāo) 教學(xué)重點(diǎn) 教學(xué)過程,2020年8月28日,第55頁,教學(xué)目標(biāo),了解PowerBuilder中應(yīng)用程序?qū)ο蟮南嚓P(guān)概念 能夠利用應(yīng)用程序模板 以自己定制的形式創(chuàng)建簡單的應(yīng)用程序,2020年8月28日,第56頁,教學(xué)重點(diǎn),應(yīng)用程序?qū)ο?定制應(yīng)用程序 移植現(xiàn)有程序 應(yīng)用程序?qū)ο蟮膶傩院褪录?2020年8月28日,第57頁,教學(xué)過程,應(yīng)用程序?qū)ο蟾攀?創(chuàng)建應(yīng)用程序 設(shè)置應(yīng)用程序?qū)傩?應(yīng)用程序的事件,2020年8月28日,第58頁,4.1 應(yīng)用程

31、序?qū)ο蟾攀?應(yīng)用程序?qū)ο笫菓?yīng)用程序的入口點(diǎn),它定義了一些應(yīng)用程序級的事件、函數(shù)和屬性。每個(gè)PowerBuilder應(yīng)用程序都必須有一個(gè),而且只能有一個(gè)應(yīng)用對象。當(dāng)用戶運(yùn)行應(yīng)用程序時(shí),應(yīng)用程序?qū)ο蟮腛pen事件將被觸發(fā),在這個(gè)事件中可以設(shè)置應(yīng)用的初始狀態(tài),也可以裝入其他對象和連接數(shù)據(jù)庫等,例如可以在這里指定首先顯示的窗口。當(dāng)用戶終止應(yīng)用程序時(shí),應(yīng)用對象的Close時(shí)間被觸發(fā),在這個(gè)事件中可以完成必要的系統(tǒng)清理工作,例如斷開與數(shù)據(jù)庫的連接。 應(yīng)用程序?qū)ο笸翱?、菜單、用戶對象一樣,都存儲在PowerBuilder的PBL應(yīng)用庫中。PowerBuilder應(yīng)用程序可以說是一系列對象的集合。,2020

32、年8月28日,第59頁,4.2 創(chuàng)建應(yīng)用程序,在PowerBuilder中,創(chuàng)建一個(gè)應(yīng)用程序有三種方式:自動(dòng)生成應(yīng)用程序(使用應(yīng)用程序模板)、定制應(yīng)用程序和移植已有應(yīng)用程序。用戶可根據(jù)個(gè)人的需要,選擇不同的創(chuàng)建方式。 自動(dòng)生成應(yīng)用程序這種方法適用于初學(xué)者。用戶只需根據(jù)模板向?qū)У奶崾?,一步一步地操作即可建立一個(gè)應(yīng)用程序。 定制應(yīng)用程序就是通過自己的設(shè)計(jì)來創(chuàng)建出更滿足自己的需求的程序。 移植已有應(yīng)用程序就是將已經(jīng)存在的應(yīng)用程序移植到當(dāng)前的版本中。移植已有應(yīng)用程序很簡單,只需創(chuàng)建新的工作區(qū)和目標(biāo)文件,而庫文件和應(yīng)用程序?qū)ο蠖际褂迷瓉淼?。在移植已有?yīng)用程序的時(shí)候,必須要有原應(yīng)用程序的庫文件,并且該庫文

33、件中包含應(yīng)用程序?qū)ο蟆?2020年8月28日,第60頁,4.3 設(shè)置應(yīng)用程序?qū)傩?設(shè)置默認(rèn)字體 設(shè)置應(yīng)用程序的圖標(biāo) 設(shè)置默認(rèn)全局變量,2020年8月28日,第61頁,設(shè)置默認(rèn)字體,在PowerBuilder中,應(yīng)用程序的4個(gè)字體屬性決定了開發(fā)應(yīng)用程序過程中經(jīng)常使用的4種字體,它們分別為:Text Font、Column Font、Header Font和Label Font。Text Font:決定了窗口中的控件、用戶對象、數(shù)據(jù)窗口中靜態(tài)文本的默認(rèn)字體。 Column Font:指定了數(shù)據(jù)窗口中檢索出的數(shù)據(jù)使用的默認(rèn)字體。 Header Font:定義了列表風(fēng)格和網(wǎng)格風(fēng)格數(shù)據(jù)窗口對象中列標(biāo)題的

34、默認(rèn)字體。 Label Font:確定了自由風(fēng)格數(shù)據(jù)窗口中列標(biāo)簽的默認(rèn)字體。,2020年8月28日,第62頁,在開發(fā)應(yīng)用程序時(shí),根據(jù)需要先設(shè)置好這些字體,可以為以后設(shè)計(jì)其他對象時(shí)免除重復(fù)設(shè)置的操作。下面以Text Font屬性為例介紹字體的設(shè)置方法。 打開一個(gè)需要設(shè)置字體的應(yīng)用程序,在應(yīng)用程序的“Properties”面板中單擊“Additional Properties”按鈕,打開“Application”對話框,選擇“Text Font”選項(xiàng)卡(如果要修改其他的字體,可打開對應(yīng)的選項(xiàng)卡),然后根據(jù)需要進(jìn)行修改。 修改的字體屬性只對修改后生成的應(yīng)用程序有效,而對修改字體前已建立的應(yīng)用程序無效

35、。,2020年8月28日,第63頁,設(shè)置應(yīng)用程序的圖標(biāo),應(yīng)用程序圖標(biāo)是在窗體最小化時(shí)或在創(chuàng)建應(yīng)用程序快捷方式時(shí)所顯示的圖標(biāo),它的格式一般為“*.ico”??梢栽趹?yīng)用程序的“Properties”對話框中單擊“Additional Properties”按鈕,打開“Application”對話框,然后“Icon”選項(xiàng)卡中進(jìn)行設(shè)置。,2020年8月28日,第64頁,設(shè)置默認(rèn)全局變量,PowerBuilder 10.0中提供了5個(gè)內(nèi)置的全局變量,分別為:“SQLCA”、“SQLDA”、“SQLSA”、“Error”、“Message”,它們都有默認(rèn)的類型。修改這些變量類型可以更方便應(yīng)用程序的開發(fā),例

36、如使其直接提供中文的提示信息。 要修改這些全局變量可以在應(yīng)用程序的“Properties”對話框中單擊“Additional Properties”按鈕,打開“Application”對話框。選擇“Variable Types”選項(xiàng)卡,在相應(yīng)的文本框中輸入新的類型即可。 SQLCA:事務(wù)處理類型,用于和數(shù)據(jù)庫通信。 SQLDA:在動(dòng)態(tài)SQL中使用。 SQLSA:在動(dòng)態(tài)SQL中使用。 Error:在運(yùn)行期間報(bào)告錯(cuò)誤。 Message:處理非PowerBuilder定義的消息,并且在窗口之間傳遞參數(shù)。,2020年8月28日,第65頁,4.4 應(yīng)用程序的事件,Open事件 Close事件 Idle事

37、件 SystemError事件 ConnectionBegin事件 ConnectionEnd事件,2020年8月28日,第66頁,Open事件,應(yīng)用程序一啟動(dòng)就會(huì)觸發(fā)Open事件,且只觸發(fā)一次。如果沒有為該事件添加代碼,應(yīng)用程序就不能夠調(diào)用應(yīng)用程序中的對象。否則系統(tǒng)會(huì)彈出警告對話框,提示必須對應(yīng)用程序編寫Open事件代碼。在PowerBuilder應(yīng)用程序中,Open事件應(yīng)該完成以下工作: 初始化應(yīng)用程序。 利用INI文件設(shè)置某些屬性,并初始化一個(gè)事務(wù)對象。 連接要訪問的數(shù)據(jù)庫。 查詢環(huán)境,保證運(yùn)行應(yīng)用程序所需要的資源都可用。 打開應(yīng)用程序主窗口進(jìn)行事務(wù)處理。,2020年8月28日,第67頁

38、,Close事件,在PowerBuilder應(yīng)用程序結(jié)束時(shí),會(huì)觸發(fā)Close事件,它也只觸發(fā)一次。通常這個(gè)事件要完成以下工作: 釋放應(yīng)用程序中的對象。 向INI文件中存入信息,以便下次運(yùn)行時(shí)恢復(fù)狀態(tài)。 關(guān)閉應(yīng)用程序中尚未關(guān)閉的文件。 斷開與數(shù)據(jù)庫的連接。,2020年8月28日,第68頁,Idle事件,在應(yīng)用程序長時(shí)間沒有進(jìn)行操作,并且超過應(yīng)用程序指定的時(shí)間間隔時(shí)會(huì)觸發(fā)Idle事件。如果編寫了Idle事件的代碼,系統(tǒng)會(huì)在Idle事件觸發(fā)后執(zhí)行這些代碼,例如在應(yīng)用程序空閑一段時(shí)間沒有操作時(shí),讓應(yīng)用程序自動(dòng)保存或觸發(fā)系統(tǒng)的屏幕保護(hù)程序等。Idle事件的用途有以下幾個(gè): 創(chuàng)建自己獨(dú)具特色的屏幕保護(hù)程序

39、。 隱藏機(jī)密數(shù)據(jù)并強(qiáng)制用戶在長時(shí)間未操作應(yīng)用程序時(shí)重新輸入密碼。 了解用戶是否長時(shí)間未操作應(yīng)用程序。,2020年8月28日,第69頁,SystemError事件,在應(yīng)用程序操作過程中出現(xiàn)嚴(yán)重錯(cuò)誤時(shí)會(huì)觸發(fā)SystemError事件,可以在此處編寫錯(cuò)誤處理和可能的恢復(fù)代碼。如果用戶沒有編寫錯(cuò)誤處理程序,那么PowerBuilder將彈出標(biāo)有錯(cuò)誤代碼和錯(cuò)誤信息的對話框。,2020年8月28日,第70頁,ConnectionBegin事件,ConnectionBegin事件用于分布式PowerBuilder應(yīng)用的服務(wù)器端。當(dāng)客戶程序試圖連接到服務(wù)器程序時(shí),將觸發(fā)ConnectionBegin事件。,2

40、020年8月28日,第71頁,ConnectionEnd事件,ConnectionEnd事件特用于分布式PowerBuilder應(yīng)用的服務(wù)器端。當(dāng)客戶程序試圖斷開與服務(wù)器程序的連接時(shí),將會(huì)觸發(fā)ConnectionEnd事件。,2020年8月28日,第72頁,第5章 窗體編程,教學(xué)目標(biāo) 教學(xué)重點(diǎn) 教學(xué)過程,2020年8月28日,第73頁,教學(xué)目標(biāo),了解創(chuàng)建窗體的基本步驟 了解如何添加窗體控件 了解窗體屬性的設(shè)置 窗體的控件調(diào)整按鈕的使用,2020年8月28日,第74頁,教學(xué)重點(diǎn),窗體的屬性設(shè)置 窗體的方法和事件,2020年8月28日,第75頁,教學(xué)過程,創(chuàng)建窗體 設(shè)置窗體屬性 窗體方法 窗口事件

41、,2020年8月28日,第76頁,5.1 創(chuàng)建窗體,主窗體 子窗體 彈出式窗體 應(yīng)答窗體 多文檔窗體 多文檔微幫助窗體,2020年8月28日,第77頁,主窗體,主窗體一般還可以稱為父窗體,獨(dú)立于其它任何窗體,通常作為一個(gè)應(yīng)用程序的啟動(dòng)界面,可以有菜單、工具欄、最大化、最小化按鈕等。 首先創(chuàng)建一個(gè)Workspace,然后再創(chuàng)建一個(gè)Application,在工具欄上單擊 新建按鈕,打開New對話框,選擇PB Object選項(xiàng)卡,單擊Window選中圖標(biāo),然后單擊OK按鈕,在Properties窗口中,可以設(shè)置窗體類型,最后保存即可。,2020年8月28日,第78頁,子窗體,子窗體是從屬于主窗體或一

42、個(gè)彈出式窗體的窗體,它是依賴與其祖先窗口而存在的,會(huì)跟隨其祖先窗口移動(dòng),子窗體有以下特點(diǎn): 必須擁有一個(gè)主窗體。 可以有標(biāo)題欄。 不能有菜單欄。 不能超出父窗體的范圍。 子窗體的創(chuàng)建同主窗體創(chuàng)建方法一樣,只是將Properties窗口中WindowType下拉列表框的窗體類型設(shè)置為Child!選項(xiàng)即可。為前邊創(chuàng)建的myform主窗體創(chuàng)建一個(gè)子窗體,命名為chform,并設(shè)置子窗體的TitleBar屬性為真,BackColor屬性為Sky,運(yùn)行主窗體,并打開子窗體。,2020年8月28日,第79頁,彈出式窗體,彈出式窗體與主窗體不同,它是通過其他窗體打開的。彈出式窗體在打開后,焦點(diǎn)自動(dòng)指向彈出窗

43、體并在彈出窗口上執(zhí)行相應(yīng)的操作;只有將彈出窗口關(guān)閉后,其祖先窗口才可能重新獲得焦點(diǎn)。彈出式窗體具有以下特點(diǎn): 附屬于其它窗體。 顯示在父窗體的上面。 當(dāng)父窗體最小化或關(guān)閉時(shí),彈出窗體也會(huì)隨之最小化或關(guān)閉。 可以同時(shí)對父窗體和彈出式窗體進(jìn)行操作。 創(chuàng)建彈出式窗體和創(chuàng)建主窗體方法相同,只需要將Properties屬性窗口中的WindowType屬性設(shè)置為Popup!選項(xiàng)。,2020年8月28日,第80頁,應(yīng)答式窗體,應(yīng)答式窗體主要用來提示用戶輸入信息,不能對其進(jìn)行最大化、最小化或改變窗體大小的操作。當(dāng)用戶打開一個(gè)應(yīng)答窗體后就不能在對其他窗體進(jìn)行操作,只有在關(guān)閉應(yīng)答窗體后才能繼續(xù)對其他窗體進(jìn)行操作。

44、 創(chuàng)建應(yīng)答窗體和創(chuàng)建主窗體方法相同,只需要將Properties窗口中的WindowType類型選擇設(shè)置為Response!選項(xiàng)即可。創(chuàng)建一個(gè)應(yīng)答式窗體,命名為rsform,運(yùn)行主窗體,并打開應(yīng)答式窗體。,2020年8月28日,第81頁,多文檔窗體,多文檔窗體可以在一個(gè)主窗體中可以打開多個(gè)子文檔窗體,例如word程序。多文檔窗體創(chuàng)建方法和主窗體相同,只需要將Properties窗口中的WindowType下拉列表框選擇Mdi!選項(xiàng)即可。 創(chuàng)建多文檔窗體時(shí),必須要為它指定一個(gè)菜單,否則系統(tǒng)會(huì)彈出一個(gè)錯(cuò)誤提示框。,2020年8月28日,第82頁,多文檔微幫助窗體,多文檔微幫助窗體和多文檔窗體非常相

45、似,創(chuàng)建方法同樣是將“Properties”窗口中的“WindowType”下拉列表框選擇“Mdihelp!”選項(xiàng)即可。關(guān)于多文檔微幫助窗體的創(chuàng)建可以參照多文檔窗體的創(chuàng)建方法。,2020年8月28日,第83頁,5.2 設(shè)置窗體屬性,設(shè)置普通屬性 設(shè)置滾動(dòng)條 設(shè)置工具欄屬性 設(shè)置其他屬性,2020年8月28日,第84頁,設(shè)置普通屬性,窗體的普通屬性是在Properties屬性窗口中的General選項(xiàng)卡進(jìn)行設(shè)置的,包括Title、Tag、MenuName、WindowType、BackColor等。,2020年8月28日,第85頁,設(shè)置滾動(dòng)條,在Properties窗口中的Scroll選項(xiàng)卡中,

46、可以設(shè)置窗體的滾動(dòng)條屬性。Scroll選項(xiàng)卡中滾動(dòng)條的常用屬性選項(xiàng)含義如下: HscrollBar設(shè)置窗口對象中是否顯示水平滾動(dòng)條。屬性值為True時(shí)顯示水平滾動(dòng)條,否則為False時(shí)不顯示。 VscrollBar設(shè)置窗口對象中是否顯示垂直滾動(dòng)條。屬性值為True時(shí)顯示垂直滾動(dòng)條,否則為False時(shí)不顯示。 UnitsPerLine設(shè)置垂直滾動(dòng)條的垂直滾動(dòng)的單位,屬性的缺省值為0。 UnitPerColumn設(shè)置水平滾動(dòng)條的水平滾動(dòng)的單位。屬性的缺省值為0。 ColumnsPerPage設(shè)置窗體中每頁可以顯示多少列。缺省值為0。 LinesPerPage設(shè)置窗體中每頁可以顯示多少行。缺省值為0

47、 。,2020年8月28日,第86頁,設(shè)置工具欄屬性,在Properties窗口中的Toolbar選項(xiàng)卡中可以設(shè)置窗體上工具欄的屬性包括是否可見、工具欄的高度和寬度等。Toolbar選項(xiàng)卡中的各屬性設(shè)置項(xiàng)含義如下所示: ToolbarVisible設(shè)置窗口中的工具條是否顯示出來。屬性值為True時(shí)顯示,否則為False時(shí)不顯示。 ToolbarAlignment設(shè)置工具條在一個(gè)MDI窗口中的顯示位置。 ToolbarX設(shè)置當(dāng)工具條以窗口方式浮動(dòng)顯示時(shí)工具條窗口左上角距MDI窗口左邊界的距離。用于MDI窗口。 ToolbarY設(shè)置當(dāng)工具條以窗口方式浮動(dòng)顯示時(shí)工具條窗口左上角距MDI窗口上邊界的距

48、離。用于MDI窗口。 ToolbarWidth設(shè)置當(dāng)工具條以窗口方式浮動(dòng)顯示時(shí)工具條窗口的寬度。用于MDI窗口。 ToolbarHeight設(shè)置當(dāng)工具條以窗口方式浮動(dòng)顯示時(shí)工具條窗口的高度。用于MDI窗口。,2020年8月28日,第87頁,設(shè)置其他屬性,在Properties窗口中的Other選項(xiàng)卡中可以設(shè)置窗口的一些其他屬性,包括窗體的高度、寬度、窗體的坐標(biāo)等。,2020年8月28日,第88頁,5.3 窗體方法,窗體對象除了有屬性外,還有方法,熟練的使用它們可以使應(yīng)用程序?qū)崿F(xiàn)個(gè)中功能以滿足需要。下面是幾個(gè)常用的方法(由于方法眾多,因此僅列舉幾個(gè)): ArrangeSheets:此方法用于排列

49、MDI框架中的表單或圖標(biāo)。返回?cái)?shù)據(jù)類型為整型。返回值為1成功,否則,返回值為-1失敗。 ChangeMenu:用于更換與窗口相關(guān)聯(lián)的菜單。其中,參數(shù)position只適用于MDI框架類型的窗口。 ClassName:用于取窗口對象的類名。返回?cái)?shù)據(jù)類型為字符串。返回值為窗口對象的類名說明操作成功;否則,將返回空串 。 Hide:返回?cái)?shù)據(jù)類型為整型.,用于隱藏窗口。如果返回值為1操作成功,否則,返回值為-1 。 Move :返回?cái)?shù)據(jù)類型為整型。用于移動(dòng)窗口。如果返回值為1,操作成功,否則,返回值為-1;參數(shù)是NULL,則返回NULL。,2020年8月28日,第89頁,5.4 窗口事件,PowerB

50、uilder程序才用事件驅(qū)動(dòng)工作方式,程序的運(yùn)行沒有固定的流程,程序中的代碼也是為各種可能發(fā)生的事件編寫的,當(dāng)程序開始運(yùn)行之后,它就可以接受來自系統(tǒng),用戶或者其它應(yīng)用程序觸發(fā)的事件,然后執(zhí)行相應(yīng)的事件代碼。PowerBuilder 10.0中為窗體定義了很多事件,包括Open、MouseDown、Show等,當(dāng)觸發(fā)窗體的這些事件時(shí)使得應(yīng)用程序執(zhí)行相應(yīng)的程序代碼,從而實(shí)現(xiàn)應(yīng)用程序的各種功能。下面列出了接幾個(gè)常用事件。,2020年8月28日,第90頁,Activate:當(dāng)窗口被激活前,觸發(fā)該事件。 Clicked:當(dāng)鼠標(biāo)單擊窗口時(shí)觸發(fā)該事件。 Close:當(dāng)窗口關(guān)閉時(shí)觸發(fā)該事件。 CloseQue

51、ry:當(dāng)窗口將要關(guān)閉時(shí)觸發(fā)該事件,用于判斷是否關(guān)閉該窗口。 DoubleClicked:當(dāng)用戶雙擊窗口未被占用的區(qū)域時(shí)觸發(fā)該事件。 DragDrop:當(dāng)一個(gè)可拖拽控制對象被放到窗口上時(shí)觸發(fā)該事件。 Open:在腳本執(zhí)行了打開窗口函數(shù),但窗口還沒有顯示之前時(shí)觸發(fā)該事件。 Help:當(dāng)用戶按F1鍵時(shí),或從標(biāo)題欄拖拽幫助按鈕到菜單命令或控件時(shí)觸發(fā)該事件。 Timer:在調(diào)用Timer()函數(shù)啟動(dòng)定時(shí)器,設(shè)定的時(shí)間已經(jīng)過去時(shí)觸發(fā)該事件。,2020年8月28日,第91頁,第6章 控件的使用,教學(xué)目標(biāo) 教學(xué)重點(diǎn) 教學(xué)過程,2020年8月28日,第92頁,教學(xué)目標(biāo),了解控件的基礎(chǔ)知識 熟悉這些常用控件的使用

52、方法和屬性 熟練地使用常用的控件,2020年8月28日,第93頁,教學(xué)重點(diǎn),常用控件的使用方法 控件的屬性,2020年8月28日,第94頁,教學(xué)過程,控件概述 按鈕控件 文本框控件 列表控件 進(jìn)度條控件、滾動(dòng)條控件和軌跡條控件 圖形類控件 其他控件,2020年8月28日,第95頁,6.1 控件概述,PowerBuilder提供了豐富的標(biāo)準(zhǔn)控件,利用這些控件,開發(fā)人員可以實(shí)現(xiàn)對窗口的設(shè)計(jì)和變成,還可以完成應(yīng)用程序開發(fā)的大多數(shù)功能。PowerBuilder為插入的控件自動(dòng)命名,開發(fā)人員可以修改這些控件,以方便應(yīng)用程序的開發(fā)。另外,還可以進(jìn)行控件布局、以及定義控件的快捷鍵等。,2020年8月28日,

53、第96頁,插入控件,要向一個(gè)窗口插入控件時(shí),可以選擇“Insert”“Control”“ControlName”命令,或者在控件下拉列表框中選擇對應(yīng)的控件,如圖所示。然后在窗口中要插入控件的位置單擊即可完成控件的插入操作。當(dāng)插入控件后,可以調(diào)整它的大小、位置,定義外觀和行為,添加腳本代碼等。,2020年8月28日,第97頁,控件布局,當(dāng)插入控件后,就可以在布局工具中對控件進(jìn)行排列和對齊操作,PowerBuilder提供了一個(gè)網(wǎng)格(grid)用于對齊控件。對齊控件的方法為: 選擇要對齊的控件,然后按住“Ctrl”鍵,并單擊需要同第一個(gè)對齊的控件。 然后在菜單欄中選擇“Format”|“Align

54、”菜單項(xiàng)中的命令,或者在工具欄的布局下拉列表框中選擇對應(yīng)的對齊方式 。,2020年8月28日,第98頁,定義控件的快捷鍵,可以為控件定義快捷鍵,使用戶可以按下“Alt+快捷鍵”來快速定位一個(gè)控件。如何定義快捷鍵依賴于控件類型是否具有顯示文本,如果沒有顯示文本,必須在控件本身中定義快捷鍵。下面介紹其中幾個(gè)控件的定義快捷鍵方法。 為命令按鈕、復(fù)選框和單選按鈕定義快捷鍵的步驟為:先單擊控件,然后在其屬性視圖“General”選項(xiàng)卡中的“Text”文本框中,在字符前面加入“&”符號即可定義快捷鍵。,2020年8月28日,第99頁,6.2 按鈕控件,按鈕控件分為兩類,一類是命令按鈕控件,另一類是圖形按鈕

55、控件。 命令按鈕控件(CommandButton)用于創(chuàng)建一個(gè)按鈕,并執(zhí)行相應(yīng)的操作。例如關(guān)閉窗口時(shí)提示是否關(guān)閉該窗口。 圖形按鈕控件用于接受用戶的操作命令。它可以在該按鈕上顯示圖像,圖像的格式可以為BMP、GIF、JPG和JPEG等。 對于按鈕控件來說Clicked事件是非常重要的一個(gè)事件,此事件在單擊按鈕時(shí)被觸發(fā) 。,2020年8月28日,第100頁,6.3 文本框控件,文本框控件用于輸入或者顯示文本信息。靈活運(yùn)用這些控件可以增強(qiáng)程序界面的交互性。 靜態(tài)文本框控件只用于顯示文本信息,不允許輸入和修改文本信息,但是可以在設(shè)計(jì)時(shí)或者在腳本代碼中更改要顯示的信息。一般用于顯示一些操作提示或者反饋

56、信息。 單行文本框控件用于輸入、編輯文本信息,它用于顯示較少的數(shù)據(jù)。在文本框中會(huì)有一個(gè)光標(biāo)指示控件的焦點(diǎn) 。 多行文本框控件允許輸入、顯示多行的文本信息,用于輸入比較多的文本數(shù)據(jù)。 文本框掩碼控件是用來創(chuàng)建掩碼的,輸入和編輯必須與指定的掩碼格式一致。它能夠完成輸入的自動(dòng)格式化,因此通常用于帶格式的輸入,例如日期等。 RichText文本框控件的功能比多行文本框更強(qiáng)大,用于顯示帶格式的多文本編輯框。它提供了字體控制、顏色控制、查找、替換、打印預(yù)覽、打印控制等功能。,2020年8月28日,第101頁,6.4 列表控件,列表控件的數(shù)據(jù)可以直接從列表中選取,不需要用戶手動(dòng)輸入。對于一些不需要用戶輸入的

57、或固定的數(shù)據(jù)可以選擇列表控件。 單選按鈕控件時(shí),是在多個(gè)可選項(xiàng)中選擇一個(gè),不可以多選,是用于表示“是”或“否”之類的兩種狀態(tài)的控件。例如人的性別“男”或“女”只可以選其中的一個(gè)。 復(fù)選框控件特點(diǎn)在于,復(fù)選框控件可以一次性地選擇很多信息,例如小說分類可以選擇“玄幻”、“武俠”、“網(wǎng)游”等。 列表框控件用于以列表的形式顯示數(shù)據(jù),它可以自動(dòng)顯示垂直滾動(dòng)條和水平滾動(dòng)條。 下拉列表框控件和列表框控件的作用基本相同,不過在下拉列表框控件的右邊有一個(gè)向下的箭頭 。,2020年8月28日,第102頁,6.5 進(jìn)度條控件、滾動(dòng)條控件和軌跡條控件,進(jìn)度條控件、滾動(dòng)條控件和軌跡條控件的作用都是對位置進(jìn)行指示??梢允?/p>

58、用進(jìn)度條表示花費(fèi)時(shí)間較長的操作的執(zhí)行過程,例如復(fù)制文件時(shí)的進(jìn)度。滾動(dòng)條可以調(diào)整窗口顯示的位置。軌跡條可以對離散值進(jìn)行選擇操作。 進(jìn)度條控件包括兩種:水平進(jìn)度條和垂直進(jìn)度條。兩種進(jìn)度條的使用方式基本相同,主要屬性也相同。 滾動(dòng)條控件是常見的控件之一,同進(jìn)度條控件一樣也有兩種:水平滾動(dòng)條和垂直滾動(dòng)條。在窗口中寬度或高度不夠的時(shí)候就可以顯示水平滾動(dòng)條和垂直滾動(dòng)條。 軌跡條控件主要用于微調(diào)指示數(shù)據(jù),例如調(diào)節(jié)音樂的音量。軌跡條控件也分兩類:水平軌跡條和垂直軌跡條。,2020年8月28日,第103頁,6.6 圖形類控件,圖形類控件通常用于增強(qiáng)界面的顯示效果,例如使用直線將窗口中的控件分隔或者用矩形控件為窗

59、口劃分區(qū)域等。圖形類控件也可以當(dāng)作其他控件使用,例如對矩形控件編寫Clicked事件代碼后,這個(gè)矩形控件就具有了命令按鈕的功能了。 直線控件在窗體的主要作用是對窗體中不同的控件進(jìn)行分隔。 橢圓控件在窗口中可以起到裝飾頁面的作用。 矩形控件用來畫一個(gè)矩形,以分割界面或增強(qiáng)界面效果。 用來畫一個(gè)帶有圓角的矩形,可以設(shè)置圓角矩形的線型、顏色、長、寬等。,2020年8月28日,第104頁,6.7 其他控件,除了上邊所介紹的控件類型的控件外,還有其他幾類控件,如Tab控件 、圖形超鏈接控件 、靜態(tài)超鏈接控件等。 Tab控件的作用就是將其他控件分成幾個(gè)部分分別顯示,它也就是平時(shí)常用的選項(xiàng)卡控件。使用Tab控件可以在一個(gè)窗體里使用很多控件而互相不干擾 。 圖形超鏈接控件擁有圖形框的特性,并提供了訪問Internet頁面的超鏈接。 靜態(tài)超鏈接控件也提供了訪問Internet頁面的超鏈接。,2020年8月28日,第105頁,第7章 菜單,教學(xué)目標(biāo) 教學(xué)重點(diǎn) 教學(xué)過程,2020年8月28日,第106頁,教學(xué)目標(biāo),了解菜單的概念 能創(chuàng)建和靈活使用菜單、窗口控件搭建出美觀使用的應(yīng)用程序界面,2020年8月28日,第107頁,教學(xué)重點(diǎn),菜單的分類 菜單的屬性設(shè)置 菜單對象的函數(shù) 菜單的繼承,2020年8月28日,第108頁,教學(xué)過程,菜單概述 菜單的分類 創(chuàng)建菜單

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論