版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、實(shí)驗(yàn)五 Visual Foxpro編程實(shí)踐.實(shí)驗(yàn)?zāi)康呐c要求掌握利用Visual Foxpro編制開(kāi)發(fā)自己的應(yīng)用程序的實(shí)踐知識(shí),并學(xué)會(huì)在程序調(diào)試中自行發(fā)現(xiàn)問(wèn)題和修改程序代碼,最終完成應(yīng)用程序的無(wú)錯(cuò)運(yùn)行。.相關(guān)知識(shí)利用Visual Foxpro自行開(kāi)發(fā)編制應(yīng)用程序的步驟:1 .設(shè)置好系統(tǒng)的工作環(huán)境 (尤其注意工作目錄的默認(rèn)設(shè)置 )。2 .如果是初次進(jìn)行,應(yīng)當(dāng)先建立一個(gè)項(xiàng)目,為該項(xiàng)目命名,激活項(xiàng)目管理器。如果是接著上次的工作進(jìn)行,則打開(kāi)上次工作的本項(xiàng)目,同樣也激活項(xiàng)目管理器。3 .在項(xiàng)目管理器的“數(shù)據(jù)”“數(shù)據(jù)庫(kù)”下面創(chuàng)建一個(gè)數(shù)據(jù)庫(kù),并命名(如已創(chuàng)建,則跳過(guò)本步驟)。4 .在項(xiàng)目管理器的“數(shù)據(jù)”“數(shù)據(jù)
2、庫(kù)”“表”下面進(jìn)行數(shù)據(jù)表的創(chuàng)建或修改工作,并輸入少量的正確數(shù)據(jù)以便將來(lái)的運(yùn)行調(diào)試(如果已經(jīng)創(chuàng)建了數(shù)據(jù)表,則跳過(guò)本步驟)。5 .在項(xiàng)目管理器的“文檔”下面創(chuàng)建該應(yīng)用程序所用到的所有表單,設(shè)計(jì)好各表單的界面并為表單里的控件填寫(xiě)程序代碼.(注意為表單添加各自的數(shù)據(jù)環(huán)境,否則會(huì)出錯(cuò)!)6 .試運(yùn)行各表單,發(fā)現(xiàn)問(wèn)題后重新修改有問(wèn)題的表單的代碼,反復(fù)調(diào)試和修改直至最后能無(wú)錯(cuò)運(yùn)行。7 .將應(yīng)用程序打包發(fā)布或制作成安裝文件。8 .實(shí)驗(yàn)容與步驟本次實(shí)驗(yàn)以一個(gè)簡(jiǎn)單的學(xué)生成績(jī)管理系統(tǒng)為例。首先,對(duì)該系統(tǒng)作一個(gè)簡(jiǎn)單的介紹:該應(yīng)用系統(tǒng)為完成學(xué)生信息和成績(jī)的管理系統(tǒng),主要有以下幾個(gè)應(yīng)用模塊:(1)用戶(hù)登錄管理:系統(tǒng)具有管
3、理員功能,只有取得管理員權(quán)限的人才能使用本系統(tǒng)。(2)數(shù)據(jù)添加功能:對(duì)學(xué)生基本信息、教師基本信息、班級(jí)信息、課程信息、學(xué)生成績(jī)信息進(jìn)行添加錄入。(3)數(shù)據(jù)查詢(xún)功能:對(duì)上述信息的基本查詢(xún)。(4)數(shù)據(jù)修改功能:對(duì)上述信息可進(jìn)行修改工作。(5)統(tǒng)計(jì)操作: 可分別按個(gè)人成績(jī)、單科成績(jī)統(tǒng)計(jì)出最高成績(jī)、最低成績(jī)和平均成績(jī) 等。(6)打印功能: 對(duì)上述信息可進(jìn)行打印。實(shí)驗(yàn)步驟如下:1 .數(shù)據(jù)庫(kù)設(shè)計(jì):班級(jí)編號(hào)字符型6出生日期日期型8(3)教師信息表 teacher字段名稱(chēng)寬度教師代碼字符型4字符型10性別字符型2職稱(chēng)字符型10部門(mén)字符型10出生日期日期型8(4)班級(jí)信息表 classes字段名稱(chēng)舊寬度班級(jí)編號(hào)
4、字符型6年級(jí)字符型4專(zhuān)業(yè)字符型10系代碼字符型2學(xué)制字符型2回字符型4(5)課程信息表 course字段名稱(chēng)寬度課程代碼字符型6課程名稱(chēng)字符型16類(lèi)別字符型4教師代碼字符型4(6)分?jǐn)?shù)信息表 score字段名稱(chēng)寬度學(xué)號(hào)字符型8課程代碼字符型6成績(jī)數(shù)值型4創(chuàng)建好以上數(shù)據(jù)表以后,應(yīng)該向每個(gè)表中添加適量合法數(shù)據(jù)以便后面的測(cè)試。2 .表單設(shè)計(jì)2.1 登錄模塊功能描述:實(shí)現(xiàn)只有指定的用戶(hù)才能訪(fǎng)問(wèn)系統(tǒng)的功能。并且,只有身份為“管理員”的用戶(hù)才可以調(diào)用修改模塊修改數(shù)據(jù)。界面設(shè)計(jì):片表羊設(shè)計(jì)都lotilf. 5CK 值X學(xué)生成績(jī)管理系統(tǒng)FIaIIIIIII.I表單名稱(chēng):login文件名:login.scx數(shù)據(jù)
5、環(huán)境:user.dbf對(duì)象設(shè)置:對(duì)象屬性值說(shuō)明Form1Caption歡迎使用學(xué)生成績(jī)管理 系統(tǒng)Lable1Caption學(xué)生成績(jī)管理系統(tǒng)Lable2Caption請(qǐng)輸入用戶(hù)名:Lable3Caption請(qǐng)輸入密碼:Combo1RowSourceType6-字段指定數(shù)據(jù)值來(lái)源類(lèi)型RowSourceUser.用戶(hù)名指定數(shù)據(jù)值來(lái)源Cammand1Caption登錄Cammand2Caption退出函數(shù)與方法聲明:Commandl中的Click事件功能:完成在登錄時(shí)對(duì)輸入的用戶(hù)名和密碼的檢驗(yàn),如果數(shù)據(jù)表user中存在輸入的用戶(hù)名和密碼信息,則調(diào)用主窗口 (如果是管理員則不但調(diào)用主窗口,還允許執(zhí)行主窗
6、口的修改功能),否則提示輸入錯(cuò)誤。程序清單:private kl , yh, stst=密碼不正確,請(qǐng)重新輸入!use userkl=alltrim(thisform.text1.value)yh=alltrim(bo1.value)* 將用戶(hù)輸入的用戶(hù)名和密碼的值分別保存在yh和kl變量中l(wèi)ocate for alltrim(bo1.value)= =alltrim(user. 用戶(hù)名)* 在user表中查找是否有與yh和kl匹配的記錄if found() and alltrim(user. 密碼)=kl* 正確的用戶(hù)名和密碼thisform.visible=.f.close tables
7、alldo form main.scx if yh= =admin*如果是超級(jí)用戶(hù)管理員,則允許他使用main表單中的第三組按鈕(即修改模塊)main.optiongroup1.option3.enabled=.t.endifthis.parent.text1.value=else*錯(cuò)誤的用戶(hù)名和密碼,系統(tǒng)給出提示,延遲 2秒wait window st timeout 2thisform.text1.value=thisform.textl.setfocus endif(2) Command2 中的 Click 事件功能:退出學(xué)生成績(jī)管理系統(tǒng)程序清單:clear eventsquit(3)
8、Forml 的 Destroy 事件功能:意外關(guān)閉程序窗口時(shí)的處理程序清單:clear events2.2 主界面模塊功能描述:主要是提供本系統(tǒng)各功能模塊的入口.界面設(shè)計(jì):歡迎使用學(xué)生成績(jī)管理系統(tǒng)1|IJbJIJLXIJL-IJLt表單名稱(chēng):main文件名:main.scx數(shù)據(jù)環(huán)境:無(wú)對(duì)象設(shè)置:對(duì) 象屬性值Form1Caption學(xué)生成績(jī)管理系統(tǒng)Lable1Caption歡迎使用學(xué)生成績(jī)管理系統(tǒng)Lable2Caption請(qǐng)選擇要操作的容:Optiongroup1ButtonCount6Optiongroup1.Option1Caption添加記錄Optiongroup1.Option2Capt
9、ion查詢(xún)記錄Optiongroup1.Option3Caption修改記錄Optiongroup1.Option3Enabled.F.Optiongroup1.Option4Caption統(tǒng)計(jì)數(shù)據(jù)Optiongroup1.Option5Caption打印報(bào)表Optiongroup1.Option6Caption退出系統(tǒng)函數(shù)與方法聲明: Optiongroupl 中的 IntelactiveChange 事件:功能: 根據(jù)Optiongroupl中的選擇單擊按鈕,調(diào)用各重要功能模塊程序清單:do casecase this.value=1do form添加case this.value=2do
10、 form查詢(xún)case this.value=3 do form修改 case this.value=4 do form統(tǒng)計(jì) case this.value=5 do form打印 case this.value=6 thisform.release quit endcase(2) Optiongroup1 中的每一個(gè) Option 的 Click 事件:功能: 與(1)中不同,(1)是指在Optiongroup中的各個(gè)Option切換時(shí)才觸發(fā)的程序, 僅這樣還不夠,還要編寫(xiě)每個(gè)Option被單擊時(shí)觸發(fā)的程序才完整。程序清單:對(duì)應(yīng) Optiongroup1.Option1 的 Click 事件
11、: do form 添加(其余類(lèi)推)2.3 數(shù)據(jù)添加模塊功能描述:用戶(hù)通過(guò)5個(gè)不同的頁(yè)面來(lái)完成對(duì)學(xué)生信息表、教師信息表、班級(jí)表、課程表和成績(jī)表的數(shù)據(jù)添加操作。界面設(shè)計(jì):蠡添加一學(xué)生表載師表 I 班獺 I 課程表 I 成皎表 學(xué)號(hào) |TfcKtl班級(jí)編號(hào) 姓名出生日期牲胡 向不注意;日期格式反為口潦加清空II44FFIII44FI-I一;一;一;一;一;-:-; 返回主.單 一11:.;一一:一表單名稱(chēng):添加文件名:添加.scx數(shù)據(jù)環(huán)境:student.dbf,class.dbf,score.dbf,teacher.dbf, course.dbf對(duì)象設(shè)置:對(duì) 象屬性值說(shuō)明Form1Caption
12、添加PageFrame1PageCount5Command1Caption返回主菜單主表單中的Command1Page1Caption學(xué)生表Page2Caption教師表Page3Caption班級(jí)表Page4Caption課程表Page5Caption成績(jī)表Command1Caption添加與上面的Command1不同,這是在各個(gè)貝囿中的 Command1Command2Caption清空函數(shù)與方法聲明:因?yàn)樘砑颖韱沃袑?duì)于 5個(gè)表的操作方法類(lèi)似,所以這里只給出學(xué)生表的添加部分,其 余4個(gè)頁(yè)面的程序請(qǐng)同學(xué)們自己對(duì)照思考和編制。Forml中的Active事件功能:設(shè)置焦點(diǎn)位置程序清單:this.
13、pageframel.pagel.textl.setfocus(2) Forml 中的 Commandl 的 Click 事件功能:釋放當(dāng)前窗口程序清單:thisform.release(3) Page1 中 Command1 的 Click 事件功能:將輸入的新記錄信息添加到學(xué)生表中,完成新記錄的添加工作程序清單:num1=alltrim(thisform.pageframe1.page1.text1.value)num2=alltrim(thisform.pageframe1.page1.text2.value)num3=alltrim(thisform.pageframe1.page1.
14、text3.value)num4=alltrim(thisform.pageframe1.page1.text4.value)num5=alltrim(dtoc(thisform.pageframe1.page1.text5.value)& 并 非 是alltrim(thisform.pageframe1.page1.text5.value) set exact on do casecase num1=messagebox(學(xué)號(hào)不能為空!,0+48,系統(tǒng)提示!) thisform.pageframel.pagel.textl.setfocuscase num2=messagebox(不能為空!
15、, 0+48,系統(tǒng)提示!)thisform.pageframe1.page1.text2.setfocus case num3=messagebox(性別不能為空!, 0+48,系統(tǒng)提示!)thisform.pageframe1.page1.text3.setfocus case num4=messagebox(班級(jí)編號(hào)不能為空!, 0+48,系統(tǒng)提示!)thisform.pageframe1.page1.text4.setfocus case num5=messagebox(出生日期不能為空!, 0+48,系統(tǒng)提示!)thisform.pageframe1.page1.text5.setfo
16、cus otherwisea=messagebox(確認(rèn)添加么?,1+64+0,系統(tǒng)提示!)if a=1 select student go bottominsert into student(學(xué)號(hào),性別,班級(jí)編號(hào),出生日期)values(num1, num2 , num3, num4, ctod (num5)messagebox(添加成功!) elsethisform.pageframe1.page1.text1.setfocus endifendcase(4) Page1 中的 Command2 的 Click 事件:功能:清空當(dāng)前頁(yè)面上輸入的數(shù)據(jù)程序清單:this.parent.text
17、1.value=this.parent.text2.value=this.parent.text3.value=this.parent.text4.value=this.parent.text5.value=由于其它各個(gè)頁(yè)面上的添加數(shù)據(jù)的操作小異,這里不再贅述。num1=alltrim(thisform.pageframe1.page2.text1.value)num2=alltrim(thisform.pageframe1.page2.text2.value)num3=alltrim(thisform.pageframe1.page2.text3.value)num4=alltrim(thi
18、sform.pageframe1.page2.text4.value)num5=alltrim(thisform.pageframe1.page2.text5.value)num6=alltrim(dtoc(thisform.pageframe1.page2.text6.value)& 并 非 是alltrim(thisform.pageframe1.page2.text6.value) set exact on do casecase num1=messagebox(教師代碼不能為空!,0+48,系統(tǒng)提示!)thisform.pageframe1.page2.text1.setfocus c
19、ase num2=messagebox(不能為空!,0+48,系統(tǒng)提示!)thisform.pageframe1.page2.text2.setfocus case num3=messagebox(性別不能為空!,0+48,系統(tǒng)提示!)thisform.pageframe1.page2.text3.setfocus case num4=messagebox(職稱(chēng)不能為空!,0+48,系統(tǒng)提示!)thisform.pageframe1.page2.text4.setfocus case num5=messagebox(部門(mén)不能為空!,0+48,系統(tǒng)提示!)thisform.pageframe1.
20、page2.text5.setfocus case num6=messagebox(出生日期不能為空!,0+48,系統(tǒng)提示!)thisform.pageframe1.page2.text6.setfocus otherwisea=messagebox(確認(rèn)添加么?,1+64+0,系統(tǒng)提示!) if a=1 select student go bottominsert into student(教師代碼”性別,職稱(chēng),部門(mén),出生 日期) values(num1,num2,num3,num4,num5,ctod(num6)messagebox(添加成功!)I elsethisform.pagefra
21、me1.page2.text1.setfocus endifendcase(5) 數(shù)據(jù)查詢(xún)模塊功能描述:用戶(hù)可以通過(guò)不同的頁(yè)面完成對(duì)5個(gè)不同表中的數(shù)據(jù)的查詢(xún)操作界面設(shè)計(jì):I學(xué)生基本,解:數(shù)據(jù)表瀏覽謖程瀏覽請(qǐng)?jiān)枔癜嗉?jí)代碼和姓名:返回主菜隼對(duì) 象屬性值說(shuō)明FormlCaption查詢(xún)PageFramelPageCount3CommandlCaption返回三巳采單主表單中的Commandl表單名稱(chēng):查詢(xún)文件名:查詢(xún).scx數(shù)據(jù)環(huán)境:student.dbf,class.dbf, score.dbf,teacher.dbf,course.dbf對(duì)象設(shè)置:查詢(xún)主表單中的對(duì)象設(shè)置:對(duì) 象屬性值Combol
22、RowSourceType6-字段RowSourceClassese班級(jí)編號(hào)Combo2RowSourceType6-字段RowSourceStudent.LabellCaption請(qǐng)選擇班級(jí)代碼和Label2Caption班級(jí)代碼Label3CaptionLabel4Caption學(xué)號(hào)Label5CaptionLabel6Caption性別Label7Caption出生日期PageFramel.Pagel中的對(duì)象設(shè)置:PageFrame1.Page2用來(lái)對(duì)數(shù)據(jù)表進(jìn)行瀏覽,其界面為:國(guó)有詢(xún)其中的對(duì)象設(shè)置:對(duì) 象屬性值CombolRowSourceType1-值RowSource學(xué)生表,教師表,
23、班級(jí)表,課程表,成績(jī)表Style2-下拉列表框Value1LabellCaption請(qǐng)選擇要瀏覽的表GridlRecordSourceType0-表PageFrame1.Page3用來(lái)進(jìn)行課程瀏覽.其界面為:其中的對(duì)象設(shè)置:對(duì) 象屬性值CommandGroup1ButtonCount5Label1Caption課程代碼Label2Caption課程名稱(chēng)Label3Caption類(lèi)別Label4Caption教師代碼函數(shù)與方法聲明:(1) Thisform.PageFramel.Pagel 中的 Deactive 事件:功能:當(dāng)前學(xué)生情況查詢(xún)頁(yè)面被釋放時(shí),使數(shù)據(jù)查詢(xún)?cè)O(shè)置過(guò)濾條件為空.程序清單:s
24、et filter to(2) Thisform.PageFramel.Pagel.Combol 中的 InteractiveChange 事件: 功能:根據(jù)下拉列表框的選擇,設(shè)置班級(jí)信息的過(guò)濾條件,同時(shí)清空文本框信息 程序清單:public mm=bo1.valueselect studentset filter to 班級(jí)編號(hào)=mthisform.pageframe1.page1.text1.value=thisform.pageframe1.page1.text2.value=thisform.pageframe1.page1.text3.value=thisform.pageframe
25、1.page1.text4.value=(3) Thisform.PageFrame1.page1.Combo2 中的 InteractiveChange 事件: 功能:根據(jù)前面設(shè)置的班級(jí)過(guò)濾條件對(duì)學(xué)生信息進(jìn)行查詢(xún),并將結(jié)果在當(dāng)前頁(yè)面顯 示程序清單:locate for =this.value*用組合框中的值進(jìn)行查找if found()thisform.pageframe1.page1.text1.value=學(xué)號(hào)thisform.pageframe1.page1.text2.value=thisform.pageframe1.page1.text3.value=性別thisform.page
26、frame1.page1.text4.value= 出生 日期bo2.value= endif(4) Thisform.PageFrame1.page2 中的 Init 事件:功能:在“數(shù)據(jù)表瀏覽”頁(yè)顯示時(shí)進(jìn)行相關(guān)的初始化工作程序清單:with this.grid1.recordsourcetype=6.recordsource=student.refresh.columncount=5.column1.width=60.column2.width=65.column3.width=40.column4.width=70.column5.width=60.column1.header1.cap
27、tion= 學(xué)號(hào).column2.header1.caption=.column3.header1.caption= 性別.column4.header1.caption= 出生日期.column5.header1.caption= 班級(jí)編號(hào).readonly=.t.deletemark=.f.endwith(5) Thisform.PageFrame1.Page2.Combo1 中的 IntelactiveChange 事件功能: 在“數(shù)據(jù)表瀏覽”頁(yè)中根據(jù)下拉組合框中的選擇對(duì)不同的表進(jìn)行數(shù)據(jù)容顯示程序清單:& 加入如下代碼,可防止由字段少的表往字段多的表切換時(shí)造成數(shù)據(jù)字段丟失無(wú)法顯示的問(wèn)題w
28、ith this.parent.grid1.columncount=6.column1.width=60.column2.width=65.column3.width=50.column4.width=66.column5.width=70.column6.width=70endwith& 即每次都事先把grid 先刷新成行數(shù)教多的表.do casecase this.value=1with this.parent.grid1.recordsourcetype=6.recordsource=student.columncount=5.column1.width=60.column2.width
29、=65.column3.width=40.column4.width=70.column5.width=60.column1.header1.caption= 學(xué)號(hào).column2.header1.caption=.column3.header1.caption= 性別.column4.header1.caption= 出生日期.column5.header1.caption= 班級(jí)編號(hào).refresh.readonly=.t.deletemark=.f.endwithcase this.value=2with this.parent.grid1.columncount=6 .recordso
30、urce=teacher.column1.header1.caption= 教師代碼 .column2.header1.caption= .column3.header1.caption= 性別.column4.header1.caption= 出生日期 .column5.header1.caption= 部門(mén).column6.header1.caption= 技術(shù)職務(wù).column1.width=60.column2.width=65.column3.width=50.column4.width=66.column5.width=70.column6.width=70.refresh.rea
31、donly=.t. .deletemark=.f.endwithcase this.value=3with this.parent.grid1 .recordsourcetype=6 .recordsource=classes.columncount=6.column1.width=60.column2.width=65.column3.width=50.column4.width=70.column5.width=60.column6.width=60.column1.header1.caption= 班級(jí)編號(hào).column2.header1.caption= 年級(jí).column3.head
32、er1.caption= 專(zhuān)業(yè).column4.header1.caption= 系代碼 .column5.header1.caption= 學(xué)制.column6.header1.caption= 類(lèi)別.refresh.readonly=.t. .deletemark=.f.endwithcase this.value=4with this.parent.grid1 .recordsourcetype=6 .recordsource=course.columncount=4 .column1.width=60 .column2.width=100 .column3.width=50 .colu
33、mn4.width=50 .column1.header1.caption= 課程代碼.column2.header1.caption= 課程名稱(chēng).column3.header1.caption= 類(lèi)別 .column4.header1.caption= 教師代碼.refresh.readonly=.t. .deletemark=.f.endwithcase this.value=5with this.parent.grid1 .recordsourcetype=6 .recordsource=score .columncount=3 .column1.width=60 .column2.wi
34、dth=100 .column3.width=50 .column1.header1.caption= 學(xué)號(hào).column2.header1.caption= 課程代碼.column3.header1.caption= 成績(jī).refresh.readonly=.t. .deletemark=.f.endwithendcase(6) Thisform.PageFrame1.Page3 中的 Init 事件功能: 當(dāng)“課程瀏覽”頁(yè)面被顯示出來(lái)時(shí),進(jìn)行相關(guān)的初始化工作程序清單:select coursethis.text1.value= 課程代碼this.text2.value= 課程名稱(chēng)this.
35、text3.value= 類(lèi)別this.text4.value= 教師代碼(7) Thisform.PageFrame1.Page3 中的 Refresh 事件功能: 在“課程瀏覽”頁(yè)面中刷新當(dāng)前的數(shù)據(jù)顯示程序清單:select coursethis.text1.value= 課程代碼this.text2.value= 課程名稱(chēng)this.text3.value= 類(lèi)別this.text4.value= 教師代碼(8) Thisform.PageFrame1.Page3 中的 CommandGroup1 的 Click 事件 功能 : 利用按鈕組完成對(duì)數(shù)據(jù)庫(kù)中的記錄瀏覽程序清單:select c
36、oursedo casecase this.value=1go topcase this.value=2skip -1if bof()messagebox(已到首部!,0+48,系統(tǒng)提示)go topendifcase this.value=3skipif eof()messagebox(已到末尾!, 0+48,系統(tǒng)提示) go bottomendifcase this.value=4go bottomcase this.value=5thisform.releaseendcasethisform.refresh2.5 數(shù)據(jù)修改模塊功能描述:用戶(hù)可以通過(guò)不同的頁(yè)面完成對(duì)5 個(gè)不同表中的數(shù)據(jù)的修
37、改操作界面設(shè)計(jì):請(qǐng)選擇要餐出的衣返回由于修改表單中對(duì)于 5個(gè)表的操作方法類(lèi)似,這里只給出第一個(gè)頁(yè)面即“學(xué)生表”的設(shè)計(jì)部分。其余 4個(gè)頁(yè)面的設(shè)計(jì)及相關(guān)的程序代碼請(qǐng)同學(xué)們自己思考并完成。表單名稱(chēng):修改文件名:修改.scx數(shù)據(jù)環(huán)境:student.dbf,class.dbf,score.dbf,teacher.dbf,course.dbf對(duì)象設(shè)置:對(duì) 象屬性值FormlCaption修改PageFramelPageCount5CommandlCaption返回:Page1.Combo1RowSourceType6-字段RowSourceStudent.學(xué)號(hào)Page2.Combo1RowSourceT
38、ype6-字段RowSourceTeacher教師代碼Page3.Combo1RowSourceType6-字段RowSourceClassess班級(jí)編號(hào)Page4.Combo1RowSourceType6-字段RowSourceCourse.課程代碼Page5.Combo1RowSourceType6-字段RowSourceScore.學(xué)號(hào)Page1.Command1Caption確定Page1.Command2Caption退出函數(shù)與方法聲明:(1) Thisform.PageFramel.Pagel 中的 Activate 事件:功能:在學(xué)生信息修改頁(yè)面顯示時(shí)進(jìn)行初始化操作程序清單:se
39、lect studentgo topthis.text1.value= 學(xué)號(hào)this.text2.value=this.text3.value= 性別this.text4.value= 出生日期this.text5.value= 班級(jí)編號(hào)(2) Thisform.PageFrame1.Page1.Combo1 中的 IntelactiveChange 事件:功能: 根據(jù)學(xué)號(hào),查找對(duì)應(yīng)的學(xué)生信息程序清單:select studentlocate for 學(xué)號(hào) =this.valueif found()thisform.pageframe1.page1.text1.value= 學(xué)號(hào)thisfor
40、m.pageframe1.page1.text2.value=thisform.pageframe1.page1.text3.value= 性別thisform.pageframe1.page1.text4.value= 出生日期thisform.pageframe1.page1.text1.value= 班級(jí)編號(hào)endif(3) Thisform.PageFrame1.Page1.Command1 中的 Click 事件:功能: 當(dāng)用戶(hù)單擊“確定”按鈕后,將當(dāng)前修改的數(shù)據(jù)保存到數(shù)據(jù)庫(kù)中程序清單:select studenta=alltrim(thisform.pageframe1.page1
41、.text1.value)b=alltrim(thisform.pageframe1.page1.text2.value)c=alltrim(thisform.pageframe1.page1.text3.value)d=alltrim(dtoc(thisform.pageframe1.page1.text4.value)e=alltrim(thisform.pageframe1.page1.text5.value)set exact ondo casecase a= messagebox( 學(xué)生學(xué)號(hào)不能為空 , 0+48, 系統(tǒng)提示 )thisform.pageframe1.page1.te
42、xt1.setfocuscase b= messagebox( 學(xué)生不能為空 , 0+48, 系統(tǒng)提示 )thisform.pageframe1.page1.text2.setfocuscase c= messagebox( 學(xué)生性別不能為空 , 0+48, 系統(tǒng)提示 )thisform.pageframe1.page1.text3.setfocuscase d= messagebox( 學(xué)生出生日期不能為空 , 0+48, 系統(tǒng)提示 )thisform.pageframe1.page1.text4.setfocuscase e= messagebox( 學(xué)生班級(jí)編號(hào)不能為空 , 0+48,
43、系統(tǒng)提示 )thisform.pageframe1.page1.text5.setfocusotherwisem=messagebox(確定要修改學(xué)生記錄嗎 ?,0+48,系統(tǒng)提示) if m=1select student replace 學(xué)號(hào) with a replace with b replace 性別 with c replace 出生日期 with ctod(d) replace班級(jí)編號(hào) with e messagebox(修改成功?。〆ndifendcase(4) Thisform.PageFrame1.Pmand2 中的 Click 事件:功能:釋放當(dāng)前窗口程序清單:thisf
44、orm.release2.6數(shù)據(jù)統(tǒng)計(jì)模塊功能描述:用戶(hù)可以通過(guò)不同的頁(yè)面完成對(duì)5個(gè)不同表中的數(shù)據(jù)的修改操作界面設(shè)計(jì):表單名稱(chēng):統(tǒng)計(jì)文件名:統(tǒng)計(jì).scx數(shù)據(jù)環(huán)境:student.dbf,score.dbf,course.dbf對(duì)象設(shè)置:對(duì) 象屬 性值Form1Caption統(tǒng)計(jì)OptionGroup1ButtonCount2Label1Caption最高成績(jī)Label2Caption最低成績(jī)Label3Caption平均成績(jī)List1RowSourceType6-字段Label4Label6(空白標(biāo)簽用于顯示運(yùn)算結(jié)果)Command1Caption返回函數(shù)與方法聲明:(1) Form1 中的 I
45、nit 事件功能: 在窗體被調(diào)用時(shí),進(jìn)行顯示的初始化工作程序清單:this.label5.caption=this.label6.caption=this.label7.caption=(2) Thisform.OptionGroup1 中的 IntelactiveChange 事件功能: 根據(jù)單選框的選擇情況,進(jìn)行數(shù)據(jù)源的設(shè)置程序清單:do casecase this.value=0thisform.list1.rowsource=*無(wú)選項(xiàng)時(shí)不設(shè)置數(shù)據(jù)源thisform.list1.refreshcase this.value=1thisform.list1.rowsource=studen
46、t.thisform.list1.refreshcase this.value=2thisform.list1.rowsource=course. 課程名稱(chēng)thisform.list1.refreshendcase(3) Thisform.List1 中的 IntelactiveChange 事件功能: 如果選項(xiàng)被改變,則根據(jù)用戶(hù)指定的新選項(xiàng)重新統(tǒng)計(jì)并顯示結(jié)果程序清單:do casecase thisform.optiongroup1.value=1xm=alltrim(this.value)select studentlocate for =xm乂卜二學(xué)號(hào)select scorecalculate max(成績(jī)),min(成績(jī)),avg(成績(jī))for 學(xué)號(hào)=xh to n1 , n2, n3thisform.label5.caption=alltrim(str(n1 , 4, 1)thisform.label6.caption=alltrim(str(n2 , 4, 1)thisform.label7.caption=alltrim(str(n3 , 4, 1)case thisform.optio
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年魯教五四新版八年級(jí)地理上冊(cè)階段測(cè)試試卷
- 2025年蘇教新版選修3地理上冊(cè)階段測(cè)試試卷含答案
- 2025年粵人版九年級(jí)生物上冊(cè)月考試卷含答案
- 二零二五年度衛(wèi)生間清潔劑研發(fā)與供應(yīng)合同3篇
- 二零二五年度2025版文化創(chuàng)意產(chǎn)業(yè)融資合同范本4篇
- 2025年度環(huán)保工程派遣人員勞務(wù)合同范本4篇
- 擔(dān)保合同約定條款協(xié)議書(shū)(2篇)
- 2025年度摩托車(chē)租賃平臺(tái)合作合同范本3篇
- 2025年度牧草種植基地環(huán)境保護(hù)合同范本3篇
- 二零二五版苗木種植基地林業(yè)病蟲(chóng)害防治合同2篇
- GB/T 16895.3-2024低壓電氣裝置第5-54部分:電氣設(shè)備的選擇和安裝接地配置和保護(hù)導(dǎo)體
- 計(jì)劃合同部部長(zhǎng)述職報(bào)告范文
- 人教版高一地理必修一期末試卷
- GJB9001C質(zhì)量管理體系要求-培訓(xùn)專(zhuān)題培訓(xùn)課件
- 二手車(chē)車(chē)主寄售協(xié)議書(shū)范文范本
- 窗簾采購(gòu)?fù)稑?biāo)方案(技術(shù)方案)
- 五年級(jí)上冊(cè)小數(shù)除法豎式計(jì)算練習(xí)300題及答案
- 語(yǔ)言規(guī)劃講義
- 生活用房設(shè)施施工方案模板
- 上海市楊浦區(qū)2022屆初三中考二模英語(yǔ)試卷+答案
- GB/T 9755-2001合成樹(shù)脂乳液外墻涂料
評(píng)論
0/150
提交評(píng)論