【正文】
、1個(gè)命令按鈕(cb_1)、1個(gè)數(shù)據(jù)窗口控件(dw_1),調(diào)整各個(gè)控件的位置和大小。declare xqcursor cursor forselect xq from 課程 group by xq。for n=1 to li_xq fetch next xqcursor into :ls_xq。select count(distinct bjmc) into :li_bjmcfrom 班級(jí)。open bjmccursor。 (ls_bjmc)nextclose bjmccursor。(,) 八、設(shè)計(jì)成績管理模塊1)設(shè)計(jì)訪問成績信息的數(shù)據(jù)窗口設(shè)計(jì)輸入成績信息的數(shù)據(jù)窗口創(chuàng)建數(shù)據(jù)窗口d_xscj_shuru,顯示風(fēng)格為“Grid”,數(shù)據(jù)源類型為“SQL Select”,其布局如圖19所示。選則[Roes]|[Updata Properties]命令,打開數(shù)據(jù)窗口的修改屬性對(duì)話框,如圖24所示:圖24 數(shù)據(jù)窗口d_xscj_shuru選擇[Rows]|[Update Properties]命令,打開數(shù)據(jù)窗口的修改屬性對(duì)話框,設(shè)置數(shù)據(jù)窗口的修改屬性,即只有成績表xscj的成績列可以在數(shù)據(jù)窗口中修改,關(guān)鍵字為成績表xscj的主關(guān)鍵字(xh,xq,kcmc)。如圖25:圖25 數(shù)據(jù)窗口d_xscj_shuru的修改屬性設(shè)計(jì)查詢某班級(jí)某學(xué)期全體學(xué)生各科成績的數(shù)據(jù)窗口創(chuàng)建數(shù)據(jù)窗口d_xscj_bjcx,顯示風(fēng)格為 “Cross Tab”,數(shù)據(jù)源類型為 “SQL Select”,數(shù)據(jù)來源于成績表xscj和視圖xsbj。如圖27:圖27 數(shù)據(jù)窗口d_xscj_bjxc在[Headeer[1]]條中添加2個(gè)計(jì)算域控件,對(duì)應(yīng)的表達(dá)式分別為mbjmc和mxq,3個(gè)文本控件,其文本分別為 “成績單”、 “班級(jí)” 、和 “學(xué)期”.數(shù)據(jù)窗口的檢索參數(shù)為mxq和mbjmc,分別對(duì)應(yīng)于學(xué)期和班級(jí)名稱,修改屬性取默認(rèn)值(不允許修改)。2)設(shè)計(jì)訪問成績信息的窗口設(shè)計(jì)輸入成績的窗口首先創(chuàng)建窗口對(duì)象w_xscj_shuru,在窗口上放置1個(gè)分組框控件、3個(gè)靜態(tài)文本控件、3個(gè)下拉列表框控件、3個(gè)命令按鈕控件和1個(gè)數(shù)據(jù)窗口控件。(1)窗口的open事件腳本如下。declare xqcursor cursor forselect xq from bjkc group by xq。for n=1 to li_xq fetch next xqcursor into :ls_xq。//生成班級(jí)下拉列表框的列表項(xiàng)select count(distinct bjbh) into :li_bjmcfrom bjkc。open bjmccursor。 (ls_bjmc)nextclose bjmccursor。 integer rt ()if ()=0 then return 0else rt=messagebox(提示,添加修改內(nèi)容未保存,確實(shí)退出嗎?,question!,yesno!) if rt=1 then return 0 end if end ifreturn 1(3)課程的下拉列表框的getfocus事件腳本如下。declare kcmccursor cursor forselect from banji,bjkcwhere(=)and (=:ls_bjmc)and(=:ls_xq)group by 。for n=1 to li_kcmc fetch next kcmccursor into :ls_kcmc。end if (4)確定按鈕的clicked事件腳本如下。 declare xhcursor cursor for select xh from xsbj where =:ls_bjmc。 for n=1 to li_xh fetch next xhcursor into:ls_xh。 next close xhcursor。數(shù)據(jù)窗口控件連接的數(shù)據(jù)窗口對(duì)象為d_xscj_grcx..(1)查詢按鈕的clicked事件腳本如下(sqlca)if =or = then messagebox(提示,班級(jí) 學(xué)期和課程不能為空)else (,) =trueend if(2)打印按鈕的clicked事件腳本如下(true)(3)退出按鈕的clicked事件腳本如下close(parent)圖30 查詢學(xué)生個(gè)人成績的窗口設(shè)計(jì)查詢班級(jí)成績的窗口查詢班級(jí)成績的窗口如圖31所示。此窗口的open 事件腳本與輸入成績窗口的open事件腳本相同。(1)查詢按鈕的clicked事件腳本如下(sqlca)if =or = then messagebox(提示,班級(jí) 學(xué)期和課程不能為空)else (,) =trueend if圖31 查詢班級(jí)成績的窗口設(shè)計(jì)查詢課程成績的窗口查詢課程成績的窗口如圖32所示。此窗口的open事件腳本、“課程”的下拉列框的getfocus事件腳本與輸入成績窗口的對(duì)應(yīng)事件腳本相同,打印按鈕和退出按鈕的clicked 事件腳本與查詢學(xué)生個(gè)人成績窗口中的一樣。在第個(gè)模塊的實(shí)現(xiàn)過程中,對(duì)其每個(gè)功能要進(jìn)行仔細(xì)的測試和調(diào)試,最后對(duì)整個(gè)應(yīng)有程序做系統(tǒng)的測試,在測試工作完成后可進(jìn)作應(yīng)用程序的編譯和發(fā)布步驟如下。(2)編譯生成可執(zhí)行程序單擊工程畫板工具條上的deploy圖標(biāo),開始編譯過程??? 結(jié)在本次課程設(shè)計(jì)中,我更加的了Power Builde,更加的靈活的操作使用Power Builde,也深刻的體會(huì)到它給我們帶來的方便。數(shù)據(jù)表一般由若干個(gè)記錄組成,記錄由若干個(gè)字段構(gòu)成,字段主要是用來存放數(shù)據(jù)表中相同類型的一系列值。菜單是在窗口中與用戶直接接觸的一個(gè)重要對(duì)象,菜單必須依附于窗口,除了子窗口和響應(yīng)窗口外,其他類型的窗口都可以帶有菜單。繼承是面向?qū)ο缶幊痰囊粋€(gè)重要概念,它是自動(dòng)共享各個(gè)類、子類中的方法和數(shù)據(jù)的有效機(jī)制。在此程序設(shè)計(jì)中,設(shè)計(jì)了一些窗口和數(shù)據(jù)窗口,還有一個(gè)菜單對(duì)象。在生成數(shù)據(jù)窗口是,還定義了String型檢索參數(shù)變量來分別表示其中的內(nèi)容,在數(shù)據(jù)窗口中還改變了一些控件的編輯風(fēng)格和屬性并在其中添加了計(jì)算域控件和文本控件。課程設(shè)計(jì)加強(qiáng)了我們的動(dòng)手能力,使我更加喜歡Power Builde。PowerBuilder實(shí)用教程(第2版)。PowerBuilder程序設(shè)計(jì)教程。 北京:清華大學(xué)出版社,2004 4. 陳剛,PowerBuilder案例開發(fā)程序設(shè)計(jì)教程。PowerBuilder程序設(shè)計(jì)。PowerBuilder9。 北京:科學(xué)出版社,2003