【正文】
信息窗口通過(guò)繼承輸入窗口w_shuru生成輸入班級(jí)信息窗口w_banji_shuru,將數(shù)據(jù)控件dw_1的DataObject屬性設(shè)置為d_banji_shuru,將窗口的Tile屬性改為“錄入班級(jí)信息”,此窗口設(shè)計(jì)便完成了。七、設(shè)計(jì)課程管理模塊1)設(shè)計(jì)訪問(wèn)課程信息的數(shù)據(jù)窗口設(shè)計(jì)輸入班級(jí)課程信息的數(shù)據(jù)窗口創(chuàng)建數(shù)據(jù)窗口d_bjkc_shuru,顯示風(fēng)格為“Grid”,數(shù)據(jù)源類型為“Quick Select”,其布局如圖21所示:圖20 數(shù)據(jù)窗口d_bjkc_shuru數(shù)據(jù)窗口d_bjkc_shuru生成的SQL Seleect語(yǔ)句為: SELECT bjkc.bjbh, bjkc.xq, bjkc.kcmc, bjkc.xs, bjkc.jsxm FROM bjkc .設(shè)計(jì)查詢班級(jí)課程信息的數(shù)據(jù)窗口創(chuàng)建數(shù)據(jù)窗口d_bjkc_chaxun,顯示風(fēng)格為“Grid”,數(shù)據(jù)源類型為“Quick Select”,其布局如圖21所示。declare xqcursor cursor forselect xq from 課程 group by xq。 (ls_bjmc)nextclose bjmccursor。如圖27:圖27 數(shù)據(jù)窗口d_xscj_bjxc在[Headeer[1]]條中添加2個(gè)計(jì)算域控件,對(duì)應(yīng)的表達(dá)式分別為mbjmc和mxq,3個(gè)文本控件,其文本分別為 “成績(jī)單”、 “班級(jí)” 、和 “學(xué)期”.數(shù)據(jù)窗口的檢索參數(shù)為mxq和mbjmc,分別對(duì)應(yīng)于學(xué)期和班級(jí)名稱,修改屬性取默認(rèn)值(不允許修改)。for n=1 to li_xq fetch next xqcursor into :ls_xq。 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 xhcursor cursor for select xh from xsbj where =:ls_bjmc。此窗口的open 事件腳本與輸入成績(jī)窗口的open事件腳本相同。(2)編譯生成可執(zhí)行程序單擊工程畫(huà)板工具條上的deploy圖標(biāo),開(kāi)始編譯過(guò)程。繼承是面向?qū)ο缶幊痰囊粋€(gè)重要概念,它是自動(dòng)共享各個(gè)類、子類中的方法和數(shù)據(jù)的有效機(jī)制。PowerBuilder實(shí)用教程(第2版)。PowerBuilder9。 北京:清華大學(xué)出版社,2004 4. 陳剛,PowerBuilder案例開(kāi)發(fā)程序設(shè)計(jì)教程。在生成數(shù)據(jù)窗口是,還定義了String型檢索參數(shù)變量來(lái)分別表示其中的內(nèi)容,在數(shù)據(jù)窗口中還改變了一些控件的編輯風(fēng)格和屬性并在其中添加了計(jì)算域控件和文本控件。數(shù)據(jù)表一般由若干個(gè)記錄組成,記錄由若干個(gè)字段構(gòu)成,字段主要是用來(lái)存放數(shù)據(jù)表中相同類型的一系列值。此窗口的open事件腳本、“課程”的下拉列框的getfocus事件腳本與輸入成績(jī)窗口的對(duì)應(yīng)事件腳本相同,打印按鈕和退出按鈕的clicked 事件腳本與查詢學(xué)生個(gè)人成績(jī)窗口中的一樣。 next close xhcursor。for n=1 to li_kcmc fetch next kcmccursor into :ls_kcmc。open bjmccursor。(1)窗口的open事件腳本如下。選則[Roes]|[Updata Properties]命令,打開(kāi)數(shù)據(jù)窗口的修改屬性對(duì)話框,如圖24所示:圖24 數(shù)據(jù)窗口d_xscj_shuru選擇[Rows]|[Update Properties]命令,打開(kāi)數(shù)據(jù)窗口的修改屬性對(duì)話框,設(shè)置數(shù)據(jù)窗口的修改屬性,即只有成績(jī)表xscj的成績(jī)列可以在數(shù)據(jù)窗口中修改,關(guān)鍵字為成績(jī)表xscj的主關(guān)鍵字(xh,xq,kcmc)。select count(distinct bjmc) into :li_bjmcfrom 班級(jí)。圖22 輸入修改班級(jí)課程信息的窗口首先,從祖先窗口w_xiugai繼承生成窗口對(duì)象w_bjkc_shuruxiugai,調(diào)整其大小。2)設(shè)計(jì)訪問(wèn)學(xué)生基本信息的窗口設(shè)計(jì)輸入學(xué)生基本信息的窗口 通過(guò)繼承窗口輸入窗口w_shuru生成輸入學(xué)生基本信息窗口w_jiben_shuru,將數(shù)據(jù)控件dw_1的DataObject屬性設(shè)置為 d_jiben_shuru,將窗口的Title屬性改為“錄入學(xué)生基本信息”,如圖18。(1)(2)[]按鈕的Clicked事件腳本如下。ShowHelp(d:\xscj\help\,index!)2) 設(shè)計(jì)窗口本次學(xué)生成績(jī)管理系統(tǒng)的主窗口界面如圖7所示:圖7 主窗口界面創(chuàng)建窗口對(duì)象w_main,其Open事件腳本如下。opensheet(w_bjkc_shurnxiugai,w_main,6,Original!)(11)[課程管理]菜單下[查詢開(kāi)設(shè)課程]菜單的Clicked事件腳本如下。Open(w_yhgl)(3)[系統(tǒng)]菜單下[退出系統(tǒng)]菜單的Clicked事件腳本如下。 =falseelse rollback。 Close(parent)2) 設(shè)計(jì)用戶管理的數(shù)據(jù)窗口和窗口設(shè)計(jì)數(shù)據(jù)窗口創(chuàng)建數(shù)據(jù)窗口“d_yhgl”,顯示風(fēng)格為“Grid”,數(shù)據(jù)源類型為“Quick Select”,布局如圖4所示。(1)定義全局變量string gs_username,gs_password,gs_admin 分別存儲(chǔ)登錄用戶的姓名、密碼和權(quán)限。(2) 創(chuàng)建應(yīng)用對(duì)象,應(yīng)用對(duì)象名設(shè)為“app_xscj”。2)系統(tǒng)功能模塊分析通過(guò)上面各項(xiàng)功能的分析、分類、綜合,按照模塊化程序設(shè)計(jì)的要求,得到它的模塊結(jié)構(gòu):(1)系統(tǒng)管理 它包括密碼修改,用戶管理,登錄控制。(5) 每學(xué)期初各班所開(kāi)設(shè)課程的輸入,包括課程名、學(xué)期、學(xué)時(shí)等。(2) 對(duì)已經(jīng)輸入的班級(jí)信息的修改、查詢。(10) 查詢并打印某班某學(xué)期所有學(xué)生的各科成績(jī)。二、數(shù)據(jù)庫(kù)設(shè)計(jì)和實(shí)現(xiàn)1)創(chuàng)建數(shù)據(jù)庫(kù)在PowerBuilder開(kāi)發(fā)環(huán)境中打開(kāi)數(shù)據(jù)庫(kù)畫(huà)板,使用[ODB ODBC]接口建立Adaptive Server Anywhere (ASA )的數(shù)據(jù)庫(kù),然后建立5個(gè)表和1個(gè)視圖。CONNECT。 if =0 then open(w_main) close(w_login) else li_n=li_n 1 if li_n0 then messagebox(提示