版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
第1章PowerBuilder10.0概述教學(xué)目標(biāo)教學(xué)重點教學(xué)過程4/22/20231第2章PowerBuilder10.0編程基礎(chǔ)教學(xué)目標(biāo)教學(xué)重點教學(xué)過程4/22/20232教學(xué)目標(biāo)熟悉和掌握PowerBuilder10.0的基本語法規(guī)則對PowerBuilder10.0有初步的認(rèn)識和了解,并能夠編寫一些簡單的小程序4/22/20233教學(xué)重點標(biāo)識符命名規(guī)則注釋語句基本控制語句函數(shù)和結(jié)構(gòu)4/22/20234教學(xué)過程語言特點PowerScript基礎(chǔ)語句控制語句系統(tǒng)函數(shù)自定義函數(shù)函數(shù)的重載和超越使用外部函數(shù)結(jié)構(gòu)4/22/202352.1語言特點PowerScript語言的語法和組織結(jié)構(gòu)與傳統(tǒng)的Basic相似,但是它格式更自由,在編寫程序代碼時,編譯器忽略它的空格、縮進、空行等。PowerScript語言不僅支持標(biāo)準(zhǔn)的SQL語句,而且還提供了一套完整的嵌入式SQL語句,大大增強了程序操作和訪問數(shù)據(jù)庫的能力。PowerScript語言不僅支持常規(guī)的數(shù)據(jù)類型,同時也支持用于處理多媒體的二進制對象數(shù)據(jù)。4/22/202362.2PowerScript基礎(chǔ)語句PowerScript語言基礎(chǔ)做簡單介紹,包括標(biāo)識符、保留字、注釋和代詞、數(shù)據(jù)類型、變量和常量、數(shù)組、運算符和表達式等。讀者可以與其他程序語言的相關(guān)知識相對比,以加深對該語言的理解。4/22/20237標(biāo)識符標(biāo)識符是程序中用來代表變量、標(biāo)號、函數(shù)、窗口、菜單、控件及對象等名稱的符號。在PowerBuilder中標(biāo)識符的命名必須遵循以下命名規(guī)則:必須以字母和下劃線開頭。保留字不能作為標(biāo)識符。除了首字母其余字符可以是字母、數(shù)字以及下述特殊符號:下劃線(_)、連字符(.)、美元符號($)、和百分號(%)。最大有效字符長度為40,中間不能出現(xiàn)空格或指定字符以外的其他字符。標(biāo)識符不區(qū)分大小寫,如Part1、PART1、part1是同一個標(biāo)識符。4/22/20238保留字保留字是PowerBuilder語言中具有特殊用途的一組單詞,不能把保留字作為標(biāo)識符使用,否則PowerBuilder將會給出編譯錯誤。保留字同標(biāo)識符一樣,不區(qū)分大小寫,但在程序中一般把保留字書寫為大寫形式。4/22/20239注釋注釋是在程序中用來說明某些語句的作用的文本,或者是程序開發(fā)者在程序中暫時屏蔽的代碼段。在程序中,它是不會被編譯執(zhí)行的。行注釋用來對單行語句進行注釋,它可以是一整行。行注釋以雙斜線“//”開始,其后書寫注釋內(nèi)容。如:num=num1*23塊注釋既可以注釋單獨一行,也可以注釋一段或連續(xù)幾段。塊注釋以“/*”開頭,以“*/”結(jié)尾,中間為注釋內(nèi)容。如:num=num1+num24/22/202310代詞PowerBuilder的代詞用于指代特定的對象或控件。使用代詞可以避免因?qū)ο蠡蚩丶恍薷牡惹闆r而使引用出錯。主要有以下三個代詞:This:在為一個窗口、自定義用戶對象、菜單、應(yīng)用對象或控件編寫腳本時,This表示正在處理的對象和控件本身。Super:在編寫繼承的對象或者控件代碼時,有兩種方式可供選擇,一種是直接使用祖先對象的名稱;一種是使用Super,用于調(diào)用祖先對象中的函數(shù),但是不能用于調(diào)用與祖先窗口控件相關(guān)的腳本,只能在祖先的直接后代的函數(shù)和事件中使用Super,否則會編譯出錯。Parent:用于窗口中的控件、自定義用戶對象的控件和菜單編寫腳本,指示包含控件的窗口、自定義用戶對象和當(dāng)前菜單的上層菜單項。4/22/202311數(shù)據(jù)類型數(shù)據(jù)類型是編程語言中的一個重要概念,它表示數(shù)據(jù)的特點。在PowerScript語言中共有4種數(shù)據(jù)類型,它們分別是:標(biāo)準(zhǔn)數(shù)據(jù)類型、Any數(shù)據(jù)類型、系統(tǒng)對象數(shù)據(jù)類型以及枚舉數(shù)據(jù)類型。4/22/202312標(biāo)準(zhǔn)數(shù)據(jù)類型標(biāo)準(zhǔn)數(shù)據(jù)類型包括整型(Integer或Int)、字符型(Character或Char)、字符串型(String)、布爾型(Boolean)、日期型(Date)等,可以用這些數(shù)據(jù)類型聲明變量、常量或數(shù)組中。4/22/202313系統(tǒng)對象數(shù)據(jù)類型系統(tǒng)對象數(shù)據(jù)類型是PowerScript語言中比較特殊的數(shù)據(jù)類型。在PowerBuilder應(yīng)用程序中,所有用戶用到的系統(tǒng)對象,例如窗口、菜單、按鈕、列表框、圖形等,都被認(rèn)為是系統(tǒng)對象數(shù)據(jù)類型。下面的代碼聲明了菜單和窗口變量。4/22/202314Any數(shù)據(jù)類型Any數(shù)據(jù)類型是一種可以變化的數(shù)據(jù)類型,可以用來存儲任何類型的數(shù)據(jù),包括標(biāo)準(zhǔn)數(shù)據(jù)類型、對象、結(jié)構(gòu)或矩陣在內(nèi)的任何指定的數(shù)據(jù)類型。一個Any數(shù)據(jù)類型的變量類型并不是固定的,它取決于賦值變量的數(shù)據(jù)類型。但是當(dāng)把一個Any數(shù)據(jù)類型的變量賦值給另一變量時,必須要明確該Any變量的實際數(shù)據(jù)類型,否則就有可能發(fā)生數(shù)據(jù)類型不匹配的錯誤。4/22/202315枚舉數(shù)據(jù)類型枚舉數(shù)據(jù)類型是PowerScript語言中的一種特殊的數(shù)據(jù)類型。開發(fā)人員可以使用兩種方式使用枚舉數(shù)據(jù)類型:作為函數(shù)的參數(shù)和指定一個對象或控件的屬性。枚舉數(shù)據(jù)類型的變量能夠被賦上固定值,并以感嘆號(!)結(jié)尾。例如,BackColor是枚舉類型,用來指定該單行編輯框邊框的顏色。它的有效取值為:Yellow!(黃色)、Green!(綠色)、Black!(黑色)、Red!(紅色)。指定一個單行編輯框的sle_1中所顯示的邊框顏色為“紅色”的代碼如下:sle_1.BackColor=Red!4/22/202316變量與常量變量就是在應(yīng)用程序的使用中可以改變其自身值的數(shù)據(jù)標(biāo)識。在PowerBuilder中,根據(jù)作用范圍變量可以分為全局變量、實例變量、共享變量和局部變量4種。全局變量(Global):它是獨立于應(yīng)用程序中的其他對象,在整個應(yīng)用程序中都可以訪問到的變量。實例變量(Instance):它屬于單獨的一個對象,是對象的一個屬性。共享變量(Shared):它屬于一個對象的定義,可以被這個對象的所有實例所共享。共享變量在對象關(guān)閉和再次打開的時候仍然保持它自己的值。局部變量(Local):它是一個臨時變量,存活范圍僅在定義它的腳本程序中。腳本程序運行完畢,變量即被銷毀。與變量不同的是,常量在聲明之后是不會再改變的,試圖對它進行二次賦值,會引發(fā)編譯錯誤。4/22/202317數(shù)組數(shù)組是一系列有相同數(shù)據(jù)類型的有序數(shù)據(jù)的集合。數(shù)組中的所有元素都共用一個變量名,通過下標(biāo)可以訪問數(shù)組中的每一個元素。要聲明一個數(shù)組只要在變量名后加上方括號即可。對于固定數(shù)組,還可以在方括號中指定數(shù)組的維數(shù)。如果聲明數(shù)組時括號中沒有指定維數(shù),則此數(shù)組是變長數(shù)組,在運行時可以根據(jù)需要調(diào)整數(shù)組的大小。4/22/202318運算符PowerScript中,運算符就是連接數(shù)據(jù)構(gòu)成表達式,并完成一定運算的符號。有4大類運算符:算術(shù)運算符、關(guān)系運算符、連接運算符和邏輯運算符。算術(shù)運算符是對數(shù)字?jǐn)?shù)據(jù)進行運算的。關(guān)系運算符用來比較兩個或者多個操作數(shù),比較的結(jié)果為以下3個值之一:TRUE、FALSE、NULL。關(guān)系運算符可以用于所有數(shù)據(jù)類型的比較。邏輯運算符多用于比較判斷語句中用于構(gòu)建結(jié)果為TRUE或FALSE的Boolean表達式。連接運算符,用于把兩個或者多個String型或Blob型的變量連接到一起,形成一個新的字符串的操作,PowerScript語言用符號“+”表示連接字符串的操作。4/22/202319表達式表達式是由運算符和操作數(shù)組成的、符合PowerScript語法規(guī)則的式子。運算對象可以是PowerScript語言中的任何數(shù)據(jù)類型。在表達式中,必須使用與運算對象的數(shù)據(jù)類型相兼容的運算符,如數(shù)值型數(shù)據(jù)可以使用乘或除作為運算符。具有兩種類型的表達式,它們分別是數(shù)字類型表達式和字符(串)類型表達式。4/22/2023202.3控制語句條件判斷語句循環(huán)語句賦值語句返回和中止語句4/22/202321條件判斷語句條件判斷語句是根據(jù)判斷條件不同,執(zhí)行不同語句的一組語句。在PowerBuilder中有兩種條件判斷語句:If語句和Choose…Case語句。If語句是針對程序中某一給定條件進行判斷,根據(jù)判斷的結(jié)果執(zhí)行不同操作的一組語句。它主要有兩種結(jié)構(gòu):If…Then結(jié)構(gòu)和If…Then…Else結(jié)構(gòu)。Choose…Case語句是根據(jù)判斷表達式的值來選擇不同的Case塊語句執(zhí)行。Choose…Case語句與If…Then語句都屬于條件判斷語句,可以交換使用實現(xiàn)同樣的功能,但Choose…Case提供了比If…Then語句更多的分支供用戶篩選,增強了程序的可讀性,提高了運行效率。4/22/202322循環(huán)語句循環(huán)是重復(fù)執(zhí)行某一動作的語言結(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)的時候,規(guī)定了循環(huán)執(zhí)行的次數(shù)。Do...Loop語句是一個通用的循環(huán)語句。用來控制當(dāng)所給條件滿足時或直到所給條件滿足時所要執(zhí)行的代碼段。Goto語句是一條無條件跳轉(zhuǎn)語句,只要是遇到Goto語句,就強制控制程序直接跳轉(zhuǎn)至Goto語句上相應(yīng)的標(biāo)號語句上。在Do…Loop語句或For...Next語句循環(huán)體中,遇到Continue語句后,將不執(zhí)行Continue語句后循環(huán)結(jié)束前的所有語句,而直接開始執(zhí)行下一輪的循環(huán)。Exit語句只能用于Do...Loop語句或For...Next語句循環(huán)體中,可以直接終止并跳出當(dāng)前循環(huán)體。4/22/202323賦值語句賦值語句是用來對變量或?qū)ο髮傩灾付ㄖ档恼Z句。4/22/202324返回和中止語句返回和中止語句有Return、Halt語句兩種。Return語句用于從腳本中返回調(diào)用程序。Halt語句用于中止應(yīng)用程序的執(zhí)行。4/22/2023252.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ù)等。4/22/2023262.5自定義函數(shù)在PowerBuilder中除了有豐富的內(nèi)置函數(shù)供使用外,還可以根據(jù)所實現(xiàn)的功能定義自己的函數(shù)。在PowerScript中的自定義函數(shù)分為兩種類型:全局函數(shù)和對象級函數(shù)。4/22/2023272.6函數(shù)的調(diào)用在窗口中,可以手動輸入函數(shù)名來調(diào)用函數(shù),也可以通過粘貼操作來調(diào)用用戶的自定義函數(shù)。在菜單欄中選擇“Edit”︱“PasteSpecial”︱“Function”命令,并從“Function”子菜單中選擇內(nèi)部函數(shù)、用戶自定義函數(shù)或外部函數(shù)。選擇使用AutoScript功能并在彈出的列表框中雙擊函數(shù)名,然后在Browser中選擇函數(shù)并將其粘貼至腳本中即可。4/22/2023282.7函數(shù)的重載和超越繼承對象函數(shù)時可以選擇重載(overloading)或超越(overriding)函數(shù)定義,都是由函數(shù)名和參數(shù)列表決定函數(shù)是重載還是超越已有的函數(shù)。函數(shù)的重載,就是相同的函數(shù)名對應(yīng)參數(shù)的幾種不同表現(xiàn)形式,它可以使同一函數(shù)名的函數(shù)體有不同的操作內(nèi)涵,從而達到程序的多態(tài)性。函數(shù)的重載必須是在同一個作用域下的。函數(shù)的超越是指在后代對象中定義了一個與祖先對象中所包含的函數(shù)完全相同的函數(shù),它們不僅擁有相同的函數(shù)名稱,而且還擁有同樣的參數(shù)列表和返回值。在這種情況下,在后代對象中調(diào)用該函數(shù)時,該后代對象中的函數(shù)的優(yōu)先級永遠(yuǎn)要比其祖先對象中的相同函數(shù)的優(yōu)先級要高。在后代對象中,除非使用全局函數(shù)作用域時調(diào)用祖先的該函數(shù),否則一直調(diào)用后代的該函數(shù)。4/22/2023292.8使用外部函數(shù)在使用PowerBuilder的編程過程中,用戶除了可以使用系統(tǒng)提供的函數(shù)和用戶自定義函數(shù)之外,還可以使用PowerBuilder平臺之外的函數(shù),即外部函數(shù)。在PowerBuilder10.0中所支持的外部函數(shù)范圍非常廣泛,它可以是由PowerScript語言之外的任何語言寫出的,支持32位平臺標(biāo)準(zhǔn)調(diào)用序列的函數(shù),比如動態(tài)鏈接庫(DLL)中的函數(shù)、WindowsAPI以及其他的工具軟件包中所提供的函數(shù)等。4/22/2023302.9結(jié)構(gòu)結(jié)構(gòu)是一種數(shù)據(jù)類型,是由一個或多個相互關(guān)聯(lián)的變量通過共用一個名稱所組合成的有機整體。這些相互關(guān)聯(lián)的變量的數(shù)據(jù)類型組織形式靈活多樣,不受任何限制。用戶可以把相互關(guān)聯(lián)的對象通過一個結(jié)構(gòu)集合起來操作。PowerScript語言中的結(jié)構(gòu)分為兩種類型:全局結(jié)構(gòu)和對象級結(jié)構(gòu)。全局結(jié)構(gòu)不與任何對象關(guān)聯(lián),并且能夠在整個應(yīng)用程序中使用。對象級結(jié)構(gòu)必須與具體對象相關(guān)聯(lián)。定義一個結(jié)構(gòu)也就定義了一個新的數(shù)據(jù)類型。只要該結(jié)構(gòu)的定義保存在應(yīng)用庫中,用戶就可以在腳本和用戶自定義函數(shù)中使用該結(jié)構(gòu)。用戶也可以在用戶自定義函數(shù)中,將結(jié)構(gòu)作為參數(shù)再函數(shù)中傳遞。在定義函數(shù)時,將結(jié)構(gòu)定義為函數(shù)的參數(shù)。同樣用戶自定義函數(shù)的返回值也可以是結(jié)構(gòu)。對于外部函數(shù),也可以將結(jié)構(gòu)作為函數(shù)的參數(shù)。4/22/202331第3章數(shù)據(jù)庫管理教學(xué)目標(biāo)教學(xué)重點教學(xué)過程4/22/202332教學(xué)目標(biāo)學(xué)習(xí)和掌握數(shù)據(jù)庫管理的基礎(chǔ)知識能運用PowerBuilder10.0中的工具對數(shù)據(jù)庫進行操作能在程序中連接數(shù)據(jù)庫4/22/202333教學(xué)重點建立數(shù)據(jù)源對數(shù)據(jù)庫進行管理操作數(shù)據(jù)庫4/22/202334教學(xué)過程數(shù)據(jù)源的創(chuàng)建與設(shè)置數(shù)據(jù)庫面板數(shù)據(jù)庫管理連接數(shù)據(jù)庫操作數(shù)據(jù)表操作表中的數(shù)據(jù)4/22/2023353.1數(shù)據(jù)源創(chuàng)建ODBC數(shù)據(jù)源設(shè)置ODBC數(shù)據(jù)源刪除ODBC數(shù)據(jù)源4/22/202336創(chuàng)建ODBC數(shù)據(jù)源要實現(xiàn)通過ODBC訪問數(shù)據(jù)庫,就必須首先為數(shù)據(jù)庫建立一個ODBC數(shù)據(jù)源,這樣數(shù)據(jù)庫才能實現(xiàn)和應(yīng)用程序的交互。而使用ODBC數(shù)據(jù)源可以訪問來自多種數(shù)據(jù)庫管理系統(tǒng)的數(shù)據(jù),所以必須為系統(tǒng)添加驅(qū)動程序的軟件組件。且ODBC數(shù)據(jù)源會自動添加并配置這些驅(qū)動程序。4/22/202337設(shè)置ODBC數(shù)據(jù)源在創(chuàng)建ODBC數(shù)據(jù)源后,有時還需要對創(chuàng)建的數(shù)據(jù)源的配置進行修改,以便改變一些參數(shù)。例如設(shè)置登錄名稱和密碼、受損壞的數(shù)據(jù)庫文件、對數(shù)據(jù)庫進行壓縮操作、設(shè)置驅(qū)動程序的頁超時、緩沖區(qū)大小等。4/22/202338刪除ODBC數(shù)據(jù)源在“用戶DSN”選項卡中,選擇要刪除的數(shù)據(jù)源后,單擊“刪除”按鈕就會彈出“ODBC管理器”對話框,在此對話框中單擊“是(Y)”按鈕就可以完成數(shù)據(jù)源的刪除。4/22/2023393.2數(shù)據(jù)庫面板數(shù)據(jù)庫面板在PowerBuilder10.0中起到了非常重要的作用,數(shù)據(jù)庫的很多操作都可以通過數(shù)據(jù)庫面板來完成。可以通過選擇“Tools”︱“DatabasePainter”命令來調(diào)用數(shù)據(jù)庫面板,如下圖所示。在數(shù)據(jù)庫面板窗體中,包括了很多的視圖,這些視圖的功能如下所示:Objects視圖。此視圖列出了數(shù)據(jù)庫概要和結(jié)構(gòu)信息,對于活動的數(shù)據(jù)庫連接,還列出了同數(shù)據(jù)庫關(guān)聯(lián)的對象,顯示的信息由數(shù)據(jù)庫和用戶權(quán)限決定。ObjectLayout視圖。用于顯示表的圖形外觀。Columns視圖。用于創(chuàng)建或者修改數(shù)據(jù)表的列。ISQLSession視圖。用于建立、執(zhí)行和解釋SQL語句。ObjectDetails視圖。用于顯示對象的屬性,有些對象的屬性是只讀的,有些對象的屬性是可修改的。Results視圖。用網(wǎng)格、表或自由表單形式顯示數(shù)據(jù)。ActivityLog視圖。顯示執(zhí)行動作的SQL定義。ExtendedAttributes視圖。列出了連接數(shù)據(jù)庫里定義的顯示格式、編輯風(fēng)格以及有效性規(guī)則。4/22/2023404/22/2023413.3數(shù)據(jù)庫管理數(shù)據(jù)庫是數(shù)據(jù)表、索引、視圖及數(shù)據(jù)的集合。數(shù)據(jù)庫的管理主要也就是對數(shù)據(jù)表、索引、視圖和數(shù)據(jù)的管理。其中,數(shù)據(jù)庫的創(chuàng)建和刪除可以通過SybaseCentral來完成,SybaseCentral提供了一個管理ASA數(shù)據(jù)庫的圖形界面。4/22/2023423.4連接數(shù)據(jù)庫PowerBuilder在訪問數(shù)據(jù)庫之前,必須首先與要操作的數(shù)據(jù)庫建立連接。利用數(shù)據(jù)庫面板可以很容易地連接數(shù)據(jù)庫,下面以O(shè)DBC接口為例,講解連接步驟。4/22/202343啟動PowerBuilder,單擊DBProfile圖標(biāo),打開“DatabaseProfiles”對話框。4/22/202344在ODBODBC節(jié)點上單擊鼠標(biāo)右鍵,在彈出的快捷菜單上選擇“NewProfile”命令,打開“DatabaseProfileSetup-ODBC”對話框。選擇“Connection”選項卡,在“ProfileName”文本框中輸入名稱,在“DataSource”下拉列表框中選擇前面設(shè)置的ODBC數(shù)據(jù)源,在“UserID”文本框中輸入用戶名,在“Password”文本框中輸入密碼。
4/22/2023454/22/202346選擇“Preview”選項卡,單擊此選項卡上的“TestConnection”按鈕,測試數(shù)據(jù)庫的連接配置。如果能夠成功地連接數(shù)據(jù)庫,則顯示對話框,提示數(shù)據(jù)庫連接成功。4/22/2023473.5操作數(shù)據(jù)表創(chuàng)建表設(shè)置主鍵設(shè)置外鍵設(shè)置索引4/22/202348創(chuàng)建表數(shù)據(jù)表是存放數(shù)據(jù)的主要地方,在數(shù)據(jù)庫中作用很重要。選擇“Objects”︱“Insert”︱“Table”命令,激活Columns視圖,在此視圖中輸入相應(yīng)的列內(nèi)容。輸入完成以后保存,并輸入表名即可。4/22/202349設(shè)置主鍵主鍵的作用是為了惟一標(biāo)識數(shù)據(jù)表中的一個或多個列,它不允許為空也不允許重復(fù)。在菜單中選擇“Objects”︱“Insert”︱“PrimaryKey”命令,或者在數(shù)據(jù)表上單擊鼠標(biāo)右鍵,在彈出的快捷菜單中選擇“New”︱“PrimaryKey”命令,打開“PrimaryKey”對話框,在“PrimaryKey”文本框中輸入“id”,在“Columns”列表框中選中“id”列。設(shè)置完成后單擊工具欄上的保存按鈕保存設(shè)置,完成主鍵的定義。刪除主鍵的方法是在Objects視圖中選擇要刪除的主鍵,在該主鍵上單擊鼠標(biāo)右鍵,在彈出的快捷菜單中選擇“DropPrimarykey”命令,在打開的對話框中選擇“Yes”按鈕,完成對主鍵的刪除。4/22/202350設(shè)置外鍵外鍵的作用是與其他表中的主鍵匹配,對于一個表來說外鍵可以有多個。在菜單中選擇“Objects”︱“Insert”︱“ForeignKey”命令,打開“ForeignKey”對話框,然后在“General”選項卡中選擇要與其他表主鍵關(guān)聯(lián)的列name,然后在“ForeignKey”文本框中輸入外鍵的名稱,選擇“PrimaryKey”選項卡,在該選項卡中的“Table”下拉列表框中選擇要關(guān)聯(lián)的表admin,然后保存對外鍵的設(shè)置。刪除外鍵的方法是在Objects視圖中選擇要刪除的外鍵,在該外鍵上單擊鼠標(biāo)右鍵,在彈出的快捷菜單中選擇“DropForeignkey”命令,在打開的對話框中選擇“Yes”按鈕,完成對外鍵的刪除。4/22/202351設(shè)置索引索引是表的一個重要概念,在進行表的搜索和排序時,索引起著關(guān)鍵性的作用。索引與主鍵不同,索引既可以重復(fù)也可以為空值。選擇要建立索引的表,在菜單中選擇“Objects”︱“Insert”︱“Index”命令,打開Index視圖。在“Index:”文本框中輸入索引的名字,在“Columns”列表框中選擇sex,選中“Unique”復(fù)選框表示該列中的數(shù)據(jù)惟一,而“Ascending”復(fù)選框用于指定數(shù)據(jù)排序的順序,然后保存對索引的設(shè)置。刪除索引的方法是在Objects視圖中選擇要刪除的索引,在該索引上單擊鼠標(biāo)右鍵,在彈出的快捷菜單中選擇“DropIndex”命令,在打開的對話框中選擇“Yes”按鈕,完成對索引的刪除。4/22/2023523.6操作表中的數(shù)據(jù)在數(shù)據(jù)庫面板中除了創(chuàng)建數(shù)據(jù)表和設(shè)置主鍵、外鍵和索引以外還可以對數(shù)據(jù)表中的數(shù)據(jù)進行瀏覽、編輯和刪除。4/22/202353第4章應(yīng)用程序設(shè)計基礎(chǔ)教學(xué)目標(biāo)教學(xué)重點教學(xué)過程4/22/202354教學(xué)目標(biāo)了解PowerBuilder中應(yīng)用程序?qū)ο蟮南嚓P(guān)概念能夠利用應(yīng)用程序模板以自己定制的形式創(chuàng)建簡單的應(yīng)用程序4/22/202355教學(xué)重點應(yīng)用程序?qū)ο蠖ㄖ茟?yīng)用程序移植現(xiàn)有程序應(yīng)用程序?qū)ο蟮膶傩院褪录?/22/202356教學(xué)過程應(yīng)用程序?qū)ο蟾攀鰟?chuàng)建應(yīng)用程序設(shè)置應(yīng)用程序?qū)傩詰?yīng)用程序的事件4/22/2023574.1應(yīng)用程序?qū)ο蟾攀鰬?yīng)用程序?qū)ο笫菓?yīng)用程序的入口點,它定義了一些應(yīng)用程序級的事件、函數(shù)和屬性。每個PowerBuilder應(yīng)用程序都必須有一個,而且只能有一個應(yīng)用對象。當(dāng)用戶運行應(yīng)用程序時,應(yīng)用程序?qū)ο蟮腛pen事件將被觸發(fā),在這個事件中可以設(shè)置應(yīng)用的初始狀態(tài),也可以裝入其他對象和連接數(shù)據(jù)庫等,例如可以在這里指定首先顯示的窗口。當(dāng)用戶終止應(yīng)用程序時,應(yīng)用對象的Close時間被觸發(fā),在這個事件中可以完成必要的系統(tǒng)清理工作,例如斷開與數(shù)據(jù)庫的連接。應(yīng)用程序?qū)ο笸翱凇⒉藛?、用戶對象一樣,都存儲在PowerBuilder的PBL應(yīng)用庫中。PowerBuilder應(yīng)用程序可以說是一系列對象的集合。4/22/2023584.2創(chuàng)建應(yīng)用程序在PowerBuilder中,創(chuàng)建一個應(yīng)用程序有三種方式:自動生成應(yīng)用程序(使用應(yīng)用程序模板)、定制應(yīng)用程序和移植已有應(yīng)用程序。用戶可根據(jù)個人的需要,選擇不同的創(chuàng)建方式。自動生成應(yīng)用程序這種方法適用于初學(xué)者。用戶只需根據(jù)模板向?qū)У奶崾?,一步一步地操作即可建立一個應(yīng)用程序。定制應(yīng)用程序就是通過自己的設(shè)計來創(chuàng)建出更滿足自己的需求的程序。移植已有應(yīng)用程序就是將已經(jīng)存在的應(yīng)用程序移植到當(dāng)前的版本中。移植已有應(yīng)用程序很簡單,只需創(chuàng)建新的工作區(qū)和目標(biāo)文件,而庫文件和應(yīng)用程序?qū)ο蠖际褂迷瓉淼摹T谝浦惨延袘?yīng)用程序的時候,必須要有原應(yīng)用程序的庫文件,并且該庫文件中包含應(yīng)用程序?qū)ο蟆?/22/2023594.3設(shè)置應(yīng)用程序?qū)傩栽O(shè)置默認(rèn)字體設(shè)置應(yīng)用程序的圖標(biāo)設(shè)置默認(rèn)全局變量4/22/202360設(shè)置默認(rèn)字體在PowerBuilder中,應(yīng)用程序的4個字體屬性決定了開發(fā)應(yīng)用程序過程中經(jīng)常使用的4種字體,它們分別為:TextFont、ColumnFont、HeaderFont和LabelFont。TextFont:決定了窗口中的控件、用戶對象、數(shù)據(jù)窗口中靜態(tài)文本的默認(rèn)字體。ColumnFont:指定了數(shù)據(jù)窗口中檢索出的數(shù)據(jù)使用的默認(rèn)字體。HeaderFont:定義了列表風(fēng)格和網(wǎng)格風(fēng)格數(shù)據(jù)窗口對象中列標(biāo)題的默認(rèn)字體。LabelFont:確定了自由風(fēng)格數(shù)據(jù)窗口中列標(biāo)簽的默認(rèn)字體。4/22/202361在開發(fā)應(yīng)用程序時,根據(jù)需要先設(shè)置好這些字體,可以為以后設(shè)計其他對象時免除重復(fù)設(shè)置的操作。下面以TextFont屬性為例介紹字體的設(shè)置方法。打開一個需要設(shè)置字體的應(yīng)用程序,在應(yīng)用程序的“Properties”面板中單擊“AdditionalProperties”按鈕,打開“Application”對話框,選擇“TextFont”選項卡(如果要修改其他的字體,可打開對應(yīng)的選項卡),然后根據(jù)需要進行修改。修改的字體屬性只對修改后生成的應(yīng)用程序有效,而對修改字體前已建立的應(yīng)用程序無效。4/22/202362設(shè)置應(yīng)用程序的圖標(biāo)應(yīng)用程序圖標(biāo)是在窗體最小化時或在創(chuàng)建應(yīng)用程序快捷方式時所顯示的圖標(biāo),它的格式一般為“*.ico”??梢栽趹?yīng)用程序的“Properties”對話框中單擊“AdditionalProperties”按鈕,打開“Application”對話框,然后“Icon”選項卡中進行設(shè)置。4/22/202363設(shè)置默認(rèn)全局變量PowerBuilder10.0中提供了5個內(nèi)置的全局變量,分別為:“SQLCA”、“SQLDA”、“SQLSA”、“Error”、“Message”,它們都有默認(rèn)的類型。修改這些變量類型可以更方便應(yīng)用程序的開發(fā),例如使其直接提供中文的提示信息。要修改這些全局變量可以在應(yīng)用程序的“Properties”對話框中單擊“AdditionalProperties”按鈕,打開“Application”對話框。選擇“VariableTypes”選項卡,在相應(yīng)的文本框中輸入新的類型即可。SQLCA:事務(wù)處理類型,用于和數(shù)據(jù)庫通信。SQLDA:在動態(tài)SQL中使用。SQLSA:在動態(tài)SQL中使用。Error:在運行期間報告錯誤。Message:處理非PowerBuilder定義的消息,并且在窗口之間傳遞參數(shù)。4/22/2023644.4應(yīng)用程序的事件Open事件Close事件Idle事件SystemError事件ConnectionBegin事件ConnectionEnd事件4/22/202365Open事件應(yīng)用程序一啟動就會觸發(fā)Open事件,且只觸發(fā)一次。如果沒有為該事件添加代碼,應(yīng)用程序就不能夠調(diào)用應(yīng)用程序中的對象。否則系統(tǒng)會彈出警告對話框,提示必須對應(yīng)用程序編寫Open事件代碼。在PowerBuilder應(yīng)用程序中,Open事件應(yīng)該完成以下工作:初始化應(yīng)用程序。利用INI文件設(shè)置某些屬性,并初始化一個事務(wù)對象。連接要訪問的數(shù)據(jù)庫。查詢環(huán)境,保證運行應(yīng)用程序所需要的資源都可用。打開應(yīng)用程序主窗口進行事務(wù)處理。4/22/202366Close事件在PowerBuilder應(yīng)用程序結(jié)束時,會觸發(fā)Close事件,它也只觸發(fā)一次。通常這個事件要完成以下工作:釋放應(yīng)用程序中的對象。向INI文件中存入信息,以便下次運行時恢復(fù)狀態(tài)。關(guān)閉應(yīng)用程序中尚未關(guān)閉的文件。斷開與數(shù)據(jù)庫的連接。4/22/202367Idle事件在應(yīng)用程序長時間沒有進行操作,并且超過應(yīng)用程序指定的時間間隔時會觸發(fā)Idle事件。如果編寫了Idle事件的代碼,系統(tǒng)會在Idle事件觸發(fā)后執(zhí)行這些代碼,例如在應(yīng)用程序空閑一段時間沒有操作時,讓應(yīng)用程序自動保存或觸發(fā)系統(tǒng)的屏幕保護程序等。Idle事件的用途有以下幾個:創(chuàng)建自己獨具特色的屏幕保護程序。隱藏機密數(shù)據(jù)并強制用戶在長時間未操作應(yīng)用程序時重新輸入密碼。了解用戶是否長時間未操作應(yīng)用程序。4/22/202368SystemError事件在應(yīng)用程序操作過程中出現(xiàn)嚴(yán)重錯誤時會觸發(fā)SystemError事件,可以在此處編寫錯誤處理和可能的恢復(fù)代碼。如果用戶沒有編寫錯誤處理程序,那么PowerBuilder將彈出標(biāo)有錯誤代碼和錯誤信息的對話框。4/22/202369ConnectionBegin事件ConnectionBegin事件用于分布式PowerBuilder應(yīng)用的服務(wù)器端。當(dāng)客戶程序試圖連接到服務(wù)器程序時,將觸發(fā)ConnectionBegin事件。4/22/202370ConnectionEnd事件ConnectionEnd事件特用于分布式PowerBuilder應(yīng)用的服務(wù)器端。當(dāng)客戶程序試圖斷開與服務(wù)器程序的連接時,將會觸發(fā)ConnectionEnd事件。4/22/202371第5章窗體編程教學(xué)目標(biāo)教學(xué)重點教學(xué)過程4/22/202372教學(xué)目標(biāo)了解創(chuàng)建窗體的基本步驟了解如何添加窗體控件了解窗體屬性的設(shè)置窗體的控件調(diào)整按鈕的使用4/22/202373教學(xué)重點窗體的屬性設(shè)置窗體的方法和事件4/22/202374教學(xué)過程創(chuàng)建窗體設(shè)置窗體屬性窗體方法窗口事件4/22/2023755.1創(chuàng)建窗體主窗體子窗體彈出式窗體應(yīng)答窗體多文檔窗體多文檔微幫助窗體4/22/202376主窗體主窗體一般還可以稱為父窗體,獨立于其它任何窗體,通常作為一個應(yīng)用程序的啟動界面,可以有菜單、工具欄、最大化、最小化按鈕等。首先創(chuàng)建一個Workspace,然后再創(chuàng)建一個Application,在工具欄上單擊新建按鈕,打開New對話框,選擇PBObject選項卡,單擊Window選中圖標(biāo),然后單擊OK按鈕,在Properties窗口中,可以設(shè)置窗體類型,最后保存即可。4/22/202377子窗體子窗體是從屬于主窗體或一個彈出式窗體的窗體,它是依賴與其祖先窗口而存在的,會跟隨其祖先窗口移動,子窗體有以下特點:必須擁有一個主窗體??梢杂袠?biāo)題欄。不能有菜單欄。不能超出父窗體的范圍。子窗體的創(chuàng)建同主窗體創(chuàng)建方法一樣,只是將Properties窗口中WindowType下拉列表框的窗體類型設(shè)置為Child!選項即可。為前邊創(chuàng)建的myform主窗體創(chuàng)建一個子窗體,命名為chform,并設(shè)置子窗體的TitleBar屬性為真,BackColor屬性為Sky,運行主窗體,并打開子窗體。4/22/202378彈出式窗體彈出式窗體與主窗體不同,它是通過其他窗體打開的。彈出式窗體在打開后,焦點自動指向彈出窗體并在彈出窗口上執(zhí)行相應(yīng)的操作;只有將彈出窗口關(guān)閉后,其祖先窗口才可能重新獲得焦點。彈出式窗體具有以下特點:附屬于其它窗體。顯示在父窗體的上面。當(dāng)父窗體最小化或關(guān)閉時,彈出窗體也會隨之最小化或關(guān)閉??梢酝瑫r對父窗體和彈出式窗體進行操作。創(chuàng)建彈出式窗體和創(chuàng)建主窗體方法相同,只需要將Properties屬性窗口中的WindowType屬性設(shè)置為Popup!選項。4/22/202379應(yīng)答式窗體應(yīng)答式窗體主要用來提示用戶輸入信息,不能對其進行最大化、最小化或改變窗體大小的操作。當(dāng)用戶打開一個應(yīng)答窗體后就不能在對其他窗體進行操作,只有在關(guān)閉應(yīng)答窗體后才能繼續(xù)對其他窗體進行操作。創(chuàng)建應(yīng)答窗體和創(chuàng)建主窗體方法相同,只需要將Properties窗口中的WindowType類型選擇設(shè)置為Response!選項即可。創(chuàng)建一個應(yīng)答式窗體,命名為rsform,運行主窗體,并打開應(yīng)答式窗體。4/22/202380多文檔窗體多文檔窗體可以在一個主窗體中可以打開多個子文檔窗體,例如word程序。多文檔窗體創(chuàng)建方法和主窗體相同,只需要將Properties窗口中的WindowType下拉列表框選擇Mdi!選項即可。創(chuàng)建多文檔窗體時,必須要為它指定一個菜單,否則系統(tǒng)會彈出一個錯誤提示框。4/22/202381多文檔微幫助窗體多文檔微幫助窗體和多文檔窗體非常相似,創(chuàng)建方法同樣是將“Properties”窗口中的“WindowType”下拉列表框選擇“Mdihelp!”選項即可。關(guān)于多文檔微幫助窗體的創(chuàng)建可以參照多文檔窗體的創(chuàng)建方法。4/22/2023825.2設(shè)置窗體屬性設(shè)置普通屬性設(shè)置滾動條設(shè)置工具欄屬性設(shè)置其他屬性4/22/202383設(shè)置普通屬性窗體的普通屬性是在Properties屬性窗口中的General選項卡進行設(shè)置的,包括Title、Tag、MenuName、WindowType、BackColor等。4/22/202384設(shè)置滾動條在Properties窗口中的Scroll選項卡中,可以設(shè)置窗體的滾動條屬性。Scroll選項卡中滾動條的常用屬性選項含義如下:HscrollBar設(shè)置窗口對象中是否顯示水平滾動條。屬性值為True時顯示水平滾動條,否則為False時不顯示。VscrollBar設(shè)置窗口對象中是否顯示垂直滾動條。屬性值為True時顯示垂直滾動條,否則為False時不顯示。UnitsPerLine設(shè)置垂直滾動條的垂直滾動的單位,屬性的缺省值為0。UnitPerColumn設(shè)置水平滾動條的水平滾動的單位。屬性的缺省值為0。ColumnsPerPage設(shè)置窗體中每頁可以顯示多少列。缺省值為0。LinesPerPage設(shè)置窗體中每頁可以顯示多少行。缺省值為0。4/22/202385設(shè)置工具欄屬性在Properties窗口中的Toolbar選項卡中可以設(shè)置窗體上工具欄的屬性包括是否可見、工具欄的高度和寬度等。Toolbar選項卡中的各屬性設(shè)置項含義如下所示:ToolbarVisible設(shè)置窗口中的工具條是否顯示出來。屬性值為True時顯示,否則為False時不顯示。ToolbarAlignment設(shè)置工具條在一個MDI窗口中的顯示位置。ToolbarX設(shè)置當(dāng)工具條以窗口方式浮動顯示時工具條窗口左上角距MDI窗口左邊界的距離。用于MDI窗口。ToolbarY設(shè)置當(dāng)工具條以窗口方式浮動顯示時工具條窗口左上角距MDI窗口上邊界的距離。用于MDI窗口。ToolbarWidth設(shè)置當(dāng)工具條以窗口方式浮動顯示時工具條窗口的寬度。用于MDI窗口。ToolbarHeight設(shè)置當(dāng)工具條以窗口方式浮動顯示時工具條窗口的高度。用于MDI窗口。4/22/202386設(shè)置其他屬性在Properties窗口中的Other選項卡中可以設(shè)置窗口的一些其他屬性,包括窗體的高度、寬度、窗體的坐標(biāo)等。4/22/2023875.3窗體方法窗體對象除了有屬性外,還有方法,熟練的使用它們可以使應(yīng)用程序?qū)崿F(xiàn)個中功能以滿足需要。下面是幾個常用的方法(由于方法眾多,因此僅列舉幾個):ArrangeSheets:此方法用于排列MDI框架中的表單或圖標(biāo)。返回數(shù)據(jù)類型為整型。返回值為1成功,否則,返回值為-1失敗。ChangeMenu:用于更換與窗口相關(guān)聯(lián)的菜單。其中,參數(shù)position只適用于MDI框架類型的窗口。ClassName:用于取窗口對象的類名。返回數(shù)據(jù)類型為字符串。返回值為窗口對象的類名說明操作成功;否則,將返回空串。Hide:返回數(shù)據(jù)類型為整型.,用于隱藏窗口。如果返回值為1操作成功,否則,返回值為-1。Move:返回數(shù)據(jù)類型為整型。用于移動窗口。如果返回值為1,操作成功,否則,返回值為-1;參數(shù)是NULL,則返回NULL。4/22/2023885.4窗口事件PowerBuilder程序才用事件驅(qū)動工作方式,程序的運行沒有固定的流程,程序中的代碼也是為各種可能發(fā)生的事件編寫的,當(dāng)程序開始運行之后,它就可以接受來自系統(tǒng),用戶或者其它應(yīng)用程序觸發(fā)的事件,然后執(zhí)行相應(yīng)的事件代碼。PowerBuilder10.0中為窗體定義了很多事件,包括Open、MouseDown、Show等,當(dāng)觸發(fā)窗體的這些事件時使得應(yīng)用程序執(zhí)行相應(yīng)的程序代碼,從而實現(xiàn)應(yīng)用程序的各種功能。下面列出了接幾個常用事件。4/22/202389Activate:當(dāng)窗口被激活前,觸發(fā)該事件。Clicked:當(dāng)鼠標(biāo)單擊窗口時觸發(fā)該事件。Close:當(dāng)窗口關(guān)閉時觸發(fā)該事件。CloseQuery:當(dāng)窗口將要關(guān)閉時觸發(fā)該事件,用于判斷是否關(guān)閉該窗口。DoubleClicked:當(dāng)用戶雙擊窗口未被占用的區(qū)域時觸發(fā)該事件。DragDrop:當(dāng)一個可拖拽控制對象被放到窗口上時觸發(fā)該事件。Open:在腳本執(zhí)行了打開窗口函數(shù),但窗口還沒有顯示之前時觸發(fā)該事件。Help:當(dāng)用戶按F1鍵時,或從標(biāo)題欄拖拽幫助按鈕到菜單命令或控件時觸發(fā)該事件。Timer:在調(diào)用Timer()函數(shù)啟動定時器,設(shè)定的時間已經(jīng)過去時觸發(fā)該事件。4/22/202390第6章控件的使用教學(xué)目標(biāo)教學(xué)重點教學(xué)過程4/22/202391教學(xué)目標(biāo)了解控件的基礎(chǔ)知識熟悉這些常用控件的使用方法和屬性熟練地使用常用的控件4/22/202392教學(xué)重點常用控件的使用方法控件的屬性4/22/202393教學(xué)過程控件概述按鈕控件文本框控件列表控件進度條控件、滾動條控件和軌跡條控件圖形類控件其他控件4/22/2023946.1控件概述PowerBuilder提供了豐富的標(biāo)準(zhǔn)控件,利用這些控件,開發(fā)人員可以實現(xiàn)對窗口的設(shè)計和變成,還可以完成應(yīng)用程序開發(fā)的大多數(shù)功能。PowerBuilder為插入的控件自動命名,開發(fā)人員可以修改這些控件,以方便應(yīng)用程序的開發(fā)。另外,還可以進行控件布局、以及定義控件的快捷鍵等。4/22/202395插入控件要向一個窗口插入控件時,可以選擇“Insert”︱“Control”︱“ControlName”命令,或者在控件下拉列表框中選擇對應(yīng)的控件,如圖所示。然后在窗口中要插入控件的位置單擊即可完成控件的插入操作。當(dāng)插入控件后,可以調(diào)整它的大小、位置,定義外觀和行為,添加腳本代碼等。4/22/202396控件布局當(dāng)插入控件后,就可以在布局工具中對控件進行排列和對齊操作,PowerBuilder提供了一個網(wǎng)格(grid)用于對齊控件。對齊控件的方法為:選擇要對齊的控件,然后按住“Ctrl”鍵,并單擊需要同第一個對齊的控件。然后在菜單欄中選擇“Format”|“Align”菜單項中的命令,或者在工具欄的布局下拉列表框中選擇對應(yīng)的對齊方式。4/22/202397定義控件的快捷鍵可以為控件定義快捷鍵,使用戶可以按下“Alt+快捷鍵”來快速定位一個控件。如何定義快捷鍵依賴于控件類型是否具有顯示文本,如果沒有顯示文本,必須在控件本身中定義快捷鍵。下面介紹其中幾個控件的定義快捷鍵方法。為命令按鈕、復(fù)選框和單選按鈕定義快捷鍵的步驟為:先單擊控件,然后在其屬性視圖“General”選項卡中的“Text”文本框中,在字符前面加入“&”符號即可定義快捷鍵。4/22/2023986.2按鈕控件按鈕控件分為兩類,一類是命令按鈕控件,另一類是圖形按鈕控件。命令按鈕控件(CommandButton)用于創(chuàng)建一個按鈕,并執(zhí)行相應(yīng)的操作。例如關(guān)閉窗口時提示是否關(guān)閉該窗口。圖形按鈕控件用于接受用戶的操作命令。它可以在該按鈕上顯示圖像,圖像的格式可以為BMP、GIF、JPG和JPEG等。對于按鈕控件來說Clicked事件是非常重要的一個事件,此事件在單擊按鈕時被觸發(fā)。4/22/2023996.3文本框控件文本框控件用于輸入或者顯示文本信息。靈活運用這些控件可以增強程序界面的交互性。靜態(tài)文本框控件只用于顯示文本信息,不允許輸入和修改文本信息,但是可以在設(shè)計時或者在腳本代碼中更改要顯示的信息。一般用于顯示一些操作提示或者反饋信息。單行文本框控件用于輸入、編輯文本信息,它用于顯示較少的數(shù)據(jù)。在文本框中會有一個光標(biāo)指示控件的焦點。多行文本框控件允許輸入、顯示多行的文本信息,用于輸入比較多的文本數(shù)據(jù)。文本框掩碼控件是用來創(chuàng)建掩碼的,輸入和編輯必須與指定的掩碼格式一致。它能夠完成輸入的自動格式化,因此通常用于帶格式的輸入,例如日期等。RichText文本框控件的功能比多行文本框更強大,用于顯示帶格式的多文本編輯框。它提供了字體控制、顏色控制、查找、替換、打印預(yù)覽、打印控制等功能。4/22/20231006.4列表控件列表控件的數(shù)據(jù)可以直接從列表中選取,不需要用戶手動輸入。對于一些不需要用戶輸入的或固定的數(shù)據(jù)可以選擇列表控件。單選按鈕控件時,是在多個可選項中選擇一個,不可以多選,是用于表示“是”或“否”之類的兩種狀態(tài)的控件。例如人的性別“男”或“女”只可以選其中的一個。復(fù)選框控件特點在于,復(fù)選框控件可以一次性地選擇很多信息,例如小說分類可以選擇“玄幻”、“武俠”、“網(wǎng)游”等。列表框控件用于以列表的形式顯示數(shù)據(jù),它可以自動顯示垂直滾動條和水平滾動條。下拉列表框控件和列表框控件的作用基本相同,不過在下拉列表框控件的右邊有一個向下的箭頭。4/22/20231016.5進度條控件、滾動條控件和軌跡條控件進度條控件、滾動條控件和軌跡條控件的作用都是對位置進行指示??梢允褂眠M度條表示花費時間較長的操作的執(zhí)行過程,例如復(fù)制文件時的進度。滾動條可以調(diào)整窗口顯示的位置。軌跡條可以對離散值進行選擇操作。進度條控件包括兩種:水平進度條和垂直進度條。兩種進度條的使用方式基本相同,主要屬性也相同。滾動條控件是常見的控件之一,同進度條控件一樣也有兩種:水平滾動條和垂直滾動條。在窗口中寬度或高度不夠的時候就可以顯示水平滾動條和垂直滾動條。軌跡條控件主要用于微調(diào)指示數(shù)據(jù),例如調(diào)節(jié)音樂的音量。軌跡條控件也分兩類:水平軌跡條和垂直軌跡條。4/22/20231026.6圖形類控件圖形類控件通常用于增強界面的顯示效果,例如使用直線將窗口中的控件分隔或者用矩形控件為窗口劃分區(qū)域等。圖形類控件也可以當(dāng)作其他控件使用,例如對矩形控件編寫Clicked事件代碼后,這個矩形控件就具有了命令按鈕的功能了。直線控件在窗體的主要作用是對窗體中不同的控件進行分隔。橢圓控件在窗口中可以起到裝飾頁面的作用。矩形控件用來畫一個矩形,以分割界面或增強界面效果。用來畫一個帶有圓角的矩形,可以設(shè)置圓角矩形的線型、顏色、長、寬等。4/22/20231036.7其他控件除了上邊所介紹的控件類型的控件外,還有其他幾類控件,如Tab控件、圖形超鏈接控件、靜態(tài)超鏈接控件等。Tab控件的作用就是將其他控件分成幾個部分分別顯示,它也就是平時常用的選項卡控件。使用Tab控件可以在一個窗體里使用很多控件而互相不干擾。圖形超鏈接控件擁有圖形框的特性,并提供了訪問Internet頁面的超鏈接。靜態(tài)超鏈接控件也提供了訪問Internet頁面的超鏈接。4/22/2023104第7章菜單教學(xué)目標(biāo)教學(xué)重點教學(xué)過程4/22/2023105教學(xué)目標(biāo)了解菜單的概念能創(chuàng)建和靈活使用菜單、窗口控件搭建出美觀使用的應(yīng)用程序界面4/22/2023106教學(xué)重點菜單的分類菜單的屬性設(shè)置菜單對象的函數(shù)菜單的繼承4/22/2023107教學(xué)過程菜單概述菜單的分類創(chuàng)建菜單菜單屬性設(shè)置為菜單項編寫腳本菜單對象的函數(shù)4/22/20231087.1菜單概述菜單是操作應(yīng)用程序的一個向?qū)?,是?yīng)用程序中指令集或功能的列表,用戶通過選擇菜單項發(fā)出命令,指示程序完成所需要的任務(wù)。它是用戶進入該程序的門戶,為用戶操作程序提供了較為直觀的信息。除了子窗口和響應(yīng)窗口外,其他窗口類型都可以包含菜單。PowerBuilder的菜單也是一種對象,它具有屬性、事件和函數(shù),可以在對象腳本中動態(tài)修改。菜單項具有以下3種情況:只有菜單項名稱。選擇這種菜單項將直接完成所對應(yīng)的操作。菜單項名稱后面有小黑三角標(biāo)記。這表示選中之后會彈出一個菜單形成級聯(lián)菜單。菜單項名稱后面有省略號。這表示選擇這種菜單項將彈出一個對話框,用戶需要在對話框中做進一步操作。4/22/20231097.2菜單的分類窗口中的菜單根據(jù)所應(yīng)用的場合和表現(xiàn)形式一般被分為3種:下拉式菜單、彈出式菜單和級聯(lián)式菜單。下拉式菜單是在應(yīng)用程序頂部的菜單欄里并列的一組菜單標(biāo)題,它在應(yīng)用窗口打開時隨之顯示。在下拉式菜單中用戶可以選中所需的菜單標(biāo)題執(zhí)行相應(yīng)的操作,例如選中File菜單打開屬于該菜單標(biāo)題的下拉式菜單。彈出式菜單一般與鼠標(biāo)右鍵相對應(yīng)。彈出式菜單沒有固定的菜單欄,而是在某一個指定事件發(fā)生時才會出現(xiàn)。如果要在程序中使用彈出式菜單,需要在程序中用腳本語言來指定。下拉菜單不需要通過編寫腳本來顯示。彈出式菜單可以在程序開發(fā)時隨時指定。級聯(lián)式菜單的應(yīng)用十分廣泛,它與下拉式菜單和彈出式菜單都有著密切的聯(lián)系。如果在該下拉菜單的菜單項中還包含有其他的菜單項,這時就可以通過級聯(lián)菜單的形式給出。級聯(lián)式菜單是由該菜單項右面的小黑三角標(biāo)記導(dǎo)出的,該標(biāo)記表明此菜單項指向另外的級聯(lián)菜單4/22/20231107.3創(chuàng)建菜單利用菜單生成向?qū)Ю^承式創(chuàng)建在菜單項間放置分割線復(fù)制菜單項4/22/2023111利用菜單生成向?qū)г诔鯇W(xué)菜單的創(chuàng)建時,可以通過菜單生成向?qū)硗瓿扇康牟僮鳌_x擇“File”︱“New”命令,打開“New”對話框。然后在“PBObject”選項卡中,選擇Menu圖標(biāo)。單擊“OK”按鈕,即可打開菜單設(shè)計面板。4/22/2023112繼承式創(chuàng)建利用繼承方式生成菜單可以縮短菜單的創(chuàng)建時間,提高工作效率,增加程序的重用性。繼承方式創(chuàng)建菜單的方法為:選擇菜單欄上的“File”︱“Inherit”命令,打開“InheritfromObject”對話框,在此對話框中選擇要繼承的菜單,然后單擊“OK”按鈕,彈出“InheritFailed”對話框,警告要將繼承的菜單欄關(guān)閉,關(guān)閉了菜單欄后,就可以將此菜單欄繼承過來了。最后對此菜單欄進行必要的修改,并保存此菜單欄。當(dāng)使用繼承方式創(chuàng)建菜單時,可以對繼承得到的菜單執(zhí)行下面的操作:添加菜單項、插入菜單項、修改已有的菜單項、覆蓋繼承的腳本和為菜單聲明函數(shù)、結(jié)構(gòu)、變量等。但是,不能執(zhí)行修改繼承菜單項的順序、刪除繼承的菜單項、在繼承菜單項之間插入菜單項、修改繼承得到的菜單項的名稱和修改繼承菜單項的類型的操作。4/22/2023113在菜單項間放置分割線在不同菜單項之間加入分割線,實現(xiàn)了不同類型和功能的菜單項的分類排放,方便了用戶的使用。在菜單項間放置分割線的方法為:在需要放置分隔的地方添加一個菜單項。在空白文本框中輸入一個短橫線“-”,按下回車鍵,這樣就在菜單項間放置了一個分割線。4/22/2023114復(fù)制菜單項對于要創(chuàng)建的菜單項和已存在的菜單項的基本結(jié)構(gòu)差不多的情況下。通過復(fù)制菜單項,可以節(jié)省大量操作,提高效率。復(fù)制菜單項的方法為:選擇要復(fù)制的菜單項和子菜單項,然后右鍵單擊,在彈出的菜單中選擇“Duplicate”命令,或者按下Ctrl+T鍵,則復(fù)制的菜單項將在所選擇的菜單項的后面的同一級上顯示,且名稱相同,修改復(fù)制菜單項的文本,并修改復(fù)制菜單項的屬性和腳本,然后保存即可。4/22/20231157.4菜單屬性設(shè)置General選項卡Toolbar選項卡4/22/2023116General選項卡在“General”選項卡中可以設(shè)置菜單的名稱、外觀屬性和快捷鍵等,“General”選項卡中常用選項的功能如下:Name:字符串型,用來設(shè)置當(dāng)前菜單項的名稱。LockName:布爾型,用來設(shè)置當(dāng)前菜單項是否為鎖定狀態(tài)。鎖定狀態(tài)下不能修改名稱。Text:字符串型,用來設(shè)置菜單項中的文本,中、英文均可。Tag:字符串型,用來存儲與該菜單對象有關(guān)的字符串。Visable:布爾型,用來設(shè)置該菜單項是否可視。Enabled:布爾型,用來設(shè)置是否允許當(dāng)前菜單項被選中。Checked:布爾型,用來設(shè)置該菜單項是否已經(jīng)被選中。MenuItemType:用于設(shè)置所創(chuàng)建的菜單項的類型。ShortcutKey:字符串型,用于設(shè)置菜單項的快捷鍵。4/22/2023117Toolbar選項卡在“Toolbar”選項卡中可以定義在工具欄上可見的工具按鈕,設(shè)置它如何在工具欄上放置、設(shè)置使用的圖片、為按鈕的按下和未按下狀態(tài)設(shè)置不同的圖片?!癟oolbar”選項卡中常用選項的功能如下:ToolBarItemText:字符串型,設(shè)置應(yīng)用程序中與該菜單項相聯(lián)系的工具欄按鈕的顯示文本信息及提示信息。ToolBarItemName:字符串型,設(shè)置應(yīng)用程序中與該菜單項相聯(lián)系的工具欄按鈕未被按下時所顯示的圖標(biāo)名稱。ToolBarItemDownName:字符串型,設(shè)置應(yīng)用程序中與該菜單項相聯(lián)系的工具欄按鈕被按下時所顯示的圖標(biāo)名稱。ToolBarItemVisible:布爾型,設(shè)置應(yīng)用程序中與該菜單項相聯(lián)系的工具欄上的按鈕是否可見。Columns:整型,設(shè)置在級聯(lián)工具欄中所顯示的圖片的列數(shù)。4/22/20231187.5為菜單項編寫腳本當(dāng)設(shè)置了菜單項的屬性后,就可以為菜單項編寫腳本了,這可以在菜單面板的腳本視圖中進行。如果需要編寫菜單項的腳本,可以雙擊該菜單項,或者右鍵單擊該菜單項,在彈出的菜單中選擇“Script”命令,然后在打開的如圖所示腳本編寫窗口中添加腳本即可。4/22/2023119在編寫菜單項的腳本前,需要先了解菜單項的3個事件:Clicked事件、Selected事件和Help事件。對于Clicked事件,在以下情況下被觸發(fā):鼠標(biāo)單擊菜單項時。使用鍵盤選中菜單項,并按下回車鍵時。按下該菜單項的快捷鍵時。當(dāng)包含該菜單項的下拉菜單被打開,并按下該菜單項的加速鍵時。當(dāng)顯示了彈出菜單時。如果要讓菜單項響應(yīng)鼠標(biāo)單擊事件或鍵盤事件,必須將菜單項的“Visible”和“Enabled”屬性的值都設(shè)為True。還可利用菜單的Clicked事件來指定在該下拉菜單上的菜單項屬性,包括使用、禁止、選中、取消選中等。4/22/2023120當(dāng)用戶選中一個菜單項時會觸發(fā)Selected事件。如果用戶所選中菜單對象擁有下拉菜單或級聯(lián)菜單,那么在觸發(fā)Selected事件時就會展開下拉菜單或級聯(lián)菜單。Help事件用來調(diào)用聯(lián)機幫助文件。當(dāng)用戶按下F1鍵或從標(biāo)題欄拖動上下文幫助按鈕到菜單項或者控件時就會觸發(fā)Help事件。4/22/20231217.6菜單對象的函數(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ù)4/22/2023122Check函數(shù)和UnCheck函數(shù)Check函數(shù)用來設(shè)置當(dāng)前菜單對象為選中狀態(tài),成功返回值為1,否則為-1。其語法結(jié)構(gòu)為:MenuName.Check()。設(shè)置菜單對象的選中狀態(tài)有以下兩種方法:使用菜單對象的Check()函數(shù)來實現(xiàn),例如://設(shè)置層疊顯示菜單項被選中m_cade.Check()通過對菜單對象的Checked屬性的賦值來實現(xiàn),例如://設(shè)置層疊顯示菜單項被選中m_cade.Checked=TrueUnCheck函數(shù)用來設(shè)置當(dāng)前菜單對象為未選中狀態(tài),其使用方法與Check函數(shù)相似。4/22/2023123ClassName函數(shù)ClassName函數(shù)用來得到指定的對象類型名稱,如果操作成功,則返回值為該對象的類名。其語法結(jié)構(gòu)為:MenuName.ClassName()。當(dāng)一個對象以后繼的方式聲明了多個實例后,對象的類名和對象名可能不再一致,而利用此函數(shù)則可以得到其子孫對象的名稱。4/22/2023124Enable函數(shù)與Disable函數(shù)Enable函數(shù)與Disable函數(shù)用來激活或禁止當(dāng)前菜單對象,返回值為整型。當(dāng)激活函數(shù)后,用戶可選菜單;禁止函數(shù),菜單被禁止使用并顯示為灰色,菜單不可選。Enable函數(shù)與Disable函數(shù)語法結(jié)構(gòu)分別為:MenuName.Enable()與MenuName.Disable()。將菜單對象激活和禁止的方法有兩種。使用菜單對象的Enable()與Disable()函數(shù)來實現(xiàn),例如://設(shè)置將菜單項激活m_cade.Enable()//設(shè)置將菜單項禁止m_cade.Disable()通過對菜單對象的Enable屬性的賦值來實現(xiàn),例如://設(shè)置將菜單項激活m_cade.Enable=True//設(shè)置將菜單項禁止m_cade.Enable=False4/22/2023125Hide函數(shù)與Show函數(shù)Hide函數(shù)與Show函數(shù)用來隱藏或顯示當(dāng)前菜單對象,操作成功返回值為1,否則返回-1。Hide函數(shù)與Show函數(shù)語法結(jié)構(gòu)分別為:MenuName.Hide()與MenuName.Show()。調(diào)用Hide函數(shù)后,當(dāng)前菜單對象被隱藏,也不再響應(yīng)其他事件,處于一種不可用的狀態(tài)。如果要將該菜單對象顯示出來,而且處于不可用狀態(tài),可以使用Disable函數(shù)。使用菜單對象的Hide()與Show()函數(shù)來實現(xiàn),例如://設(shè)置將菜單項隱藏m_new.Hide()//設(shè)置將新單項顯示出來m_new.Show()可以通過對菜單對象的Visible屬性的賦值來實現(xiàn),例如://設(shè)置將菜單項隱藏m_new.Visible=False//設(shè)置將新單項顯示出來m_new.Visible=True4/22/2023126GetContextService函數(shù)GetContextService函數(shù)用來得到指定服務(wù)器上下文特定實例的引用,操作成功返回值為1,否則為-1。其語法結(jié)構(gòu)為:MenuName.GetContextService(servicename,servicereference)。它調(diào)用本函數(shù)后,可以通過所建立的引用來使用服務(wù)器對象的所有屬性。4/22/2023127GetParent函數(shù)GetParent函數(shù)用來得到該菜單對象的祖先對象的引用,返回值為祖先對象的引用(指針)。其語法結(jié)構(gòu)為:MenuName.GetParent()。GetParent函數(shù)可以設(shè)置祖先對象的屬性等。4/22/2023128PopMenu函數(shù)PopMenu函數(shù)用來在指定位置彈出菜單,操作成功返回值為1,否則為-1。其語法結(jié)構(gòu)為:MenuName.PopMenu(xlocation,ylocation)。在使用PopMenu()函數(shù)之前,需要先調(diào)用CREATE語句來創(chuàng)建對象實例,例如://說明m_new類型菜單對象m_newMyMenu//創(chuàng)建菜單實例MyMenu=CREATEm_new//在光標(biāo)處顯示彈出菜單MyMenu.PopMenu(PointerX(),PointerY())4/22/2023129PostEvent函數(shù)PostEvent函數(shù)用來把由event參數(shù)指定的事件放置在菜單對象事件隊列的尾部等候處理,操作成功返回值為True,否則為False。其語法結(jié)構(gòu)為:MenuName.PostEvent(event{,word,long})。4/22/2023130TriggerEvent函數(shù)TriggerEvent函數(shù)用來激活由event參數(shù)指定的菜單對象事件,并立即執(zhí)行該事件的事件處理程序,操作成功返回值為1,否則為-1。其語法結(jié)構(gòu)為:MenuName.TriggerEvent(event{,word,long})。4/22/2023131TypeOf函數(shù)TypeOf函數(shù)用來返回該對象的類型,操作成功返回值為該控件的對象名。其語法結(jié)構(gòu)為:MenuName.TypeOf()。一般用TypeOf函數(shù)來確定所選中對象或所拖拽控件的對象類型。4/22/2023132第9章數(shù)據(jù)窗口的應(yīng)用教學(xué)目標(biāo)教學(xué)重點教學(xué)過程4/22/2023133教學(xué)目標(biāo)了解數(shù)據(jù)窗口對象字段屬性的設(shè)置了解數(shù)據(jù)窗口中的函數(shù)4/22/2023134教學(xué)重點數(shù)據(jù)窗口對象的控件數(shù)據(jù)窗口對象字段屬性的設(shè)置數(shù)據(jù)窗口中的函數(shù)4/22/2023135教學(xué)過程數(shù)據(jù)窗口控件數(shù)據(jù)窗口的字段屬性設(shè)置Tab鍵的設(shè)置數(shù)據(jù)窗口中的函數(shù)字段的顯示格式4/22/20231369.1數(shù)據(jù)窗口控件用戶在創(chuàng)建了一個數(shù)據(jù)窗口后可以在其中添加控件,這些控件添加到數(shù)據(jù)窗口中可以增加數(shù)據(jù)窗口的一些功能。4/22/20231379.2數(shù)據(jù)窗口的字段屬性設(shè)置General選項卡Edit選項卡4/22/2023138General選項卡此選項卡是在數(shù)據(jù)窗口編輯區(qū)域中選擇一個字段后才會顯示,在“General”選項卡中,可通過修改Border字段的邊框類型,來改變數(shù)據(jù)窗口的外觀樣式。4/22/2023139Edit選項卡在“Edit”選項卡中的“StyleType”下拉列表框中可以設(shè)置數(shù)據(jù)的編輯風(fēng)格。文本框是默認(rèn)的編輯風(fēng)格。它允許用戶對數(shù)據(jù)進行復(fù)制、剪切、粘貼等操作。在復(fù)選框編輯風(fēng)格中可以設(shè)置復(fù)選框的屬性。在下拉列表數(shù)據(jù)窗口編輯風(fēng)格中可以從另外一個數(shù)據(jù)窗口中引用數(shù)據(jù)。在下拉列表編輯風(fēng)格中可以預(yù)先設(shè)置數(shù)據(jù)項。掩碼文本框編輯風(fēng)格規(guī)定了輸入和顯示數(shù)據(jù)的格式,例如日期,時間等。單選按鈕編輯風(fēng)格可以進行多選一的操作。4/22/20231409.3Tab鍵的設(shè)置在數(shù)據(jù)窗口中可以使用Tab鍵來設(shè)置順序。單擊工具欄上的按鈕,可以設(shè)置Tab鍵的順序,單擊此紅色序號,為此序號命名順序,就可以為數(shù)據(jù)窗口設(shè)置Tab順序了,如果順序為0,則無法為Tab鍵訪問。4/22/20231419.4數(shù)據(jù)窗口中的函數(shù)日期時間函數(shù)數(shù)值計算函數(shù)字符串函數(shù)信息函數(shù)統(tǒng)計函數(shù)交叉表函數(shù)數(shù)據(jù)類型轉(zhuǎn)換與檢查函數(shù)4/22/2023142日期時間類函數(shù)日期時間類函數(shù)的功能如下:Date:把日期轉(zhuǎn)換為Date類型。Time:把時間轉(zhuǎn)換為Time類型。Day:日期值。Month:月值。Year:年值。DayName:星期幾。DayNumber:一周中的第幾天。DaysAfer:兩個日期之間所差的天數(shù)。SecondsAfer:兩個時間之間所差的秒數(shù)。Hour:小時。Minute:分鐘。Second:秒。Now:系統(tǒng)當(dāng)前時間。Today:系統(tǒng)日期和時間。RelativeDate:指定日期前后的天數(shù)值。RelativeTime:指定時間的前后時間值。4/22/2023143第8章數(shù)據(jù)窗口教學(xué)目標(biāo)教學(xué)重點教學(xué)過程4/22/2023144教學(xué)目標(biāo)了解數(shù)據(jù)窗口能夠創(chuàng)建一個簡單的數(shù)據(jù)窗口4/22/2023145教學(xué)重點數(shù)據(jù)窗口的顯示風(fēng)格數(shù)據(jù)窗口的數(shù)據(jù)源數(shù)據(jù)窗口對象4/22/2023146教學(xué)過程數(shù)據(jù)窗口的顯示風(fēng)格數(shù)據(jù)窗口的數(shù)據(jù)源數(shù)據(jù)窗口視圖數(shù)據(jù)窗口對象屬性操作數(shù)據(jù)窗口對象4/22/20231478.1數(shù)據(jù)窗口的顯示風(fēng)格在PowerBuilder中,數(shù)據(jù)窗口有11種不同的顯示風(fēng)格,這11種風(fēng)格可以以不同的樣式來表現(xiàn)數(shù)據(jù)。在創(chuàng)建數(shù)據(jù)窗口對象時,可以在數(shù)據(jù)窗口顯示樣式對話框中選擇需要的樣式。通過選擇顯示樣式和設(shè)置數(shù)據(jù)窗口對象及其屬性,可以方便的構(gòu)建出適合與用戶交互的顯示界面。4/22/2023148Tabular(列表風(fēng)格)在列表風(fēng)格中,數(shù)據(jù)按列排列在數(shù)據(jù)窗口中,標(biāo)題在每列的上方。每頁顯示的數(shù)據(jù)行數(shù)取決于數(shù)據(jù)窗口的大小,而且支持運行時由用戶調(diào)整各列位置的功能。列表風(fēng)格的數(shù)據(jù)窗口常用于輸入數(shù)據(jù)或生成報表。4/22/2023149Freeform(自由風(fēng)格)自由風(fēng)格數(shù)據(jù)窗口的使用比較靈活,用戶可以根據(jù)需要自由地調(diào)整字段、選項卡(在所有字段前面都加有字段標(biāo)題,并以垂直方式排列在數(shù)據(jù)窗口中)以及其他對象的位置。自由風(fēng)格數(shù)據(jù)窗口一頁每次只顯示一行數(shù)據(jù),常用于單記錄輸入。4/22/2023150Grid(網(wǎng)格風(fēng)格)網(wǎng)格風(fēng)格數(shù)據(jù)窗口使用網(wǎng)格來分割數(shù)據(jù)的行和列,每一個數(shù)據(jù)在一個網(wǎng)格中,運行時可以通過拖拽來改變網(wǎng)格的寬度,也能調(diào)整列的左右位置。但是在設(shè)計數(shù)據(jù)窗口對象時,不能移動列的左右次序。網(wǎng)格風(fēng)格的數(shù)據(jù)窗口既可以用于數(shù)據(jù)輸入,又能作為報表進行輸出。4/22/2023151Label(標(biāo)簽風(fēng)格)標(biāo)簽風(fēng)格數(shù)據(jù)窗口以標(biāo)簽的形式顯示數(shù)據(jù),每頁帶有幾個標(biāo)簽,可以指定標(biāo)簽的型號和大小。它經(jīng)常用于制作各種可以打印的標(biāo)簽,例如設(shè)備資料卡片,或者用于郵件。4/22/2023152Crosstab(交叉列表風(fēng)格)交叉列表風(fēng)格數(shù)據(jù)窗口帶有網(wǎng)格,此網(wǎng)格可以用于顯示和編輯數(shù)據(jù),它支持按行/列分析數(shù)據(jù)。交叉列表風(fēng)格數(shù)據(jù)窗口主要用于數(shù)據(jù)的統(tǒng)計匯總。4/22/2023153Graph(統(tǒng)計圖風(fēng)格)統(tǒng)計圖風(fēng)格的數(shù)據(jù)窗口以統(tǒng)計圖的方式顯示數(shù)據(jù)庫的數(shù)據(jù),可以顯示為面積圖、條形圖、餅圖、柱形圖、堆積圖等。統(tǒng)計圖風(fēng)格在Web數(shù)據(jù)窗口中不支持。4/22/2023154Group(分組風(fēng)格)分組風(fēng)格數(shù)據(jù)窗口可以對數(shù)據(jù)進行分組顯示或?qū)?shù)據(jù)進行統(tǒng)計,每個組可以帶有計算統(tǒng)計值的統(tǒng)計域,分組數(shù)據(jù)窗口通常用于報表中。另外,也可以把分組風(fēng)格看成是帶有分組特性的列表風(fēng)格。4/22/2023155N-UP(分欄風(fēng)格)分欄風(fēng)格數(shù)據(jù)窗口可以在一行中顯示多條數(shù)據(jù),用戶可以自己設(shè)置數(shù)據(jù)的條數(shù),它可以用于數(shù)據(jù)的對比操作,例如每周里每天的數(shù)據(jù)對比。4/22/2023156Composite(復(fù)合風(fēng)格)復(fù)合風(fēng)格數(shù)據(jù)窗口是通過特殊的方式將多個不同風(fēng)格的數(shù)據(jù)窗口組合在一起,形成一個更復(fù)雜的數(shù)據(jù)窗口。由于復(fù)合風(fēng)格數(shù)據(jù)窗口是對數(shù)據(jù)窗口的組合,所以沒有數(shù)據(jù)源。Web數(shù)據(jù)窗口中也不支持復(fù)合風(fēng)格。4/22/2023157OLE2.0(OLE風(fēng)格)OLE風(fēng)格數(shù)據(jù)窗口包括一個OLE對象,窗口的內(nèi)容和效果取決于選擇的OLE對象。OLE風(fēng)格數(shù)據(jù)窗口既能顯示非數(shù)據(jù)庫數(shù)據(jù),如Word文檔,也能夠顯示數(shù)據(jù)庫中的BLOB列(二進制大對象)。4/22/2023158RichText(多文本風(fēng)格)多文本風(fēng)格數(shù)據(jù)窗口使用RTF格式顯示和編輯數(shù)據(jù),并能夠?qū)?shù)據(jù)庫中的數(shù)據(jù)插入到多文本文檔中。一般用于顯示和編輯比較多的文本信息。另外,Web數(shù)據(jù)窗口、Sybase數(shù)據(jù)窗口、ActiveX數(shù)據(jù)窗口和Web控件不支持多文本風(fēng)格數(shù)據(jù)窗口。4/22/20231598.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(查詢對象)數(shù)據(jù)源、External數(shù)據(jù)源、StoredProcedure(存儲過程)數(shù)據(jù)源。單擊工具欄上的“New”按鈕,打開“New”對話框。然后選擇“DataWindow”選項卡,此選項卡中列舉了11種顯示風(fēng)格的數(shù)據(jù)窗口,選擇一個風(fēng)格后,單擊“OK”按鈕,打開“ChooseDataSourceforGridDataWindow”對話框。在此對話框中列舉了5種數(shù)據(jù)源。4/22/2023160QuickSelect數(shù)據(jù)源QuickSelect數(shù)據(jù)源是最簡單的一種數(shù)據(jù)源,它允許開發(fā)人員從一個表或與該表有外鍵關(guān)聯(lián)的表中選擇一個或多個列,而這些列都不是通過運算符計算得到的。QuickSelect數(shù)據(jù)源定義出一條簡單的Select語句,在這條語句中可以指定選擇的列、查詢條件和排序方式,但不支持分組、計算列、提取參數(shù)等復(fù)雜的SQLSelect功能。4/22/2023161SQLSelect數(shù)據(jù)源SQLSelect數(shù)據(jù)源主要用于從一個或多個數(shù)據(jù)表中通過SQL語句來選擇數(shù)據(jù)列、指定查詢條件、對數(shù)據(jù)排序等。4/22/2023162Query數(shù)據(jù)源Query數(shù)據(jù)源選取Query對象作為數(shù)據(jù)源,Query對象是保存在應(yīng)用庫中的SELECT語句,而定義Query對象的目的是為了在多個數(shù)據(jù)窗口中重復(fù)使用相同的SELECT語句,以避免反復(fù)定義。4/22/2023163External數(shù)據(jù)源Exter
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年有關(guān)陶瓷實習(xí)報告4
- 電鋸鋅鋼管項目可行性研究報告
- 中國汽車專用擋泥板項目投資可行性研究報告
- 中國電動船市場供需現(xiàn)狀及投資戰(zhàn)略研究報告
- 2025年不銹鋼精鑄件項目可行性研究報告
- 2025年中國骨科醫(yī)療器械行業(yè)發(fā)展趨勢預(yù)測及投資戰(zhàn)略咨詢報告
- 2025年中國抗痤瘡制劑行業(yè)發(fā)展概況及行業(yè)投資潛力預(yù)測報告
- 2025年中國臨床檢驗分析儀器行業(yè)市場深度分析及投資潛力預(yù)測報告
- 二甲基一氯硅烷行業(yè)深度研究報告
- 2025關(guān)于解除租房合同協(xié)議書及賠償問題
- 中國珠寶市場發(fā)展報告(2019-2024)(中英)-中國珠寶玉石首飾行業(yè)協(xié)會
- 2024年陜西省安全員《A證》考試題庫及答案
- 2024版新能源汽車購置補貼及服務(wù)保障合同3篇
- 2024-2025學(xué)年華東師大新版八年級上冊數(shù)學(xué)期末復(fù)習(xí)試卷(含詳解)
- 《praat使用入門》課件
- 醫(yī)藥銷售主管市場規(guī)劃
- 測量應(yīng)急管理方案
- 2024-2025學(xué)年深圳市初三適應(yīng)性考試模擬試卷語文試卷
- 安徽省蕪湖市2023-2024學(xué)年高一上學(xué)期期末考試 數(shù)學(xué) 含解析
- in、ing對比辨音練習(xí).doc
- 光刻工藝光刻對準(zhǔn)
評論
0/150
提交評論