版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第1章PowerBuilder10.0概述教學(xué)目標(biāo)教學(xué)重點(diǎn)教學(xué)過程10/10/20231第1頁第2章PowerBuilder10.0編程基礎(chǔ)教學(xué)目標(biāo)教學(xué)重點(diǎn)教學(xué)過程10/10/20232第2頁教學(xué)目標(biāo)熟悉和掌握PowerBuilder10.0基本語法規(guī)則對(duì)PowerBuilder10.0有初步結(jié)識(shí)和理解,并能夠編寫某些簡單小程序10/10/20233第3頁教學(xué)重點(diǎn)標(biāo)識(shí)符命名規(guī)則注釋語句基本控制語句函數(shù)和構(gòu)造10/10/20234第4頁教學(xué)過程語言特點(diǎn)PowerScript基礎(chǔ)語句控制語句系統(tǒng)函數(shù)自定義函數(shù)函數(shù)重載和超越使用外部函數(shù)構(gòu)造10/10/20235第5頁2.1語言特點(diǎn)PowerScript語言語法和組織構(gòu)造與傳統(tǒng)Basic相同,不過它格式更自由,在編寫程序代碼時(shí),編譯器忽視它空格、縮進(jìn)、空行等。PowerScript語言不但支持標(biāo)準(zhǔn)SQL語句,并且還提供了一套完整嵌入式SQL語句,大大增強(qiáng)了程序操作和訪問數(shù)據(jù)庫能力。PowerScript語言不但支持常規(guī)數(shù)據(jù)類型,同步也支持用于處理多媒體二進(jìn)制對(duì)象數(shù)據(jù)。10/10/20236第6頁2.2PowerScript基礎(chǔ)語句PowerScript語言基礎(chǔ)做簡單介紹,包括標(biāo)識(shí)符、保存字、注釋和代詞、數(shù)據(jù)類型、變量和常量、數(shù)組、運(yùn)算符和體現(xiàn)式等。讀者能夠與其他程序語言有關(guān)知識(shí)相對(duì)比,以加深對(duì)該語言理解。10/10/20237第7頁標(biāo)識(shí)符標(biāo)識(shí)符是程序中用來代表變量、標(biāo)號(hào)、函數(shù)、窗口、菜單、控件及對(duì)象等名稱符號(hào)。在PowerBuilder中標(biāo)識(shí)符命名必須遵循下列命名規(guī)則:必須以字母和下劃線開頭。保存字不能作為標(biāo)識(shí)符。除了首字母其他字符能夠是字母、數(shù)字以及下述特殊符號(hào):下劃線(_)、連字符(.)、美元符號(hào)($)、和百分號(hào)(%)。最大有效字符長度為40,中間不能出現(xiàn)空格或指定字符以外其他字符。標(biāo)識(shí)符不辨別大小寫,如Part1、PART1、part1是同一種標(biāo)識(shí)符。10/10/20238第8頁保存字保存字是PowerBuilder語言中具有特殊用途一組單詞,不能把保存字作為標(biāo)識(shí)符使用,不然PowerBuilder將會(huì)給出編譯錯(cuò)誤。保存字同標(biāo)識(shí)符同樣,不辨別大小寫,但在程序中一般把保存字書寫為大寫形式。10/10/20239第9頁注釋注釋是在程序中用來說明某些語句作用文本,或者是程序開發(fā)者在程序中臨時(shí)屏蔽代碼段。在程序中,它是不會(huì)被編譯執(zhí)行。行注釋用來對(duì)單行語句進(jìn)行注釋,它能夠是一整行。行注釋以雙斜線“//”開始,其后書寫注釋內(nèi)容。如:num=num1*23塊注釋既能夠注釋單獨(dú)一行,也能夠注釋一段或連續(xù)幾段。塊注釋以“/*”開頭,以“*/”結(jié)尾,中間為注釋內(nèi)容。如:num=num1+num210/10/202310第10頁代詞PowerBuilder代詞用于指代特定對(duì)象或控件。使用代詞能夠避免因?qū)ο蠡蚩丶恍薷牡惹闆r而使引用犯錯(cuò)。主要有下列三個(gè)代詞:This:在為一種窗口、自定義顧客對(duì)象、菜單、應(yīng)用對(duì)象或控件編寫腳本時(shí),This表達(dá)正在處理對(duì)象和控件本身。Super:在編寫繼承對(duì)象或者控件代碼時(shí),有兩種方式可供選擇,一種是直接使用祖先對(duì)象名稱;一種是使用Super,用于調(diào)用祖先對(duì)象中函數(shù),不過不能用于調(diào)用與祖先窗口控件有關(guān)腳本,只能在祖先直接后裔函數(shù)和事件中使用Super,不然會(huì)編譯犯錯(cuò)。Parent:用于窗口中控件、自定義顧客對(duì)象控件和菜單編寫腳本,批示包括控件窗口、自定義顧客對(duì)象和目前菜單上層菜單項(xiàng)。10/10/202311第11頁數(shù)據(jù)類型數(shù)據(jù)類型是編程語言中一種主要概念,它表達(dá)數(shù)據(jù)特點(diǎn)。在PowerScript語言中共有4種數(shù)據(jù)類型,它們分別是:標(biāo)準(zhǔn)數(shù)據(jù)類型、Any數(shù)據(jù)類型、系統(tǒng)對(duì)象數(shù)據(jù)類型以及枚舉數(shù)據(jù)類型。10/10/202312第12頁標(biāo)準(zhǔn)數(shù)據(jù)類型標(biāo)準(zhǔn)數(shù)據(jù)類型包括整型(Integer或Int)、字符型(Character或Char)、字符串型(String)、布爾型(Boolean)、日期型(Date)等,能夠用這些數(shù)據(jù)類型申明變量、常量或數(shù)組中。10/10/202313第13頁系統(tǒng)對(duì)象數(shù)據(jù)類型系統(tǒng)對(duì)象數(shù)據(jù)類型是PowerScript語言中比較特殊數(shù)據(jù)類型。在PowerBuilder應(yīng)用程序中,所有顧客用到系統(tǒng)對(duì)象,例如窗口、菜單、按鈕、列表框、圖形等,都被以為是系統(tǒng)對(duì)象數(shù)據(jù)類型。下面代碼申明了菜單和窗口變量。10/10/202314第14頁Any數(shù)據(jù)類型Any數(shù)據(jù)類型是一種能夠變化數(shù)據(jù)類型,能夠用來存放任何類型數(shù)據(jù),包括標(biāo)準(zhǔn)數(shù)據(jù)類型、對(duì)象、構(gòu)造或矩陣在內(nèi)任何指定數(shù)據(jù)類型。一種Any數(shù)據(jù)類型變量類型并不是固定,它取決于賦值變量數(shù)據(jù)類型。不過當(dāng)把一種Any數(shù)據(jù)類型變量賦值給另一變量時(shí),必須要明確該Any變量實(shí)際數(shù)據(jù)類型,不然就有也許發(fā)生數(shù)據(jù)類型不匹配錯(cuò)誤。10/10/202315第15頁枚舉數(shù)據(jù)類型枚舉數(shù)據(jù)類型是PowerScript語言中一種特殊數(shù)據(jù)類型。開發(fā)人員能夠使用兩種方式使用枚舉數(shù)據(jù)類型:作為函數(shù)參數(shù)和指定一種對(duì)象或控件屬性。枚舉數(shù)據(jù)類型變量能夠被賦上固定值,并以感慨號(hào)(!)結(jié)尾。例如,BackColor是枚舉類型,用來指定該單行編輯框邊框顏色。它有效取值為:Yellow!(黃色)、Green!(綠色)、Black!(黑色)、Red!(紅色)。指定一種單行編輯框sle_1中所顯示邊框顏色為“紅色”代碼如下:sle_1.BackColor=Red!10/10/202316第16頁變量與常量變量就是在應(yīng)用程序使用中能夠變化其本身值數(shù)據(jù)標(biāo)識(shí)。在PowerBuilder中,根據(jù)作用范圍變量能夠分為全局變量、實(shí)例變量、共享變量和局部變量4種。全局變量(Global):它是獨(dú)立于應(yīng)用程序中其他對(duì)象,在整個(gè)應(yīng)用程序中都能夠訪問到變量。實(shí)例變量(Instance):它屬于單獨(dú)一種對(duì)象,是對(duì)象一種屬性。共享變量(Shared):它屬于一種對(duì)象定義,能夠被這個(gè)對(duì)象所有實(shí)例所共享。共享變量在對(duì)象關(guān)閉和再次打開時(shí)候仍然保持它自己值。局部變量(Local):它是一種臨時(shí)變量,存活范圍僅在定義它腳本程序中。腳本程序運(yùn)行完成,變量即被銷毀。與變量不一樣是,常量在申明之后是不會(huì)再變化,試圖對(duì)它進(jìn)行二次賦值,會(huì)引發(fā)編譯錯(cuò)誤。10/10/202317第17頁數(shù)組數(shù)組是一系列有相同數(shù)據(jù)類型有序數(shù)據(jù)集合。數(shù)組中所有元素都共用一種變量名,通過下標(biāo)能夠訪問數(shù)組中每一種元素。要申明一種數(shù)組只要在變量名后加上方括號(hào)即可。對(duì)于固定數(shù)組,還能夠在方括號(hào)中指定數(shù)組維數(shù)。假如申明數(shù)組時(shí)括號(hào)中沒有指定維數(shù),則此數(shù)組是變長數(shù)組,在運(yùn)行時(shí)能夠根據(jù)需要調(diào)整數(shù)組大小。10/10/202318第18頁運(yùn)算符PowerScript中,運(yùn)算符就是連接數(shù)據(jù)組成體現(xiàn)式,并完成一定運(yùn)算符號(hào)。有4大類運(yùn)算符:算術(shù)運(yùn)算符、關(guān)系運(yùn)算符、連接運(yùn)算符和邏輯運(yùn)算符。算術(shù)運(yùn)算符是對(duì)數(shù)字?jǐn)?shù)據(jù)進(jìn)行運(yùn)算。關(guān)系運(yùn)算符用來比較兩個(gè)或者多種操作數(shù),比較成果為下列3個(gè)值之一:TRUE、FALSE、NULL。關(guān)系運(yùn)算符能夠用于所有數(shù)據(jù)類型比較。邏輯運(yùn)算符多用于比較判斷語句中用于構(gòu)建成果為TRUE或FALSEBoolean體現(xiàn)式。連接運(yùn)算符,用于把兩個(gè)或者多種String型或Blob型變量連接到一起,形成一種新字符串操作,PowerScript語言用符號(hào)“+”表達(dá)連接字符串操作。10/10/202319第19頁體現(xiàn)式體現(xiàn)式是由運(yùn)算符和操作數(shù)組成、符合PowerScript語法規(guī)則式子。運(yùn)算對(duì)象能夠是PowerScript語言中任何數(shù)據(jù)類型。在體現(xiàn)式中,必須使用與運(yùn)算對(duì)象數(shù)據(jù)類型相兼容運(yùn)算符,如數(shù)值型數(shù)據(jù)能夠使用乘或除作為運(yùn)算符。具有兩種類型體現(xiàn)式,它們分別是數(shù)字類型體現(xiàn)式和字符(串)類型體現(xiàn)式。10/10/202320第20頁2.3控制語句條件判斷語句循環(huán)語句賦值語句返回和中斷語句10/10/202321第21頁條件判斷語句條件判斷語句是根據(jù)判斷條件不一樣,執(zhí)行不一樣語句一組語句。在PowerBuilder中有兩種條件判斷語句:If語句和Choose…Case語句。If語句是針對(duì)程序中某一給定條件進(jìn)行判斷,根據(jù)判斷成果執(zhí)行不一樣操作一組語句。它主要有兩種構(gòu)造:If…Then構(gòu)造和If…Then…Else構(gòu)造。Choose…Case語句是根據(jù)判斷體現(xiàn)式值來選擇不一樣Case塊語句執(zhí)行。Choose…Case語句與If…Then語句都屬于條件判斷語句,能夠交換使用實(shí)現(xiàn)同樣功能,但Choose…Case提供了比If…Then語句更多分支供顧客篩選,增強(qiáng)了程序可讀性,提升了運(yùn)行效率。10/10/202322第22頁循環(huán)語句循環(huán)是反復(fù)執(zhí)行某一動(dòng)作語言構(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)構(gòu)造,在執(zhí)行循環(huán)時(shí)候,要求了循環(huán)執(zhí)行次數(shù)。Do...Loop語句是一種通用循環(huán)語句。用來控制當(dāng)所給條件滿足時(shí)或直到所給條件滿足時(shí)所要執(zhí)行代碼段。Goto語句是一條無條件跳轉(zhuǎn)語句,只要是遇到Goto語句,就強(qiáng)制控制程序直接跳轉(zhuǎn)至Goto語句上對(duì)應(yīng)標(biāo)號(hào)語句上。在Do…Loop語句或For...Next語句循環(huán)體中,遇到Continue語句后,將不執(zhí)行Continue語句后循環(huán)結(jié)束前所有語句,而直接開始執(zhí)行下一輪循環(huán)。Exit語句只能用于Do...Loop語句或For...Next語句循環(huán)體中,能夠直接終止并跳出目前循環(huán)體。10/10/202323第23頁賦值語句賦值語句是用來對(duì)變量或?qū)ο髮傩灾付ㄖ嫡Z句。10/10/202324第24頁返回和中斷語句返回和中斷語句有Return、Halt語句兩種。Return語句用于從腳本中返回調(diào)用程序。Halt語句用于中斷應(yīng)用程序執(zhí)行。10/10/202325第25頁2.4系統(tǒng)函數(shù)系統(tǒng)函數(shù)是PowerScript通用函數(shù),它們不屬于任何對(duì)象,是PowerBuilder內(nèi)部函數(shù),在應(yīng)用程序任何地方都能夠直接使用。這些函數(shù)大大簡化了開發(fā)人員編程工作。其中常用幾類函數(shù)為:打開關(guān)閉窗口函數(shù)、類型轉(zhuǎn)換類函數(shù)、日期時(shí)間類函數(shù)、字符串操作函數(shù)等。10/10/202326第26頁2.5自定義函數(shù)在PowerBuilder中除了有豐富內(nèi)置函數(shù)供使用外,還能夠根據(jù)所實(shí)現(xiàn)功能定義自己函數(shù)。在PowerScript中自定義函數(shù)分為兩種類型:全局函數(shù)和對(duì)象級(jí)函數(shù)。10/10/202327第27頁2.6函數(shù)調(diào)用在窗口中,能夠手動(dòng)輸入函數(shù)名來調(diào)用函數(shù),也能夠通過粘貼操作來調(diào)用顧客自定義函數(shù)。在菜單欄中選擇“Edit”︱“PasteSpecial”︱“Function”命令,并從“Function”子菜單中選擇內(nèi)部函數(shù)、顧客自定義函數(shù)或外部函數(shù)。選擇使用AutoScript功能并在彈出列表框中雙擊函數(shù)名,然后在Browser中選擇函數(shù)并將其粘貼至腳本中即可。10/10/202328第28頁2.7函數(shù)重載和超越繼承對(duì)象函數(shù)時(shí)能夠選擇重載(overloading)或超越(overriding)函數(shù)定義,都是由函數(shù)名和參數(shù)列表決定函數(shù)是重載還是超越已有函數(shù)。函數(shù)重載,就是相同函數(shù)名對(duì)應(yīng)參數(shù)幾個(gè)不一樣體現(xiàn)形式,它能夠使同一函數(shù)名函數(shù)體有不一樣操作內(nèi)涵,從而達(dá)成程序多態(tài)性。函數(shù)重載必須是在同一種作用域下。函數(shù)超越是指在后裔對(duì)象中定義了一種與祖先對(duì)象中所包括函數(shù)完全相同函數(shù),它們不但擁有相同函數(shù)名稱,并且還擁有同樣參數(shù)列表和返回值。在這種情況下,在后裔對(duì)象中調(diào)用該函數(shù)時(shí),該后裔對(duì)象中函數(shù)優(yōu)先級(jí)永遠(yuǎn)要比其祖先對(duì)象中相同函數(shù)優(yōu)先級(jí)要高。在后裔對(duì)象中,除非使用全局函數(shù)作用域時(shí)調(diào)用祖先該函數(shù),不然始終調(diào)用后裔該函數(shù)。10/10/202329第29頁2.8使用外部函數(shù)在使用PowerBuilder編程過程中,顧客除了能夠使用系統(tǒng)提供函數(shù)和顧客自定義函數(shù)之外,還能夠使用PowerBuilder平臺(tái)之外函數(shù),即外部函數(shù)。在PowerBuilder10.0中所支持外部函數(shù)范圍非常廣泛,它能夠是由PowerScript語言之外任何語言寫出,支持32位平臺(tái)標(biāo)準(zhǔn)調(diào)用序列函數(shù),例如動(dòng)態(tài)鏈接庫(DLL)中函數(shù)、WindowsAPI以及其他工具軟件包中所提供函數(shù)等。10/10/202330第30頁2.9構(gòu)造構(gòu)造是一種數(shù)據(jù)類型,是由一種或多種互相關(guān)聯(lián)變量通過共用一種名稱所組合成有機(jī)整體。這些互相關(guān)聯(lián)變量數(shù)據(jù)類型組織形式靈活多樣,不受任何限制。顧客能夠把互相關(guān)聯(lián)對(duì)象通過一種構(gòu)造集合起來操作。PowerScript語言中構(gòu)造分為兩種類型:全局構(gòu)造和對(duì)象級(jí)構(gòu)造。全局構(gòu)造不與任何對(duì)象關(guān)聯(lián),并且能夠在整個(gè)應(yīng)用程序中使用。對(duì)象級(jí)構(gòu)造必須與詳細(xì)對(duì)象有關(guān)聯(lián)。定義一種構(gòu)造也就定義了一種新數(shù)據(jù)類型。只要該構(gòu)造定義保存在應(yīng)用庫中,顧客就能夠在腳本和顧客自定義函數(shù)中使用該構(gòu)造。顧客也能夠在顧客自定義函數(shù)中,將構(gòu)造作為參數(shù)再函數(shù)中傳遞。在定義函數(shù)時(shí),將構(gòu)造定義為函數(shù)參數(shù)。同樣顧客自定義函數(shù)返回值也能夠是構(gòu)造。對(duì)于外部函數(shù),也能夠?qū)?gòu)造作為函數(shù)參數(shù)。10/10/202331第31頁第3章數(shù)據(jù)庫管理教學(xué)目標(biāo)教學(xué)重點(diǎn)教學(xué)過程10/10/202332第32頁教學(xué)目標(biāo)學(xué)習(xí)和掌握數(shù)據(jù)庫管理基礎(chǔ)知識(shí)能利用PowerBuilder10.0中工具對(duì)數(shù)據(jù)庫進(jìn)行操作能在程序中連接數(shù)據(jù)庫10/10/202333第33頁教學(xué)重點(diǎn)建立數(shù)據(jù)源對(duì)數(shù)據(jù)庫進(jìn)行管理操作數(shù)據(jù)庫10/10/202334第34頁教學(xué)過程數(shù)據(jù)源創(chuàng)建與設(shè)置數(shù)據(jù)庫面板數(shù)據(jù)庫管理連接數(shù)據(jù)庫操作數(shù)據(jù)表操作表中數(shù)據(jù)10/10/202335第35頁3.1數(shù)據(jù)源創(chuàng)建ODBC數(shù)據(jù)源設(shè)置ODBC數(shù)據(jù)源刪除ODBC數(shù)據(jù)源10/10/202336第36頁創(chuàng)建ODBC數(shù)據(jù)源要實(shí)現(xiàn)通過ODBC訪問數(shù)據(jù)庫,就必須首先為數(shù)據(jù)庫建立一種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)程序。10/10/202337第37頁設(shè)置ODBC數(shù)據(jù)源在創(chuàng)建ODBC數(shù)據(jù)源后,有時(shí)還需要對(duì)創(chuàng)建數(shù)據(jù)源配備進(jìn)行修改,方便變化某些參數(shù)。例如設(shè)置登錄名稱和密碼、受損壞數(shù)據(jù)庫文獻(xiàn)、對(duì)數(shù)據(jù)庫進(jìn)行壓縮操作、設(shè)置驅(qū)動(dòng)程序頁超時(shí)、緩沖區(qū)大小等。10/10/202338第38頁刪除ODBC數(shù)據(jù)源在“顧客DSN”選項(xiàng)卡中,選擇要?jiǎng)h除數(shù)據(jù)源后,單擊“刪除”按鈕就會(huì)彈出“ODBC管理器”對(duì)話框,在此對(duì)話框中單擊“是(Y)”按鈕就能夠完成數(shù)據(jù)源刪除。10/10/202339第39頁3.2數(shù)據(jù)庫面板數(shù)據(jù)庫面板在PowerBuilder10.0中起到了非常主要作用,數(shù)據(jù)庫很多操作都能夠通過數(shù)據(jù)庫面板來完成。能夠通過選擇“Tools”︱“DatabasePainter”命令來調(diào)用數(shù)據(jù)庫面板,如下列圖所示。在數(shù)據(jù)庫面板窗體中,包括了很多視圖,這些視圖功能如下所示:Objects視圖。此視圖列出了數(shù)據(jù)庫概要和構(gòu)造信息,對(duì)于活動(dòng)數(shù)據(jù)庫連接,還列出了同數(shù)據(jù)庫關(guān)聯(lián)對(duì)象,顯示信息由數(shù)據(jù)庫和顧客權(quán)限決定。ObjectLayout視圖。用于顯示表圖形外觀。Columns視圖。用于創(chuàng)建或者修改數(shù)據(jù)表列。ISQLSession視圖。用于建立、執(zhí)行和解釋SQL語句。ObjectDetails視圖。用于顯示對(duì)象屬性,有些對(duì)象屬性是只讀,有些對(duì)象屬性是可修改。Results視圖。用網(wǎng)格、表或自由表單形式顯示數(shù)據(jù)。ActivityLog視圖。顯示執(zhí)行動(dòng)作SQL定義。ExtendedAttributes視圖。列出了連接數(shù)據(jù)庫里定義顯示格式、編輯格調(diào)以及有效性規(guī)則。10/10/202340第40頁10/10/202341第41頁3.3數(shù)據(jù)庫管理數(shù)據(jù)庫是數(shù)據(jù)表、索引、視圖及數(shù)據(jù)集合。數(shù)據(jù)庫管理主要也就是對(duì)數(shù)據(jù)表、索引、視圖和數(shù)據(jù)管理。其中,數(shù)據(jù)庫創(chuàng)建和刪除能夠通過SybaseCentral來完成,SybaseCentral提供了一種管理ASA數(shù)據(jù)庫圖形界面。10/10/202342第42頁3.4連接數(shù)據(jù)庫PowerBuilder在訪問數(shù)據(jù)庫之前,必須首先與要操作數(shù)據(jù)庫建立連接。利用數(shù)據(jù)庫面板能夠很容易地連接數(shù)據(jù)庫,下面以O(shè)DBC接口為例,解說連接步驟。10/10/202343第43頁啟動(dòng)PowerBuilder,單擊DBProfile圖標(biāo),打開“DatabaseProfiles”對(duì)話框。10/10/202344第44頁在ODBODBC節(jié)點(diǎn)上單擊鼠標(biāo)右鍵,在彈出快捷菜單上選擇“NewProfile”命令,打開“DatabaseProfileSetup-ODBC”對(duì)話框。選擇“Connection”選項(xiàng)卡,在“ProfileName”文本框中輸入名稱,在“DataSource”下拉列表框中選擇前面設(shè)置ODBC數(shù)據(jù)源,在“UserID”文本框中輸入顧客名,在“Password”文本框中輸入密碼。
10/10/202345第45頁10/10/202346第46頁選擇“Preview”選項(xiàng)卡,單擊此選項(xiàng)卡上“TestConnection”按鈕,測試數(shù)據(jù)庫連接配備。假如能夠成功地連接數(shù)據(jù)庫,則顯示對(duì)話框,提醒數(shù)據(jù)庫連接成功。10/10/202347第47頁3.5操作數(shù)據(jù)表創(chuàng)建表設(shè)置主鍵設(shè)置外鍵設(shè)置索引10/10/202348第48頁創(chuàng)建表數(shù)據(jù)表是寄存數(shù)據(jù)主要地方,在數(shù)據(jù)庫中作用很主要。選擇“Objects”︱“Insert”︱“Table”命令,激活Columns視圖,在此視圖中輸入對(duì)應(yīng)列內(nèi)容。輸入完成后來保存,并輸入表名即可。10/10/202349第49頁設(shè)置主鍵主鍵作用是為了惟一標(biāo)識(shí)數(shù)據(jù)表中一種或多種列,它不允許為空也不允許反復(fù)。在菜單中選擇“Objects”︱“Insert”︱“PrimaryKey”命令,或者在數(shù)據(jù)表上單擊鼠標(biāo)右鍵,在彈出快捷菜單中選擇“New”︱“PrimaryKey”命令,打開“PrimaryKey”對(duì)話框,在“PrimaryKey”文本框中輸入“id”,在“Columns”列表框中選中“id”列。設(shè)置完成后單擊工具欄上保存按鈕保存設(shè)置,完成主鍵定義。刪除主鍵辦法是在Objects視圖中選擇要?jiǎng)h除主鍵,在該主鍵上單擊鼠標(biāo)右鍵,在彈出快捷菜單中選擇“DropPrimarykey”命令,在打開對(duì)話框中選擇“Yes”按鈕,完成對(duì)主鍵刪除。10/10/202350第50頁設(shè)置外鍵外鍵作用是與其他表中主鍵匹配,對(duì)于一種表來說外鍵能夠有多種。在菜單中選擇“Objects”︱“Insert”︱“ForeignKey”命令,打開“ForeignKey”對(duì)話框,然后在“General”選項(xiàng)卡中選擇要與其他表主鍵關(guān)聯(lián)列name,然后在“ForeignKey”文本框中輸入外鍵名稱,選擇“PrimaryKey”選項(xiàng)卡,在該選項(xiàng)卡中“Table”下拉列表框中選擇要關(guān)聯(lián)表admin,然后保存對(duì)外鍵設(shè)置。刪除外鍵辦法是在Objects視圖中選擇要?jiǎng)h除外鍵,在該外鍵上單擊鼠標(biāo)右鍵,在彈出快捷菜單中選擇“DropForeignkey”命令,在打開對(duì)話框中選擇“Yes”按鈕,完成對(duì)外鍵刪除。10/10/202351第51頁設(shè)置索引索引是表一種主要概念,在進(jìn)行表搜索和排序時(shí),索引發(fā)著關(guān)鍵性作用。索引與主鍵不一樣,索引既能夠反復(fù)也能夠?yàn)榭罩?。選擇要建立索引表,在菜單中選擇“Objects”︱“Insert”︱“Index”命令,打開Index視圖。在“Index:”文本框中輸入索引名字,在“Columns”列表框中選擇sex,選中“Unique”復(fù)選框表達(dá)該列中數(shù)據(jù)惟一,而“Ascending”復(fù)選框用于指定數(shù)據(jù)排序次序,然后保存對(duì)索引設(shè)置。刪除索引辦法是在Objects視圖中選擇要?jiǎng)h除索引,在該索引上單擊鼠標(biāo)右鍵,在彈出快捷菜單中選擇“DropIndex”命令,在打開對(duì)話框中選擇“Yes”按鈕,完成對(duì)索引刪除。10/10/202352第52頁3.6操作表中數(shù)據(jù)在數(shù)據(jù)庫面板中除了創(chuàng)建數(shù)據(jù)表和設(shè)置主鍵、外鍵和索引以外還能夠?qū)?shù)據(jù)表中數(shù)據(jù)進(jìn)行瀏覽、編輯和刪除。10/10/202353第53頁第4章應(yīng)用程序設(shè)計(jì)基礎(chǔ)教學(xué)目標(biāo)教學(xué)重點(diǎn)教學(xué)過程10/10/202354第54頁教學(xué)目標(biāo)理解PowerBuilder中應(yīng)用程序?qū)ο笥嘘P(guān)概念能夠利用應(yīng)用程序模板以自己定制形式創(chuàng)建簡單應(yīng)用程序10/10/202355第55頁教學(xué)重點(diǎn)應(yīng)用程序?qū)ο蠖ㄖ茟?yīng)用程序移植現(xiàn)有程序應(yīng)用程序?qū)ο髮傩院褪录?0/10/202356第56頁教學(xué)過程應(yīng)用程序?qū)ο蟾攀鰟?chuàng)建應(yīng)用程序設(shè)置應(yīng)用程序?qū)傩詰?yīng)用程序事件10/10/202357第57頁4.1應(yīng)用程序?qū)ο蟾攀鰬?yīng)用程序?qū)ο笫菓?yīng)用程序入口點(diǎn),它定義了某些應(yīng)用程序級(jí)事件、函數(shù)和屬性。每個(gè)PowerBuilder應(yīng)用程序都必須有一種,并且只能有一種應(yīng)用對(duì)象。當(dāng)顧客運(yùn)行應(yīng)用程序時(shí),應(yīng)用程序?qū)ο驩pen事件將被觸發(fā),在這個(gè)事件中能夠設(shè)置應(yīng)用初始狀態(tài),也能夠裝入其他對(duì)象和連接數(shù)據(jù)庫等,例如能夠在這里指定首先顯示窗口。當(dāng)顧客終止應(yīng)用程序時(shí),應(yīng)用對(duì)象Close時(shí)間被觸發(fā),在這個(gè)事件中能夠完成必要系統(tǒng)清理工作,例如斷開與數(shù)據(jù)庫連接。應(yīng)用程序?qū)ο笸翱?、菜單、顧客?duì)象同樣,都存放在PowerBuilderPBL應(yīng)用庫中。PowerBuilder應(yīng)用程序能夠說是一系列對(duì)象集合。10/10/202358第58頁4.2創(chuàng)建應(yīng)用程序在PowerBuilder中,創(chuàng)建一種應(yīng)用程序有三種方式:自動(dòng)生成應(yīng)用程序(使用應(yīng)用程序模板)、定制應(yīng)用程序和移植已有應(yīng)用程序。顧客可根據(jù)個(gè)人需要,選擇不一樣創(chuàng)建方式。自動(dòng)生成應(yīng)用程序這種辦法適用于初學(xué)者。顧客只需根據(jù)模板向?qū)嵝?,一步一步地操作即可建立一種應(yīng)用程序。定制應(yīng)用程序就是通過自己設(shè)計(jì)來創(chuàng)建出更滿足自己需求程序。移植已有應(yīng)用程序就是將已經(jīng)存在應(yīng)用程序移植到目前版本中。移植已有應(yīng)用程序很簡單,只需創(chuàng)建新工作區(qū)和目標(biāo)文獻(xiàn),而庫文獻(xiàn)和應(yīng)用程序?qū)ο蠖际褂帽緛?。在移植已有?yīng)用程序時(shí)候,必須要有原應(yīng)用程序庫文獻(xiàn),并且該庫文獻(xiàn)中包括應(yīng)用程序?qū)ο蟆?0/10/202359第59頁4.3設(shè)置應(yīng)用程序?qū)傩栽O(shè)置默認(rèn)字體設(shè)置應(yīng)用程序圖標(biāo)設(shè)置默認(rèn)全局變量10/10/202360第60頁設(shè)置默認(rèn)字體在PowerBuilder中,應(yīng)用程序4個(gè)字體屬性決定了開發(fā)應(yīng)用程序過程中經(jīng)常使用4種字體,它們分別為:TextFont、ColumnFont、HeaderFont和LabelFont。TextFont:決定了窗口中控件、顧客對(duì)象、數(shù)據(jù)窗口中靜態(tài)文本默認(rèn)字體。ColumnFont:指定了數(shù)據(jù)窗口中檢索出數(shù)據(jù)使用默認(rèn)字體。HeaderFont:定義了列表格調(diào)和網(wǎng)格格調(diào)數(shù)據(jù)窗口對(duì)象中列標(biāo)題默認(rèn)字體。LabelFont:確定了自由格調(diào)數(shù)據(jù)窗口中列標(biāo)簽?zāi)J(rèn)字體。10/10/202361第61頁在開發(fā)應(yīng)用程序時(shí),根據(jù)需要先設(shè)置好這些字體,能夠?yàn)楹髞碓O(shè)計(jì)其他對(duì)象時(shí)免除反復(fù)設(shè)置操作。下面以TextFont屬性為例介紹字體設(shè)置辦法。打開一種需要設(shè)置字體應(yīng)用程序,在應(yīng)用程序“Properties”面板中單擊“AdditionalProperties”按鈕,打開“Application”對(duì)話框,選擇“TextFont”選項(xiàng)卡(假如要修改其他字體,可打開對(duì)應(yīng)選項(xiàng)卡),然后根據(jù)需要進(jìn)行修改。修改字體屬性只對(duì)修改后生成應(yīng)用程序有效,而對(duì)修改字體前已建立應(yīng)用程序無效。10/10/202362第62頁設(shè)置應(yīng)用程序圖標(biāo)應(yīng)用程序圖標(biāo)是在窗體最小化時(shí)或在創(chuàng)建應(yīng)用程序快捷方式時(shí)所顯示圖標(biāo),它格式一般為“*.ico”。能夠在應(yīng)用程序“Properties”對(duì)話框中單擊“AdditionalProperties”按鈕,打開“Application”對(duì)話框,然后“Icon”選項(xiàng)卡中進(jìn)行設(shè)置。10/10/202363第63頁設(shè)置默認(rèn)全局變量PowerBuilder10.0中提供了5個(gè)內(nèi)置全局變量,分別為:“SQLCA”、“SQLDA”、“SQLSA”、“Error”、“Message”,它們都有默認(rèn)類型。修改這些變量類型能夠更方便應(yīng)用程序開發(fā),例如使其直接提供漢字提醒信息。要修改這些全局變量能夠在應(yīng)用程序“Properties”對(duì)話框中單擊“AdditionalProperties”按鈕,打開“Application”對(duì)話框。選擇“VariableTypes”選項(xiàng)卡,在對(duì)應(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ù)。10/10/202364第64頁4.4應(yīng)用程序事件Open事件Close事件Idle事件SystemError事件ConnectionBegin事件ConnectionEnd事件10/10/202365第65頁Open事件應(yīng)用程序一啟動(dòng)就會(huì)觸發(fā)Open事件,且只觸發(fā)一次。假如沒有為該事件添加代碼,應(yīng)用程序就不能夠調(diào)用應(yīng)用程序中對(duì)象。不然系統(tǒng)會(huì)彈出警告對(duì)話框,提醒必須對(duì)應(yīng)用程序編寫Open事件代碼。在PowerBuilder應(yīng)用程序中,Open事件應(yīng)當(dāng)完成下列工作:初始化應(yīng)用程序。利用INI文獻(xiàn)設(shè)置某些屬性,并初始化一種事務(wù)對(duì)象。連接要訪問數(shù)據(jù)庫。查詢環(huán)境,確保運(yùn)行應(yīng)用程序所需要資源都可用。打開應(yīng)用程序主窗口進(jìn)行事務(wù)處理。10/10/202366第66頁Close事件在PowerBuilder應(yīng)用程序結(jié)束時(shí),會(huì)觸發(fā)Close事件,它也只觸發(fā)一次。一般這個(gè)事件要完成下列工作:釋放應(yīng)用程序中對(duì)象。向INI文獻(xiàn)中存入信息,方便下次運(yùn)行時(shí)恢復(fù)狀態(tài)。關(guān)閉應(yīng)用程序中尚未關(guān)閉文獻(xiàn)。斷開與數(shù)據(jù)庫連接。10/10/202367第67頁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ù)程序。隱藏機(jī)密數(shù)據(jù)并強(qiáng)制顧客在長時(shí)間未操作應(yīng)用程序時(shí)重新輸入密碼。理解顧客是否長時(shí)間未操作應(yīng)用程序。10/10/202368第68頁SystemError事件在應(yīng)用程序操作過程中出現(xiàn)嚴(yán)重錯(cuò)誤時(shí)會(huì)觸發(fā)SystemError事件,能夠在此處編寫錯(cuò)誤處理和也許恢復(fù)代碼。假如顧客沒有編寫錯(cuò)誤處理程序,那么PowerBuilder將彈出標(biāo)有錯(cuò)誤代碼和錯(cuò)誤信息對(duì)話框。10/10/202369第69頁ConnectionBegin事件ConnectionBegin事件用于分布式PowerBuilder應(yīng)用服務(wù)器端。當(dāng)客戶程序試圖連接到服務(wù)器程序時(shí),將觸發(fā)ConnectionBegin事件。10/10/202370第70頁ConnectionEnd事件ConnectionEnd事件特用于分布式PowerBuilder應(yīng)用服務(wù)器端。當(dāng)客戶程序試圖斷開與服務(wù)器程序連接時(shí),將會(huì)觸發(fā)ConnectionEnd事件。10/10/202371第71頁第5章窗體編程教學(xué)目標(biāo)教學(xué)重點(diǎn)教學(xué)過程10/10/202372第72頁教學(xué)目標(biāo)理解創(chuàng)建窗體基本步驟理解如何添加窗體控件理解窗體屬性設(shè)置窗體控件調(diào)整按鈕使用10/10/202373第73頁教學(xué)重點(diǎn)窗體屬性設(shè)置窗體辦法和事件10/10/202374第74頁教學(xué)過程創(chuàng)建窗體設(shè)置窗體屬性窗體辦法窗口事件10/10/202375第75頁5.1創(chuàng)建窗體主窗體子窗體彈出式窗體應(yīng)答窗體多文檔窗體多文檔微幫助窗體10/10/202376第76頁主窗體主窗體一般還能夠稱為父窗體,獨(dú)立于其他任何窗體,一般作為一種應(yīng)用程序啟動(dòng)界面,能夠有菜單、工具欄、最大化、最小化按鈕等。首先創(chuàng)建一種Workspace,然后再創(chuàng)建一種Application,在工具欄上單擊新建按鈕,打開New對(duì)話框,選擇PBObject選項(xiàng)卡,單擊Window選中圖標(biāo),然后單擊OK按鈕,在Properties窗口中,能夠設(shè)置窗體類型,最后保存即可。10/10/202377第77頁子窗體子窗體是從屬于主窗體或一種彈出式窗體窗體,它是依賴與其祖先窗口而存在,會(huì)跟隨其祖先窗口移動(dòng),子窗體有下列特點(diǎn):必須擁有一種主窗體。能夠有標(biāo)題欄。不能有菜單欄。不能超出父窗體范圍。子窗體創(chuàng)建同主窗體創(chuàng)建辦法同樣,只是將Properties窗口中WindowType下拉列表框窗體類型設(shè)置為Child!選項(xiàng)即可。為前邊創(chuàng)建myform主窗體創(chuàng)建一種子窗體,命名為chform,并設(shè)置子窗體TitleBar屬性為真,BackColor屬性為Sky,運(yùn)行主窗體,并打開子窗體。10/10/202378第78頁彈出式窗體彈出式窗體與主窗體不一樣,它是通過其他窗體打開。彈出式窗體在打開后,焦點(diǎn)自動(dòng)指向彈出窗體并在彈出窗口上執(zhí)行對(duì)應(yīng)操作;只有將彈出窗口關(guān)閉后,其祖先窗口才也許重新取得焦點(diǎn)。彈出式窗體具有下列特點(diǎn):從屬于其他窗體。顯示在父窗體上面。當(dāng)父窗體最小化或關(guān)閉時(shí),彈出窗體也會(huì)隨之最小化或關(guān)閉。能夠同步對(duì)父窗體和彈出式窗體進(jìn)行操作。創(chuàng)建彈出式窗體和創(chuàng)建主窗體辦法相同,只需要將Properties屬性窗口中WindowType屬性設(shè)置為Popup!選項(xiàng)。10/10/202379第79頁應(yīng)答式窗體應(yīng)答式窗體主要用來提醒顧客輸入信息,不能對(duì)其進(jìn)行最大化、最小化或變化窗體大小操作。當(dāng)顧客打開一種應(yīng)答窗體后就不能在對(duì)其他窗體進(jìn)行操作,只有在關(guān)閉應(yīng)答窗體后才能繼續(xù)對(duì)其他窗體進(jìn)行操作。創(chuàng)建應(yīng)答窗體和創(chuàng)建主窗體辦法相同,只需要將Properties窗口中WindowType類型選擇設(shè)置為Response!選項(xiàng)即可。創(chuàng)建一種應(yīng)答式窗體,命名為rsform,運(yùn)行主窗體,并打開應(yīng)答式窗體。10/10/202380第80頁多文檔窗體多文檔窗體能夠在一種主窗體中能夠打開多種子文檔窗體,例如word程序。多文檔窗體創(chuàng)建辦法和主窗體相同,只需要將Properties窗口中WindowType下拉列表框選擇Mdi!選項(xiàng)即可。創(chuàng)建多文檔窗體時(shí),必須要為它指定一種菜單,不然系統(tǒng)會(huì)彈出一種錯(cuò)誤提醒框。10/10/202381第81頁多文檔微幫助窗體多文檔微幫助窗體和多文檔窗體非常相同,創(chuàng)建辦法同樣是將“Properties”窗口中“WindowType”下拉列表框選擇“Mdihelp!”選項(xiàng)即可。有關(guān)多文檔微幫助窗體創(chuàng)建能夠參照多文檔窗體創(chuàng)建辦法。10/10/202382第82頁5.2設(shè)置窗體屬性設(shè)置一般屬性設(shè)置滾動(dòng)條設(shè)置工具欄屬性設(shè)置其他屬性10/10/202383第83頁設(shè)置一般屬性窗體一般屬性是在Properties屬性窗口中General選項(xiàng)卡進(jìn)行設(shè)置,包括Title、Tag、MenuName、WindowType、BackColor等。10/10/202384第84頁設(shè)置滾動(dòng)條在Properties窗口中Scroll選項(xiàng)卡中,能夠設(shè)置窗體滾動(dòng)條屬性。Scroll選項(xiàng)卡中滾動(dòng)條常用屬性選項(xiàng)含義如下:HscrollBar設(shè)置窗口對(duì)象中是否顯示水平滾動(dòng)條。屬性值為True時(shí)顯示水平滾動(dòng)條,不然為False時(shí)不顯示。VscrollBar設(shè)置窗口對(duì)象中是否顯示垂直滾動(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。10/10/202385第85頁設(shè)置工具欄屬性在Properties窗口中Toolbar選項(xiàng)卡中能夠設(shè)置窗體上工具欄屬性包括是否可見、工具欄高度和寬度等。Toolbar選項(xiàng)卡中各屬性設(shè)置項(xiàng)含義如下所示:ToolbarVisible設(shè)置窗口中工具條是否顯示出來。屬性值為True時(shí)顯示,不然為False時(shí)不顯示。ToolbarAlignment設(shè)置工具條在一種MDI窗口中顯示位置。ToolbarX設(shè)置當(dāng)工具條以窗口方式浮動(dòng)顯示時(shí)工具條窗口左上角距MDI窗口左邊界距離。用于MDI窗口。ToolbarY設(shè)置當(dāng)工具條以窗口方式浮動(dòng)顯示時(shí)工具條窗口左上角距MDI窗口上邊界距離。用于MDI窗口。ToolbarWidth設(shè)置當(dāng)工具條以窗口方式浮動(dòng)顯示時(shí)工具條窗口寬度。用于MDI窗口。ToolbarHeight設(shè)置當(dāng)工具條以窗口方式浮動(dòng)顯示時(shí)工具條窗口高度。用于MDI窗口。10/10/202386第86頁設(shè)置其他屬性在Properties窗口中Other選項(xiàng)卡中能夠設(shè)置窗口某些其他屬性,包括窗體高度、寬度、窗體坐標(biāo)等。10/10/202387第87頁5.3窗體辦法窗體對(duì)象除了有屬性外,尚有辦法,純熟使用它們能夠使應(yīng)用程序?qū)崿F(xiàn)個(gè)中功能以滿足需要。下面是幾個(gè)常用辦法(由于辦法眾多,因此僅列舉幾個(gè)):ArrangeSheets:此辦法用于排列MDI框架中表單或圖標(biāo)。返回?cái)?shù)據(jù)類型為整型。返回值為1成功,不然,返回值為-1失敗。ChangeMenu:用于更換與窗口有關(guān)聯(lián)菜單。其中,參數(shù)position只適用于MDI框架類型窗口。ClassName:用于取窗口對(duì)象類名。返回?cái)?shù)據(jù)類型為字符串。返回值為窗口對(duì)象類名說明操作成功;不然,將返回空串。Hide:返回?cái)?shù)據(jù)類型為整型.,用于隱藏窗口。假如返回值為1操作成功,不然,返回值為-1。Move:返回?cái)?shù)據(jù)類型為整型。用于移動(dòng)窗口。假如返回值為1,操作成功,不然,返回值為-1;參數(shù)是NULL,則返回NULL。10/10/202388第88頁5.4窗口事件PowerBuilder程序才用事件驅(qū)開工作方式,程序運(yùn)行沒有固定流程,程序中代碼也是為多種也許發(fā)生事件編寫,當(dāng)程序開始運(yùn)行之后,它就能夠接收來自系統(tǒng),顧客或者其他應(yīng)用程序觸發(fā)事件,然后執(zhí)行對(duì)應(yīng)事件代碼。PowerBuilder10.0中為窗體定義了很多事件,包括Open、MouseDown、Show等,當(dāng)觸發(fā)窗體這些事件時(shí)使得應(yīng)用程序執(zhí)行對(duì)應(yīng)程序代碼,從而實(shí)現(xiàn)應(yīng)用程序多種功能。下面列出了接幾個(gè)常用事件。10/10/202389第89頁Activate:當(dāng)窗口被激活前,觸發(fā)該事件。Clicked:當(dāng)鼠標(biāo)單擊窗口時(shí)觸發(fā)該事件。Close:當(dāng)窗口關(guān)閉時(shí)觸發(fā)該事件。CloseQuery:當(dāng)窗口將要關(guān)閉時(shí)觸發(fā)該事件,用于判斷是否關(guān)閉該窗口。DoubleClicked:當(dāng)顧客雙擊窗口未被占用區(qū)域時(shí)觸發(fā)該事件。DragDrop:當(dāng)一種可拖拽控制對(duì)象被放到窗口上時(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í)觸發(fā)該事件。10/10/202390第90頁第6章控件使用教學(xué)目標(biāo)教學(xué)重點(diǎn)教學(xué)過程10/10/202391第91頁教學(xué)目標(biāo)理解控件基礎(chǔ)知識(shí)熟悉這些常用控件使用辦法和屬性純熟地使用常用控件10/10/202392第92頁教學(xué)重點(diǎn)常用控件使用辦法控件屬性10/10/202393第93頁教學(xué)過程控件概述按鈕控件文本框控件列表控件進(jìn)度條控件、滾動(dòng)條控件和軌跡條控件圖形類控件其他控件10/10/202394第94頁6.1控件概述PowerBuilder提供了豐富標(biāo)準(zhǔn)控件,利用這些控件,開發(fā)人員能夠?qū)崿F(xiàn)對(duì)窗口設(shè)計(jì)和變成,還能夠完成應(yīng)用程序開發(fā)大多數(shù)功能。PowerBuilder為插入控件自動(dòng)命名,開發(fā)人員能夠修改這些控件,以方便應(yīng)用程序開發(fā)。另外,還能夠進(jìn)行控件布局、以及定義控件快捷鍵等。10/10/202395第95頁插入控件要向一種窗口插入控件時(shí),能夠選擇“Insert”︱“Control”︱“ControlName”命令,或者在控件下拉列表框中選擇對(duì)應(yīng)控件,如圖所示。然后在窗口中要插入控件位置單擊即可完成控件插入操作。當(dāng)插入控件后,能夠調(diào)整它大小、位置,定義外觀和行為,添加腳本代碼等。10/10/202396第96頁控件布局當(dāng)插入控件后,就能夠在布局工具中對(duì)控件進(jìn)行排列和對(duì)齊操作,PowerBuilder提供了一種網(wǎng)格(grid)用于對(duì)齊控件。對(duì)齊控件辦法為:選擇要對(duì)齊控件,然后按住“Ctrl”鍵,并單擊需要同第一種對(duì)齊控件。然后在菜單欄中選擇“Format”|“Align”菜單項(xiàng)中命令,或者在工具欄布局下拉列表框中選擇對(duì)應(yīng)對(duì)齊方式。10/10/202397第97頁定義控件快捷鍵能夠?yàn)榭丶x快捷鍵,使顧客能夠按下“Alt+快捷鍵”來迅速定位一種控件。如何定義快捷鍵依賴于控件類型是否具有顯示文本,假如沒有顯示文本,必須在控件本身中定義快捷鍵。下面介紹其中幾個(gè)控件定義快捷鍵辦法。為命令按鈕、復(fù)選框和單選按鈕定義快捷鍵步驟為:先單擊控件,然后在其屬性視圖“General”選項(xiàng)卡中“Text”文本框中,在字符前面加入“&”符號(hào)即可定義快捷鍵。10/10/202398第98頁6.2按鈕控件按鈕控件分為兩類,一類是命令按鈕控件,另一類是圖形按鈕控件。命令按鈕控件(CommandButton)用于創(chuàng)建一種按鈕,并執(zhí)行對(duì)應(yīng)操作。例如關(guān)閉窗口時(shí)提醒是否關(guān)閉該窗口。圖形按鈕控件用于接收顧客操作命令。它能夠在該按鈕上顯示圖像,圖像格式能夠?yàn)锽MP、GIF、JPG和JPEG等。對(duì)于按鈕控件來說Clicked事件是非常主要一種事件,此事件在單擊按鈕時(shí)被觸發(fā)。10/10/202399第99頁6.3文本框控件文本框控件用于輸入或者顯示文本信息。靈活利用這些控件能夠增強(qiáng)程序界面交互性。靜態(tài)文本框控件只用于顯示文本信息,不允許輸入和修改文本信息,不過能夠在設(shè)計(jì)時(shí)或者在腳本代碼中更改要顯示信息。一般用于顯示某些操作提醒或者反饋信息。單行文本框控件用于輸入、編輯文本信息,它用于顯示較少數(shù)據(jù)。在文本框中會(huì)有一種光標(biāo)批示控件焦點(diǎn)。多行文本框控件允許輸入、顯示多行文本信息,用于輸入比較多文本數(shù)據(jù)。文本框掩碼控件是用來創(chuàng)建掩碼,輸入和編輯必須與指定掩碼格式一致。它能夠完成輸入自動(dòng)格式化,因此一般用于帶格式輸入,例如日期等。RichText文本框控件功能比多行文本框更強(qiáng)大,用于顯示帶格式多文本編輯框。它提供了字體控制、顏色控制、查找、替代、打印預(yù)覽、打印控制等功能。10/10/2023100第100頁6.4列表控件列表控件數(shù)據(jù)能夠直接從列表中選用,不需要顧客手動(dòng)輸入。對(duì)于某些不需要顧客輸入或固定數(shù)據(jù)能夠選擇列表控件。單選按鈕控件時(shí),是在多種可選項(xiàng)中選擇一種,不能夠多項(xiàng)選擇,是用于表達(dá)“是”或“否”之類兩種狀態(tài)控件。例如人性別“男”或“女”只能夠選其中一種。復(fù)選框控件特點(diǎn)在于,復(fù)選框控件能夠一次性地選擇很多信息,例如小說分類能夠選擇“玄幻”、“武俠”、“網(wǎng)游”等。列表框控件用于以列表形式顯示數(shù)據(jù),它能夠自動(dòng)顯示垂直滾動(dòng)條和水平滾動(dòng)條。下拉列表框控件和列表框控件作用基本相同,不過在下拉列表框控件右邊有一種向下箭頭。10/10/2023101第101頁6.5進(jìn)度條控件、滾動(dòng)條控件和軌跡條控件進(jìn)度條控件、滾動(dòng)條控件和軌跡條控件作用都是對(duì)位置進(jìn)行批示。能夠使用進(jìn)度條表達(dá)花費(fèi)時(shí)間較長操作執(zhí)行過程,例如復(fù)制文獻(xiàn)時(shí)進(jìn)度。滾動(dòng)條能夠調(diào)整窗口顯示位置。軌跡條能夠?qū)﹄x散值進(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)整音樂音量。軌跡條控件也分兩類:水平軌跡條和垂直軌跡條。10/10/2023102第102頁6.6圖形類控件圖形類控件一般用于增強(qiáng)界面顯示效果,例如使用直線將窗口中控件分隔或者用矩形控件為窗口劃分區(qū)域等。圖形類控件也能夠當(dāng)作其他控件使用,例如對(duì)矩形控件編寫Clicked事件代碼后,這個(gè)矩形控件就具有了命令按鈕功能了。直線控件在窗體主要作用是對(duì)窗體中不一樣控件進(jìn)行分隔。橢圓控件在窗口中能夠起到裝飾頁面作用。矩形控件用來畫一種矩形,以分割界面或增強(qiáng)界面效果。用來畫一種帶有圓角矩形,能夠設(shè)置圓角矩形線型、顏色、長、寬等。10/10/2023103第103頁6.7其他控件除了上邊所介紹控件類型控件外,尚有其他幾類控件,如Tab控件、圖形超鏈接控件、靜態(tài)超鏈接控件等。Tab控件作用就是將其他控件提成幾個(gè)部分分別顯示,它也就是平時(shí)常用選項(xiàng)卡控件。使用Tab控件能夠在一種窗體里使用很多控件而互相不干擾。圖形超鏈接控件擁有圖形框特性,并提供了訪問Internet頁面超鏈接。靜態(tài)超鏈接控件也提供了訪問Internet頁面超鏈接。10/10/2023104第104頁第7章菜單教學(xué)目標(biāo)教學(xué)重點(diǎn)教學(xué)過程10/10/2023105第105頁教學(xué)目標(biāo)理解菜單概念能創(chuàng)建和靈活使用菜單、窗口控件搭建出美觀使用應(yīng)用程序界面10/10/2023106第106頁教學(xué)重點(diǎn)菜單分類菜單屬性設(shè)置菜單對(duì)象函數(shù)菜單繼承10/10/2023107第107頁教學(xué)過程菜單概述菜單分類創(chuàng)建菜單菜單屬性設(shè)置為菜單項(xiàng)編寫腳本菜單對(duì)象函數(shù)10/10/2023108第108頁7.1菜單概述菜單是操作應(yīng)用程序一種向?qū)?,是?yīng)用程序中指令集或功能列表,顧客通過選擇菜單項(xiàng)發(fā)出命令,批示程序完成所需要任務(wù)。它是顧客進(jìn)入該程序門戶,為顧客操作程序提供了較為直觀信息。除了子窗口和響應(yīng)窗口外,其他窗口類型都能夠包括菜單。PowerBuilder菜單也是一種對(duì)象,它具有屬性、事件和函數(shù),能夠在對(duì)象腳本中動(dòng)態(tài)修改。菜單項(xiàng)具有下列3種情況:只有菜單項(xiàng)名稱。選擇這種菜單項(xiàng)將直接完成所對(duì)應(yīng)操作。菜單項(xiàng)名稱背面有小黑三角標(biāo)識(shí)。這表達(dá)選中之后會(huì)彈出一種菜單形成級(jí)聯(lián)菜單。菜單項(xiàng)名稱背面有省略號(hào)。這表達(dá)選擇這種菜單項(xiàng)將彈出一種對(duì)話框,顧客需要在對(duì)話框中做深入操作。10/10/2023109第109頁7.2菜單分類窗口中菜單根據(jù)所應(yīng)用場所和表現(xiàn)形式一般被分為3種:下拉式菜單、彈出式菜單和級(jí)聯(lián)式菜單。下拉式菜單是在應(yīng)用程序頂部菜單欄里并列一組菜單標(biāo)題,它在應(yīng)用窗口打開時(shí)隨之顯示。在下拉式菜單中用戶可以選中所需菜單標(biāo)題執(zhí)行對(duì)應(yīng)操作,例如選中File菜單打開屬于該菜單標(biāo)題下拉式菜單。彈出式菜單一般與鼠標(biāo)右鍵相對(duì)應(yīng)。彈出式菜單沒有固定菜單欄,而是在某一個(gè)指定事件發(fā)生時(shí)才會(huì)出現(xiàn)。如果要在程序中使用彈出式菜單,需要在程序中用腳本語言來指定。下拉菜單不需要通過編寫腳本來顯示。彈出式菜單可以在程序開發(fā)時(shí)隨時(shí)指定。級(jí)聯(lián)式菜單應(yīng)用十分廣泛,它與下拉式菜單和彈出式菜單都有著密切聯(lián)系。如果在該下拉菜單菜單項(xiàng)中還包括有其他菜單項(xiàng),這時(shí)就可以通過級(jí)聯(lián)菜單形式給出。級(jí)聯(lián)式菜單是由該菜單項(xiàng)右面小黑三角標(biāo)記導(dǎo)出,該標(biāo)記表明此菜單項(xiàng)指向另外級(jí)聯(lián)菜單10/10/2023110第110頁7.3創(chuàng)建菜單利用菜單生成向?qū)Ю^承式創(chuàng)建在菜單項(xiàng)間放置分割線復(fù)制菜單項(xiàng)10/10/2023111第111頁利用菜單生成向?qū)г诔鯇W(xué)菜單創(chuàng)建時(shí),能夠通過菜單生成向?qū)硗瓿伤胁僮?。選擇“File”︱“New”命令,打開“New”對(duì)話框。然后在“PBObject”選項(xiàng)卡中,選擇Menu圖標(biāo)。單擊“OK”按鈕,即可打開菜單設(shè)計(jì)面板。10/10/2023112第112頁繼承式創(chuàng)建利用繼承方式生成菜單能夠縮短菜單創(chuàng)建時(shí)間,提升工作效率,增加程序重用性。繼承方式創(chuàng)建菜單辦法為:選擇菜單欄上“File”︱“Inherit”命令,打開“InheritfromObject”對(duì)話框,在此對(duì)話框中選擇要繼承菜單,然后單擊“OK”按鈕,彈出“InheritFailed”對(duì)話框,警告要將繼承菜單欄關(guān)閉,關(guān)閉了菜單欄后,就能夠?qū)⒋瞬藛螜诶^承過來了。最后對(duì)此菜單欄進(jìn)行必要修改,并保存此菜單欄。當(dāng)使用繼承方式創(chuàng)建菜單時(shí),能夠?qū)^承得到菜單執(zhí)行下面操作:添加菜單項(xiàng)、插入菜單項(xiàng)、修改已有菜單項(xiàng)、覆蓋繼承腳本和為菜單申明函數(shù)、構(gòu)造、變量等。不過,不能執(zhí)行修改繼承菜單項(xiàng)次序、刪除繼承菜單項(xiàng)、在繼承菜單項(xiàng)之間插入菜單項(xiàng)、修改繼承得到菜單項(xiàng)名稱和修改繼承菜單項(xiàng)類型操作。10/10/2023113第113頁在菜單項(xiàng)間放置分割線在不一樣菜單項(xiàng)之間加入分割線,實(shí)現(xiàn)了不一樣類型和功能菜單項(xiàng)分類排放,方便了顧客使用。在菜單項(xiàng)間放置分割線辦法為:在需要放置分隔地方添加一種菜單項(xiàng)。在空白文本框中輸入一種短橫線“-”,按下回車鍵,這樣就在菜單項(xiàng)間放置了一種分割線。10/10/2023114第114頁復(fù)制菜單項(xiàng)對(duì)于要?jiǎng)?chuàng)建菜單項(xiàng)和已存在菜單項(xiàng)基本構(gòu)造差不多情況下。通過復(fù)制菜單項(xiàng),能夠節(jié)省大量操作,提升效率。復(fù)制菜單項(xiàng)辦法為:選擇要復(fù)制菜單項(xiàng)和子菜單項(xiàng),然后右鍵單擊,在彈出菜單中選擇“Duplicate”命令,或者按下Ctrl+T鍵,則復(fù)制菜單項(xiàng)將在所選擇菜單項(xiàng)背面同一級(jí)上顯示,且名稱相同,修改復(fù)制菜單項(xiàng)文本,并修改復(fù)制菜單項(xiàng)屬性和腳本,然后保存即可。10/10/2023115第115頁7.4菜單屬性設(shè)置General選項(xiàng)卡Toolbar選項(xiàng)卡10/10/2023116第116頁General選項(xiàng)卡在“General”選項(xiàng)卡中能夠設(shè)置菜單名稱、外觀屬性和快捷鍵等,“General”選項(xiàng)卡中常用選項(xiàng)功能如下:Name:字符串型,用來設(shè)置目前菜單項(xiàng)名稱。LockName:布爾型,用來設(shè)置目前菜單項(xiàng)是否為鎖定狀態(tài)。鎖定狀態(tài)下不能修更名稱。Text:字符串型,用來設(shè)置菜單項(xiàng)中文本,中、英文均可。Tag:字符串型,用來存放與該菜單對(duì)象有關(guān)字符串。Visable:布爾型,用來設(shè)置該菜單項(xiàng)是否可視。Enabled:布爾型,用來設(shè)置是否允許目前菜單項(xiàng)被選中。Checked:布爾型,用來設(shè)置該菜單項(xiàng)是否已經(jīng)被選中。MenuItemType:用于設(shè)置所創(chuàng)建菜單項(xiàng)類型。ShortcutKey:字符串型,用于設(shè)置菜單項(xiàng)快捷鍵。10/10/2023117第117頁Toolbar選項(xiàng)卡在“Toolbar”選項(xiàng)卡中能夠定義在工具欄上可見工具按鈕,設(shè)置它如何在工具欄上放置、設(shè)置使用圖片、為按鈕按下和未按下狀態(tài)設(shè)置不一樣圖片。“Toolbar”選項(xiàng)卡中常用選項(xiàng)功能如下:ToolBarItemText:字符串型,設(shè)置應(yīng)用程序中與該菜單項(xiàng)相聯(lián)系工具欄按鈕顯示文本信息及提醒信息。ToolBarItemName:字符串型,設(shè)置應(yīng)用程序中與該菜單項(xiàng)相聯(lián)系工具欄按鈕未被按下時(shí)所顯示圖標(biāo)名稱。ToolBarItemDownName:字符串型,設(shè)置應(yīng)用程序中與該菜單項(xiàng)相聯(lián)系工具欄按鈕被按下時(shí)所顯示圖標(biāo)名稱。ToolBarItemVisible:布爾型,設(shè)置應(yīng)用程序中與該菜單項(xiàng)相聯(lián)系工具欄上按鈕是否可見。Columns:整型,設(shè)置在級(jí)聯(lián)工具欄中所顯示圖片列數(shù)。10/10/2023118第118頁7.5為菜單項(xiàng)編寫腳本當(dāng)設(shè)置了菜單項(xiàng)屬性后,就能夠?yàn)椴藛雾?xiàng)編寫腳本了,這能夠在菜單面板腳本視圖中進(jìn)行。假如需要編寫菜單項(xiàng)腳本,能夠雙擊該菜單項(xiàng),或者右鍵單擊該菜單項(xiàng),在彈出菜單中選擇“Script”命令,然后在打開如圖所示腳本編寫窗口中添加腳本即可。10/10/2023119第119頁在編寫菜單項(xiàng)腳本前,需要先理解菜單項(xiàng)3個(gè)事件:Clicked事件、Selected事件和Help事件。對(duì)于Clicked事件,在下列情況下被觸發(fā):鼠標(biāo)單擊菜單項(xiàng)時(shí)。使用鍵盤選中菜單項(xiàng),并按下回車鍵時(shí)。按下該菜單項(xiàng)快捷鍵時(shí)。當(dāng)包括該菜單項(xiàng)下拉菜單被打開,并按下該菜單項(xiàng)加速鍵時(shí)。當(dāng)顯示了彈出菜單時(shí)。假如要讓菜單項(xiàng)響應(yīng)鼠標(biāo)單擊事件或鍵盤事件,必須將菜單項(xiàng)“Visible”和“Enabled”屬性值都設(shè)為True。還可利用菜單Clicked事件來指定在該下拉菜單上菜單項(xiàng)屬性,包括使用、嚴(yán)禁、選中、取消選中等。10/10/2023120第120頁當(dāng)顧客選中一種菜單項(xiàng)時(shí)會(huì)觸發(fā)Selected事件。假如顧客所選中菜單對(duì)象擁有下拉菜單或級(jí)聯(lián)菜單,那么在觸發(fā)Selected事件時(shí)就會(huì)展開下拉菜單或級(jí)聯(lián)菜單。Help事件用來調(diào)用聯(lián)機(jī)幫助文獻(xiàn)。當(dāng)顧客按下F1鍵或從標(biāo)題欄拖動(dòng)上下文幫助按鈕到菜單項(xiàng)或者控件時(shí)就會(huì)觸發(fā)Help事件。10/10/2023121第121頁7.6菜單對(duì)象函數(shù)Check函數(shù)和UnCheck函數(shù)ClassName函數(shù)Enable函數(shù)與Disable函數(shù)Hide函數(shù)與Show函數(shù)GetContextService函數(shù)GetParent函數(shù)PopMenu函數(shù)PostEvent函數(shù)TriggerEvent函數(shù)TypeOf函數(shù)10/10/2023122第122頁Check函數(shù)和UnCheck函數(shù)Check函數(shù)用來設(shè)置目前菜單對(duì)象為選中狀態(tài),成功返回值為1,不然為-1。其語法構(gòu)造為:MenuName.Check()。設(shè)置菜單對(duì)象選中狀態(tài)有下列兩種辦法:使用菜單對(duì)象Check()函數(shù)來實(shí)現(xiàn),例如://設(shè)置層疊顯示菜單項(xiàng)被選中m_cade.Check()通過對(duì)菜單對(duì)象Checked屬性賦值來實(shí)現(xiàn),例如://設(shè)置層疊顯示菜單項(xiàng)被選中m_cade.Checked=TrueUnCheck函數(shù)用來設(shè)置目前菜單對(duì)象為未選中狀態(tài),其使用辦法與Check函數(shù)相同。10/10/2023123第123頁ClassName函數(shù)ClassName函數(shù)用來得到指定對(duì)象類型名稱,假如操作成功,則返回值為該對(duì)象類名。其語法構(gòu)造為:MenuName.ClassName()。當(dāng)一種對(duì)象后來繼方式申明了多種實(shí)例后,對(duì)象類名和對(duì)象名也許不再一致,而利用此函數(shù)則能夠得到其子孫對(duì)象名稱。10/10/2023124第124頁Enable函數(shù)與Disable函數(shù)Enable函數(shù)與Disable函數(shù)用來激活或嚴(yán)禁目前菜單對(duì)象,返回值為整型。當(dāng)激活函數(shù)后,顧客可選菜單;嚴(yán)禁函數(shù),菜單被嚴(yán)禁使用并顯示為灰色,菜單不可選。Enable函數(shù)與Disable函數(shù)語法構(gòu)造分別為:MenuName.Enable()與MenuName.Disable()。將菜單對(duì)象激活和嚴(yán)禁辦法有兩種。使用菜單對(duì)象Enable()與Disable()函數(shù)來實(shí)現(xiàn),例如://設(shè)置將菜單項(xiàng)激活m_cade.Enable()//設(shè)置將菜單項(xiàng)嚴(yán)禁m_cade.Disable()通過對(duì)菜單對(duì)象Enable屬性賦值來實(shí)現(xiàn),例如://設(shè)置將菜單項(xiàng)激活m_cade.Enable=True//設(shè)置將菜單項(xiàng)嚴(yán)禁m_cade.Enable=False10/10/2023125第125頁Hide函數(shù)與Show函數(shù)Hide函數(shù)與Show函數(shù)用來隱藏或顯示目前菜單對(duì)象,操作成功返回值為1,不然返回-1。Hide函數(shù)與Show函數(shù)語法構(gòu)造分別為:MenuName.Hide()與MenuName.Show()。調(diào)用Hide函數(shù)后,目前菜單對(duì)象被隱藏,也不再響應(yīng)其他事件,處于一種不可用狀態(tài)。假如要將該菜單對(duì)象顯示出來,并且處于不可用狀態(tài),能夠使用Disable函數(shù)。使用菜單對(duì)象Hide()與Show()函數(shù)來實(shí)現(xiàn),例如://設(shè)置將菜單項(xiàng)隱藏m_new.Hide()//設(shè)置將新單項(xiàng)顯示出來m_new.Show()能夠通過對(duì)菜單對(duì)象Visible屬性賦值來實(shí)現(xiàn),例如://設(shè)置將菜單項(xiàng)隱藏m_new.Visible=False//設(shè)置將新單項(xiàng)顯示出來m_new.Visible=True10/10/2023126第126頁GetContextService函數(shù)GetContextService函數(shù)用來得到指定服務(wù)器上下文特定實(shí)例引用,操作成功返回值為1,不然為-1。其語法構(gòu)造為:MenuName.GetContextService(servicename,servicereference)。它調(diào)用本函數(shù)后,能夠通過所建立引用來使用服務(wù)器對(duì)象所有屬性。10/10/2023127第127頁GetParent函數(shù)GetParent函數(shù)用來得到該菜單對(duì)象祖先對(duì)象引用,返回值為祖先對(duì)象引用(指針)。其語法構(gòu)造為:MenuName.GetParent()。GetParent函數(shù)能夠設(shè)置祖先對(duì)象屬性等。10/10/2023128第128頁P(yáng)opMenu函數(shù)PopMenu函數(shù)用來在指定位置彈出菜單,操作成功返回值為1,不然為-1。其語法構(gòu)造為:MenuName.PopMenu(xlocation,ylocation)。在使用PopMenu()函數(shù)之前,需要先調(diào)用CREATE語句來創(chuàng)建對(duì)象實(shí)例,例如://說明m_new類型菜單對(duì)象m_newMyMenu//創(chuàng)建菜單實(shí)例MyMenu=CREATEm_new//在光標(biāo)處顯示彈出菜單MyMenu.PopMenu(PointerX(),PointerY())10/10/2023129第129頁P(yáng)ostEvent函數(shù)PostEvent函數(shù)用來把由event參數(shù)指定事件放置在菜單對(duì)象事件隊(duì)列尾部等候處理,操作成功返回值為True,不然為False。其語法構(gòu)造為:MenuName.PostEvent(event{,word,long})。10/10/2023130第130頁TriggerEvent函數(shù)TriggerEvent函數(shù)用來激活由event參數(shù)指定菜單對(duì)象事件,并立即執(zhí)行該事件事件處理程序,操作成功返回值為1,不然為-1。其語法構(gòu)造為:MenuName.TriggerEvent(event{,word,long})。10/10/2023131第131頁TypeOf函數(shù)TypeOf函數(shù)用來返回該對(duì)象類型,操作成功返回值為該控件對(duì)象名。其語法構(gòu)造為:MenuName.TypeOf()。一般用TypeOf函數(shù)來確定所選中對(duì)象或所拖拽控件對(duì)象類型。10/10/2023132第132頁第9章數(shù)據(jù)窗口應(yīng)用教學(xué)目標(biāo)教學(xué)重點(diǎn)教學(xué)過程10/10/2023133第133頁教學(xué)目標(biāo)理解數(shù)據(jù)窗口對(duì)象字段屬性設(shè)置理解數(shù)據(jù)窗口中函數(shù)10/10/2023134第134頁教學(xué)重點(diǎn)數(shù)據(jù)窗口對(duì)象控件數(shù)據(jù)窗口對(duì)象字段屬性設(shè)置數(shù)據(jù)窗口中函數(shù)10/10/2023135第135頁教學(xué)過程數(shù)據(jù)窗口控件數(shù)據(jù)窗口字段屬性設(shè)置Tab鍵設(shè)置數(shù)據(jù)窗口中函數(shù)字段顯示格式10/10/2023136第136頁9.1數(shù)據(jù)窗口控件顧客在創(chuàng)建了一種數(shù)據(jù)窗口后能夠在其中添加控件,這些控件添加到數(shù)據(jù)窗口中能夠增加數(shù)據(jù)窗口某些功能。10/10/2023137第137頁9.2數(shù)據(jù)窗口字段屬性設(shè)置General選項(xiàng)卡Edit選項(xiàng)卡10/10/2023138第138頁General選項(xiàng)卡此選項(xiàng)卡是在數(shù)據(jù)窗口編輯區(qū)域中選擇一種字段后才會(huì)顯示,在“General”選項(xiàng)卡中,可通過修改Border字段邊框類型,來變化數(shù)據(jù)窗口外觀樣式。10/10/2023139第139頁Edit選項(xiàng)卡在“Edit”選項(xiàng)卡中“StyleType”下拉列表框中能夠設(shè)置數(shù)據(jù)編輯格調(diào)。文本框是默認(rèn)編輯格調(diào)。它允許顧客對(duì)數(shù)據(jù)進(jìn)行復(fù)制、剪切、粘貼等操作。在復(fù)選框編輯格調(diào)中能夠設(shè)置復(fù)選框?qū)傩?。在下拉列表?shù)據(jù)窗口編輯格調(diào)中能夠從另外一種數(shù)據(jù)窗口中引用數(shù)據(jù)。在下拉列表編輯格調(diào)中能夠預(yù)先設(shè)置數(shù)據(jù)項(xiàng)。掩碼文本框編輯格調(diào)要求了輸入和顯示數(shù)據(jù)格式,例如日期,時(shí)間等。單選按鈕編輯格調(diào)能夠進(jìn)行多項(xiàng)選擇一操作。10/10/2023140第140頁9.3Tab鍵設(shè)置在數(shù)據(jù)窗口中能夠使用Tab鍵來設(shè)置次序。單擊工具欄上按鈕,能夠設(shè)置Tab鍵次序,單擊此紅色序號(hào),為此序號(hào)命名次序,就能夠?yàn)閿?shù)據(jù)窗口設(shè)置Tab次序了,假如次序?yàn)?,則無法為Tab鍵訪問。10/10/2023141第141頁9.4數(shù)據(jù)窗口中函數(shù)日期時(shí)間函數(shù)數(shù)值計(jì)算函數(shù)字符串函數(shù)信息函數(shù)統(tǒng)計(jì)函數(shù)交叉表函數(shù)數(shù)據(jù)類型轉(zhuǎn)換與檢查函數(shù)10/10/2023142第142頁日期時(shí)間類函數(shù)日期時(shí)間類函數(shù)功能如下:Date:把日期轉(zhuǎn)換為Date類型。Time:把時(shí)間轉(zhuǎn)換為Time類型。Day:日期值。Month:月值。Year:年值。DayName:星期幾。DayNumber:一周中第幾天。DaysAfer:兩個(gè)日期之間所差天數(shù)。SecondsAfer:兩個(gè)時(shí)間之間所差秒數(shù)。Hour:小時(shí)。Minute:分鐘。Second:秒。Now:系統(tǒng)目前時(shí)間。Today:系統(tǒng)日期和時(shí)間。RelativeDate:指定日期前后天數(shù)值。RelativeTime:指定期間前后時(shí)間值。10/10/2023143第143頁第8章數(shù)據(jù)窗口教學(xué)目標(biāo)教學(xué)重點(diǎn)教學(xué)過程10/10/2023144第144頁教學(xué)目標(biāo)理解數(shù)據(jù)窗口能夠創(chuàng)建一種簡單數(shù)據(jù)窗口10/10/2023145第145頁教學(xué)重點(diǎn)數(shù)據(jù)窗口顯示格調(diào)數(shù)據(jù)窗口數(shù)據(jù)源數(shù)據(jù)窗口對(duì)象10/10/2023146第146頁教學(xué)過程數(shù)據(jù)窗口顯示格調(diào)數(shù)據(jù)窗口數(shù)據(jù)源數(shù)據(jù)窗口視圖數(shù)據(jù)窗口對(duì)象屬性操作數(shù)據(jù)窗口對(duì)象10/10/2023147第147頁8.1數(shù)據(jù)窗口顯示格調(diào)在PowerBuilder中,數(shù)據(jù)窗口有11種不一樣顯示格調(diào),這11種格調(diào)能夠以不一樣樣式來體現(xiàn)數(shù)據(jù)。在創(chuàng)建數(shù)據(jù)窗口對(duì)象時(shí),能夠在數(shù)據(jù)窗口顯示樣式對(duì)話框中選擇需要樣式。通過選擇顯示樣式和設(shè)置數(shù)據(jù)窗口對(duì)象及其屬性,能夠方便構(gòu)建出適合與顧客交互顯示界面。10/10/2023148第148頁Tabular(列表格調(diào))在列表格調(diào)中,數(shù)據(jù)按列排列在數(shù)據(jù)窗口中,標(biāo)題在每列上方。每頁顯示數(shù)據(jù)行數(shù)取決于數(shù)據(jù)窗口大小,并且支持運(yùn)行時(shí)由顧客調(diào)整各列位置功能。列表格調(diào)數(shù)據(jù)窗口常用于輸入數(shù)據(jù)或生成報(bào)表。10/10/2023149第149頁Freeform(自由格調(diào))自由格調(diào)數(shù)據(jù)窗口使用比較靈活,顧客能夠根據(jù)需要自由地調(diào)整字段、選項(xiàng)卡(在所有字段前面都加有字段標(biāo)題,并以垂直方式排列在數(shù)據(jù)窗口中)以及其他對(duì)象位置。自由格調(diào)數(shù)據(jù)窗口一頁每次只顯示一行數(shù)據(jù),常用于單統(tǒng)計(jì)輸入。10/10/2023150第150頁Grid(網(wǎng)格格調(diào))網(wǎng)格格調(diào)數(shù)據(jù)窗口使用網(wǎng)格來分割數(shù)據(jù)行和列,每一種數(shù)據(jù)在一種網(wǎng)格中,運(yùn)行時(shí)能夠通過拖拽來變化網(wǎng)格寬度,也能調(diào)整列左右位置。不過在設(shè)計(jì)數(shù)據(jù)窗口對(duì)象時(shí),不能移動(dòng)列左右次序。網(wǎng)格格調(diào)數(shù)據(jù)窗口既能夠用于數(shù)據(jù)輸入,又能作為報(bào)表進(jìn)行輸出。10/10/2023151第151頁Label(標(biāo)簽格調(diào))標(biāo)簽格調(diào)數(shù)據(jù)窗口以標(biāo)簽形式顯示數(shù)據(jù),每頁帶有幾個(gè)標(biāo)簽,能夠指定標(biāo)簽型號(hào)和大小。它經(jīng)常用于制作多種能夠打印標(biāo)簽,例如設(shè)備資料卡片,或者用于郵件。10/10/2023152第152頁Crosstab(交叉列表格調(diào))交叉列表格調(diào)數(shù)據(jù)窗口帶有網(wǎng)格,此網(wǎng)格能夠用于顯示和編輯數(shù)據(jù),它支持按行/列分析數(shù)據(jù)。交叉列表格調(diào)數(shù)據(jù)窗口主要用于數(shù)據(jù)統(tǒng)計(jì)匯總。10/10/2023153第153頁Graph(統(tǒng)計(jì)圖格調(diào))統(tǒng)計(jì)圖格調(diào)數(shù)據(jù)窗口以統(tǒng)計(jì)圖方式顯示數(shù)據(jù)庫數(shù)據(jù),能夠顯示為面積圖、條形圖、餅圖、柱形圖、堆積圖等。統(tǒng)計(jì)圖格調(diào)在Web數(shù)據(jù)窗口中不支持。10/10/2023154第154頁Group(分組格調(diào))分組格調(diào)數(shù)據(jù)窗口能夠?qū)?shù)據(jù)進(jìn)行分組顯示或?qū)?shù)據(jù)進(jìn)行統(tǒng)計(jì),每個(gè)組能夠帶有計(jì)算統(tǒng)計(jì)值統(tǒng)計(jì)域,分組數(shù)據(jù)窗口一般用于報(bào)表中。另外,也能夠把分組格調(diào)當(dāng)作是帶有分組特性列表格調(diào)。10/10/2023155第155頁N-UP(分欄格調(diào))分欄格調(diào)數(shù)據(jù)窗口能夠在一行中顯示多條數(shù)據(jù),顧客能夠自己設(shè)置數(shù)據(jù)條數(shù),它能夠用于數(shù)據(jù)對(duì)比操作,例如每七天里每天數(shù)據(jù)對(duì)比。10/10/2023156第156頁Composite(復(fù)合格調(diào))復(fù)合格調(diào)數(shù)據(jù)窗口是通過特殊方式將多種不一樣格調(diào)數(shù)據(jù)窗口組合在一起,形成一種更復(fù)雜數(shù)據(jù)窗口。由于復(fù)合格調(diào)數(shù)據(jù)窗口是對(duì)數(shù)據(jù)窗口組合,因此沒有數(shù)據(jù)源。Web數(shù)據(jù)窗口中也不支持復(fù)合格調(diào)。10/10/2023157第157頁OLE2.0(OLE格調(diào))OLE格調(diào)數(shù)據(jù)窗口包括一種OLE對(duì)象,窗口內(nèi)容和效果取決于選擇OLE對(duì)象。OLE格調(diào)數(shù)據(jù)窗口既能顯示非數(shù)據(jù)庫數(shù)據(jù),如Word文檔,也能夠顯示數(shù)據(jù)庫中BLOB列(二進(jìn)制大對(duì)象)。10/10/2023158第158頁RichText(多文本格調(diào))多文本格調(diào)數(shù)據(jù)窗口使用RTF格式顯示和編輯數(shù)據(jù),并能夠?qū)?shù)據(jù)庫中數(shù)據(jù)插入到多文本文檔中。一般用于顯示和編輯比較多文本信息。另外,Web數(shù)據(jù)窗口、Sybase數(shù)據(jù)窗口、ActiveX數(shù)據(jù)窗口和Web控件不支持多文本格調(diào)數(shù)據(jù)窗口。10/10/2023159第159頁8.2數(shù)據(jù)窗口數(shù)據(jù)源當(dāng)選擇了數(shù)據(jù)窗口顯示樣式后,就需要定義數(shù)據(jù)窗口數(shù)據(jù)源了,數(shù)據(jù)窗口能夠通過數(shù)據(jù)源直接連接到數(shù)據(jù)庫。PowerBuilder提供了5種數(shù)據(jù)源,包括QuickSelect(迅速選擇)數(shù)據(jù)源、SQLSelect(SQL選擇)數(shù)據(jù)源、Query(查詢對(duì)象)數(shù)據(jù)源、External數(shù)據(jù)源、StoredProcedure(存放過程)數(shù)據(jù)源。單擊工具欄上“New”按鈕,打開“New”對(duì)話框。然后選擇“DataWindow”選項(xiàng)卡,此選項(xiàng)卡中列舉了11種顯示格調(diào)數(shù)據(jù)窗口,選擇一種格調(diào)后,單擊“OK”按鈕,打開“ChooseDataSourceforGridDataWindow”對(duì)話框。在此對(duì)話框中列舉了5種數(shù)據(jù)源。10/10/2023160第160頁QuickSelect數(shù)據(jù)源QuickSelect數(shù)據(jù)源是最簡單一種數(shù)據(jù)源,它允許開發(fā)人員從一種表或與該表有外鍵關(guān)聯(lián)表中選擇一種或多種
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 餐廳食品安全知識(shí)培訓(xùn)課件
- 除塵器著火培訓(xùn)課件
- 陳列開季培訓(xùn)課件
- 阿里管理賦能培訓(xùn)課件
- 防爆防燃防火安全知識(shí)培訓(xùn)課件
- 防火安全知識(shí)培訓(xùn)
- 防卷入防擠壓安全培訓(xùn)課件
- 閥門基本知識(shí)課件
- 《內(nèi)科護(hù)理》課件-第4章 第03節(jié) 消化性潰瘍病人的護(hù)理
- 口腔科拔牙后護(hù)理流程
- 2026長治日?qǐng)?bào)社工作人員招聘勞務(wù)派遣人員5人參考題庫完美版
- 假體豐胸培訓(xùn)課件
- 中建八局項(xiàng)目如何落實(shí)鋼筋精細(xì)化管理
- 婚外賠償協(xié)議書
- 血小板減少紫癜課件
- 安徽省江南十校2025-2026學(xué)年高一上學(xué)期12月聯(lián)考生物(含答案)
- 2025年大學(xué)公共管理(公共管理學(xué))試題及答案
- 雨課堂學(xué)堂在線學(xué)堂云《藥物信息學(xué)(山東大學(xué) )》單元測試考核答案
- 鋼結(jié)構(gòu)波形梁護(hù)欄技術(shù)說明書
- 新能源車電池性能檢測報(bào)告范本
- 膽囊癌教學(xué)課件
評(píng)論
0/150
提交評(píng)論