![數(shù)據(jù)庫原理及VFP課程設計報告學籍管理系統(tǒng)_第1頁](http://file2.renrendoc.com/fileroot_temp3/2021-10/20/67373433-bfd0-4428-aa4f-67c1ad0df8d1/67373433-bfd0-4428-aa4f-67c1ad0df8d11.gif)
![數(shù)據(jù)庫原理及VFP課程設計報告學籍管理系統(tǒng)_第2頁](http://file2.renrendoc.com/fileroot_temp3/2021-10/20/67373433-bfd0-4428-aa4f-67c1ad0df8d1/67373433-bfd0-4428-aa4f-67c1ad0df8d12.gif)
![數(shù)據(jù)庫原理及VFP課程設計報告學籍管理系統(tǒng)_第3頁](http://file2.renrendoc.com/fileroot_temp3/2021-10/20/67373433-bfd0-4428-aa4f-67c1ad0df8d1/67373433-bfd0-4428-aa4f-67c1ad0df8d13.gif)
![數(shù)據(jù)庫原理及VFP課程設計報告學籍管理系統(tǒng)_第4頁](http://file2.renrendoc.com/fileroot_temp3/2021-10/20/67373433-bfd0-4428-aa4f-67c1ad0df8d1/67373433-bfd0-4428-aa4f-67c1ad0df8d14.gif)
![數(shù)據(jù)庫原理及VFP課程設計報告學籍管理系統(tǒng)_第5頁](http://file2.renrendoc.com/fileroot_temp3/2021-10/20/67373433-bfd0-4428-aa4f-67c1ad0df8d1/67373433-bfd0-4428-aa4f-67c1ad0df8d15.gif)
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、信 息 工 程 系課程設計報告課程名稱: 數(shù)據(jù)庫原理及vfp 設計課題: 學籍管理系統(tǒng) 班 級: 07計應大專 姓 名: 指導教師: 設計時間: 2009.6.17 課程設計任務書專業(yè): 計算機應用 班級: 07計應大專 設 計 課 題學籍管理系統(tǒng)指 導 教 師設計起止時間2009.6.8-2009.6.19共 2 周課程設計的目的與任務一、 信息需求: 一個學校有多個系部,培養(yǎng)學生有大專、中專等不同的層次,各個層次由設多個專業(yè),每個專業(yè)開多門課程,每個專業(yè)有多個班級,每個班有多名學生。二、 功能要求:1 系部、專業(yè)、學生層次、課程、班級、學生等信息的錄入。2 每學期學生成績錄入并打印輸出。3
2、 按學號和姓名查詢學生的個人情況并打印輸出。4 按學號和姓名查詢學生的個人成績,并打印輸出。5 按班級查詢各門課程全班同學的成績,并打印輸出。6 登錄界面、菜單。課程設計報告內容要求內容:1. 需求分析。2. 數(shù)據(jù)庫設計1) 概念模型2) 數(shù)據(jù)庫模型(基本表、視圖表)3) 程序設計4) 包括過程、表單、菜單、報表等要求:主要敘述各功能模塊的設計思路 用a4紙張,小四號宋體排版指導教師評語課程設計成績指導教師簽字 年 月 日目 錄需求分析及數(shù)據(jù)庫設計1系部設置3專業(yè)設置7班級設置10類別設置14課程設置16學生個人信息19學生成績表單24成績錄入表單26按班級查詢成績33學生個人信息查詢36登錄
3、界面44主菜單46信息工程系計算機應用技術20721班數(shù)據(jù)庫課程設計報告題目:學籍管理系統(tǒng)要求:a. 需求分析 一個學校有多個系部,培養(yǎng)學生有打專、中專等不同的層次,各個層次由設多個專業(yè),每個專業(yè)開多門課程,每個專業(yè)有多個班級,每個班有多名學生。 數(shù)據(jù)庫設計器圖如下:項目管理器如圖所示:b. 數(shù)據(jù)庫設計 概念模型a) 對象系部(系號,系名,主任)專業(yè)(專業(yè)號,專業(yè)名)類別(類別號,類別名)課程(課程號,課程名)班級(班級名,入學年份)學生(學號,姓名,性別,年齡,出生日期,入學成績,籍貫,家庭成員,民族,政治面貌,個人簡歷,婚否,照片)(2)er圖含有類別課程學生1n1nnn1nn設有設有成績
4、績績 選修專業(yè)班級 設有包含系部b) 關系模型系部(系號,系名,主任)專業(yè)(專業(yè)號,專業(yè)名,系部)類別(類加號,類別名,專業(yè))課程(課程號,課程名,專業(yè))班級(班名,專業(yè),入學年份)學生(學號,姓名,年齡,民族,性別,出生日期,入學成績,籍貫,家庭成員,政治面貌,個人簡歷,婚否,照片,班級)選修(課程,學號,成績)c、程序設計一、應用實例:“系部設置”表單設計表單文件名: xbsz.scx功能:為數(shù)據(jù)庫表xb.dbc 追加數(shù)據(jù)界面:設計步驟:1、 新建表單2、 添加數(shù)據(jù)環(huán)境:數(shù)據(jù)庫表xb.dbc3、 界面設計:l 4個標簽:字體、字號、背景色、對齊方式l 1個表格:數(shù)據(jù)源數(shù)據(jù)庫表xb.dbcl
5、 3個文本框:主要屬性name分別 : txtxh, txtxm, txtzrcontrolsource:分別為全局變量:xjl(1),xjl(2),xjl(3)l 5個命令按鈕 command1( 追加)、command2(結束)、command3(刪除)、command4(修改)、command5(修改確認)4、 事件過程l form1.load 過程select xb &選擇當前工作區(qū)set order to xh &設置主索引public xjl(3),m_xg &定義全局變量,默認值為邏輯假xjl= & 為數(shù)組元素賦初值,字符型set delete on &設置邏輯刪除有效l txt
6、xm.gotfocus過程if m_xg=.f. &判斷是否修改操作xjl(1)=allt(xjl(1) &去掉字符數(shù)據(jù)的左右空格seek xjl(1) &索引查詢if !eof()=messagebox(代號重復,0,錯誤) &對話框 xjl(1)=thisform.txtxh.setfocus &設置焦點即光標位置thisform.refresh &重畫表單或控件,并刷新所有值endifendifl command1.click 過程xjl(2)=allt(xjl(2)if len(xjl(2)=0 =messagebox(系部名不能空!,0,錯誤) thisform.txtxm.setf
7、ocuselse insert into xb from array xjl &向表中追加插入數(shù)據(jù) xjl= thisform.txtxh.setfocusendif thisform.refreshl command2.click 過程thisform.release &從內存中釋放表單集或表單l command3.click 過程 m_xh=xh &記錄當前記錄的主碼值delete from xb where xh=m_xh &刪除記錄thisform.refreshl command4.click 過程m_xg=.t. &修改標志thisform.grdxb.enabled=.f. &表
8、格不可操作,為不讓用戶改變當前記錄scatter to xjl &將當前記錄值賦給數(shù)組thisform.txtxh.enabled=.f. thisform.txtxm.setfocusmand1.visible=.f.mand3.visible=.f.mand4.visible=.f.mand5.visible=.t.thisform.refreshl command5.click 過程m_xg=.f. &取消修改標志m_xh=xhupdate xb set xm=xjl(2),zr=xjl(3) where xh=m_xh &修改當前記錄thisform.grdxb.enabled=.t.
9、thisform.txtxh.enabled=.t.scatter to xjl blankthisform.txtxh.setfocusmand1.visible=.t.mand1.visible=.t.mand3.visible=.t.mand4.visible=.t.mand5.visible=.f.thisform.refresh二、專業(yè)設置表單功能:為基本表 zy.dbf 追加記錄設計思路:該表單的重點是如何保證兩表的參照完整性?!眤y”表中的外碼“xb”讓用戶在已有的(“xb”表)值中進行選擇,不要從鍵盤輸入。為此采用一個組合框來實現(xiàn)。另外用組合框和表格實現(xiàn)1:n聯(lián)系的兩表中數(shù)據(jù)的
10、關聯(lián),來顯示各系部已有的專業(yè)。數(shù)據(jù)環(huán)境:xb.dbf zy.dbf界面設計:procedure loadpublic xjl(3)scatter to xjl blankendproc主要控件1、組合框:combo1步驟:新建組合框-右擊鼠標-生成器-選定字段-選定值主要屬性boundcolumn = 2columncount = 2rowsourcetype = 6rowsource = xb.xm,xhcontrolsource = xb.xhfirstelement = 1name = combo12、表格:grdzy設計步驟:從數(shù)據(jù)環(huán)境中將表zy拖入表單-生成器-選定字段-選定值主要屬
11、性如下:bolumncount = 3childorder = xblinkmaster = xbrecordsource = zyrecordsourcetype = 1relationalexpr = xhname = grdzycolumn1.controlsource = zy.zyhcolumn1.name = column1column2.controlsource = zy.zymcolumn2.name = column2column3.controlsource = zy.xbcolumn3.name = column33、文本框:text1controlsource = x
12、jl(1)name = text14、文本框:text2controlsource = xjl(2)name = text25、命令按鈕組:commandgroup1buttoncount = 2name = commandgroup1command1.fontname = 楷體_gb2312command1.fontsize = 10command1.caption = 追加command1.forecolor = 255,0,0command1.name = command1command2.fontname = 楷體_gb2312command2.fontsize = 10command
13、2.caption = 退出command2.forecolor = 255,0,0command2.name = command2procedure command1.clickselect * from zy; where zyh =xjl(1); into cursor ssif _tally=0 &判斷查到記錄的數(shù)量insert into zy values(xjl(1),xjl(2),xb.xh)scatter to xjl blankelse =messagebox(代號重復,0,錯誤) &對話框 xjl(1)= thisform.text1.setfocus &設置焦點即光標位置
14、 thisform.refresh &重畫表單或控件,并刷新所有值endifthisform.refreshendprocprocedure command2.clickrelease thisformendproc三、視圖應用實例:班級設置表單:功能:向基本表bj中追加記錄界面設計:數(shù)據(jù)環(huán)境:xb,zy,lb3個基本表和 bj_zy 視圖,重點:通過視圖向基本表中追加記錄,另外是專業(yè)名稱在組合框中所列內容要隨系部而變,已有班級在表格中顯示時也要隨專業(yè)和學生類別而變,為此將以上組合框和表格的數(shù)據(jù)源都設置成sqlselect語句視圖bj_zy定義的select語句如下:select bj.*,
15、zy.zym, lb.lbm; from xjgl!zy inner join xjgl!bj; inner join xjgl!lb ; on lb.lbh = bj.lb ; on zy.zyh = bj.zy更新字段和更新條件如下圖所示:主要控件的屬性及事件過程如下:procedure loadpublic m_bm,m_nfm_bm=m_nf=year(date()endproc組合框(所屬系部):combo1主要屬性:boundcolumn = 2columncount = 2rowsourcetype = 6rowsource = xb.xm,xhcontrolsource = x
16、b.xhname = combo1事件過程“procedure interactivechangethisform.grdbj.refreshendproc組合框(專業(yè)名稱):combo2主要屬性:boundcolumn = 2columncount = 2rowsourcetype = 3 & sql語句rowsource = select zym,zyh from zy where xb=xb.xh into cursor aacontrolsource = name = combo2事件過程:procedure interactivechangethisform.grdbj.record
17、source=select bm,rxnf,zym,lbm from bj_zy into cursor bb ;where zy=aa.zyh and lb=lb.lbhthisform.grdbj.refreshendproc組合框(學生類別):combo3主要屬性:boundcolumn = 2columncount = 2rowsourcetype = 6rowsource = lb.lbm,lbhcontrolsource = name = combo3事件過程:procedure interactivechangethisform.grdbj.recordsource=select
18、 bm,rxnf,zym,lbm from bj_zy into cursor bb ;where zy=aa.zyh and lb=lb.lbh thisform.grdbj.refreshendproc表格:去grdbj主要屬性:columncount = 4recordsource = select bm,rxnf,zym,lbm from bj_zy into cursor bb where zy=aa.zyh and lb=lb.lbhrecordsourcetype = 4name = grdbj文本框:text1inputmask = !name = text1微調控件:spin
19、ner1keyboardhighvalue = 2020keyboardlowvalue = 1990controlsource = m_nfname = spinner1命令按鈕:commandgroup1shuybuttoncount = 2backstyle = 0borderstyle = 0value = 1name = commandgroup1command1.fontname = 楷體_gb2312command1.fontsize = 11command1.caption = 追加command1.forecolor = 255,0,0command1.name = comm
20、and1command2.fontname = 楷體_gb2312command2.fontsize = 10command2.caption = 退出command2.forecolor = 255,0,0command2.name = command2事件過程:procedure command1.clickselect * from bj_zy where bm =m_bm into cursor ssif _tally=0 insert into bj_zy values(m_bm,m_nf,aa.zyh,lb.lbh,aa.zym,lb.lbm) thisform.grdbj.rec
21、ordsource=select bm,rxnf,zym,lbm from bj_zy into cursor bb where zy=aa.zyh and lb=lb.lbh thisform.grdbj.refreshm_bm=m_nf=year(date()else=messagebox(班級名稱重復,0,錯誤) m_bm= thisform.text1.setfocus thisform.refresh endifthisform.refreshendifthisform.refreshendprocprocedure command2.clickrelease thisformend
22、proc四、類別設置表單表單文件名:lbsz.scx功能:為數(shù)據(jù)庫存表lb.dbc追加數(shù)據(jù)界面: 設計步驟:1新建表單2添加數(shù)據(jù)環(huán)境:數(shù)據(jù)庫表lb.dbc3界面設計:l 3個標簽:字體、字號、背景色、對齊方式l 1個表格:數(shù)據(jù)源數(shù)據(jù)庫表lb.dbcl 3個文本框:主要屬性 controlsource:分別為全局變量:xjl(1),xjl(2)l 2個命令按鈕 command1( 追加)、command2(結束) 4事件過程procedure loadselect lbset order to lbhpublic xjl(2)xjl=set delete on &設置邏輯刪除有效endprocl
23、 command1.click 過程xjl(2)=allt(xjl(2)if len(xjl(2)=0 =messagebox(類別名不能空!,0,錯誤) thisform.text2.setfocus else insert into lb from array xjl xjl= thisform.text1.setfocus endif thisform.refreshl command2.click 過程thisform.release &從內存中釋放表單集或表單五、課程設置表單功能:為基本表 kc.dbf 追加記錄數(shù)據(jù)環(huán)境:xb.dbf kc.dbf界面設計:procedure loa
24、dpublic xjl(3)scatter to xjl blankendproc主要控件1、組合框:combo1步驟:新建組合框-右擊鼠標-生成器-選定字段-選定值主要屬性boundcolumn = 2rowsourcetype = 6rowsource = xb.xm,xhcontrolsource = xb.xhfirstelement = 1name = combo12、表格:grdkc設計步驟:從數(shù)據(jù)環(huán)境中將表kc拖入表單-生成器-選定字段-選定值主要屬性如下:columncount = 3childorder = xblinkmaster = xbrecordsource = kc
25、recordsourcetype = 1relationalexpr = xhname = grdkccolumn1.controlsource = kc.khcolumn1.name = column1column2.controlsource = kc.kmcolumn2.name = column23、文本框:text1controlsource = xjl(1)name = kh4、文本框:text2controlsource = xjl(2)name = km5、 命令按鈕command1.fontname = 楷體_gb2312command1.fontsize = 10comma
26、nd1.caption = 追加command1.forecolor = 255,0,0command1.name = command1command2.fontname = 楷體_gb2312command2.fontsize = 10command2.caption = 結束command2.forecolor = 255,0,0command2.name = command2procedure command1.clickselect * from kc; where kh =xjl(1); into cursor ssif _tally=0 &判斷查到記錄的數(shù)量insert into
27、kc values(xjl(1),xjl(2),xb.xh)scatter to xjl blankelse =messagebox(代號重復,0,錯誤) &對話框 xjl(1)= thisform.kh.setfocus &設置焦點即光標位置 thisform.refresh &重畫表單或控件,并刷新所有值endif endifthisform.refreshendprocprocedure command2.clickthisform.releaseendproc六、學生個人信息追加表單一、功能:向 xs.dfb 表中追加記錄,界面如下:二、數(shù)據(jù)環(huán)境5個基本表:xb.dbf、zy.dbf、
28、lb.dbf、bj.dbf、xs.dbf三、主要對象的屬性及事件過程1、表單的init(創(chuàng)建表單時發(fā)生)事件過程:procedure initselect xsset order to xh &設置主索引*建立臨時表:lsbcreat cursor lsb(xh c(7),xm c(8),xb c(2),mz c(2),rxcj n(5,2),zzmm c(4),hf l,csrq d,; jg c(20),bj c(7),grjl m,jtcy m,zp g)append blankreplace mz with 漢,xb with 男 &為表中當前記錄的字段賦值endproc2、四個組合框
29、combo1、combo2、combo3、combo4:分別用來確定所錄入的學生信息所在的系部、專業(yè)、類別和編輯。主要屬性:l 系部:combo1屬性:columncount = 0columnwidths = rowsourcetype = 6rowsource = xb.xmfirstelement = 1height = 25left = 73numberofelements = 0tabindex = 1top = 25width = 85name = combo1l 專業(yè):combo2屬性:coundcolumn = 2columncount = 2rowsourcetype = 3
30、rowsource = select zym,zyh from zy into cursor aa where xb=xb.xhheight = 25left = 222tabindex = 2top = 25width = 85name = combo2l 類別:combo3屬性:rowsourcetype = 6rowsource = lb.lbmheight = 24left = 371tabindex = 3top = 25width = 96name = combo3l 班級:combo4屬性:sourcetype = 3rowsource = select bm from bj i
31、nto cursor b where lb=lb.lbh and zy=aa.zyhcontrolsource = lsb.bjheight = 25left = 540tabindex = 4top = 25width = 72name = combo4事件過程:procedure interactivechange thisform.pageframe1.page1.txtxh.setfocusendproc3、頁表:pageframe1頁表為容器類對象,一個頁表可以包含多頁,由屬性pagecount設置頁表中的頁數(shù),每一頁中又可放置各種對象。該表單中的頁表pageframe1中有3頁,第
32、一頁中主要是學生的基本信息,第二頁中為學生的個人簡歷,第三頁中為學生的具體情況,其中控件分別與臨時表 lsb中的字段(處 性別字段:xb)綁定。主要屬性:pagecount = 3name = pageframe1page1.fontbold = .t.page1.fontname = 新宋體page1.fontsize = 12page1.caption = 基本信息page1.forecolor = 255,0,0page1.name = page1page2.fontbold = .t.page2.fontname = 新宋體page2.fontsize = 12page2.captio
33、n = 個人簡歷page2.forecolor = 255,0,0page2.name = page2page3.fontbold = .t.page3.fontname = 新宋體page3.fontsize = 12page3.caption = 家庭成員page3.forecolor = 255,0,0page3.name = page3事件過程:rocedure page1.click thisform.pageframe1.page1.txtxh.setfocusendprocprocedure page2.clickthisform.pageframe1.page2.edtjl.s
34、etfocus endprocprocedure page3.clickthisform.pageframe1.page3.edtjtcy.setfocus endproc頁框中的控件:1) 文本框:txtxh的事件過程:procedure lostfocuszpwjm=zp+allt(lsb.xh)+.jpg if file(zpwjm) append gener zp from &zpwjm else zpwjm=zp+allt(lsb.xh)+.bmp if file(zpwjm) append gener zp from &zpwjm else zpwjm=zp+allt(lsb.xh
35、)+.gif if file(zpwjm) append gener zp from &zpwjm endif endif endifendproc2) 單選按鈕組:option1屬性:buttoncount = 2value = 1name = optxboption1.fontbold = .t.option1.caption = 男option1.value = 1option1.name = option1option2.fontbold = .t.option2.caption = 女option2.name = option2事件過程:procedure clickif thisf
36、orm.pageframe1.page1.optxb.value=2 replace xb with 女endif endproc3) 組合框政治面貌:combo2其數(shù)據(jù)源為:“值”rowsourcetype = 1rowsource = 黨員,團員,群眾controlsource = lsb.zzmmname = combo24、兩個命令按鈕command1:屬性:caption = 追 加tabindex = 10forecolor = 255,0,0name = command1事件過程:procedure clickif !empty(lsb.xh)select xsseek lsb.
37、xhif eof() m_bj=lsb.bj insert into xs values(lsb.xh ,lsb.xm ,lsb.xb,lsb.mz,lsb.rxcj,lsb.zzmm ,lsb.hf ,lsb.csrq,lsb.jg ,lsb.bj,lsb.grjl,lsb.jtcy,lsb.zp) creat cursor lsb(xh c(7),xm c(8),xb c(2),mz c(2),rxcj n(5,2),zzmm c(4),hf l,csrq d,jg c(20),bj c(7),grjl m,jtcy m,zp g) append blank replace mz with
38、 漢,xb with 男,bj with m_bjelse =messagebox(學號重復!,0,錯誤)endif thisform.pageframe1.page1.txtxh.setfocus thisform.refresh endif thisform.pageframe1.page1.txtxh.setfocus endproccommand2屬性:caption = 結 束forecolor = 255,0,0name = command2事件過程:procedure clickthisform.release endproc七、應用實例:學生成績表單設計表單文件名: cjsz.
39、scx功能:為數(shù)據(jù)庫表cj.dbc 追加數(shù)據(jù)界面:設計步驟:1新建表單2添加數(shù)據(jù)環(huán)境:數(shù)據(jù)庫表cj.dbc3界面設計:l 4個標簽:字體、字號、背景色、對齊方式l 1個表格:數(shù)據(jù)源數(shù)據(jù)庫表cj.dbcl 3個文本框:主要屬性name分別 : txtxh, txtkh, txtcjcontrolsource:分別為全局變量:xjl(1),xjl(2),xjl(3)l 2個命令按鈕 command1( 追加)、command2(結束)4事件過程l form1.load 過程select cj &選擇當前工作區(qū)set order to xh &設置主索引public xjl(3),m_xg &定義全
40、局變量,默認值為邏輯假xjl= & 為數(shù)組元素賦初值,字符型set delete on &設置邏輯刪除有效l command1.click 過程xjl(2)=allt(xjl(2)if len(xjl(2)=0 =messagebox(系部名不能空!,0,錯誤) thisform.txtkh.setfocuselse insert into cj from array xjl &向表中追加插入數(shù)據(jù) xjl= thisform.txtxh.setfocusendif thisform.refreshl command2.click 過程thisform.release &從內存中釋放表單集或表單
41、八、成績錄入表單功能:向基本表cj.dbf中追加記錄,界面如下:要求:按班級錄入單科成績,選擇班級和課程后,由程序向成績表(cj.dbf)中插入所選班級所有學生的學號與所選課程課號兩個字段,成績字段由鍵盤輸入,界面要顯示學號和姓名,并且可以打印成績報表。設計思路:1、 建立一個視圖,包括班級、學號、姓名、課號、課名、成績,通過視圖向成績表(cj.dbf)中追加數(shù)據(jù)。2、 當用戶選定“班級”和“課程”后,即可獲得“bj”和“kh”兩個字段的值,通過“bj”字段的值即可到“xs”表中查得該班級的所有學生的學號(xh),再通過selectsql語句得到所有的所有該班級每個學生的學號(xh)分別與所選
42、課號(kh)的組合,而后通過視圖插入成績(cj)表中。3、 由于視圖打開時通過查詢將物理表中的數(shù)據(jù)放在內存中了,在視圖打開期間對物理表進行的更新的結果是不會在視圖中表現(xiàn)的,只有重新打開視圖時才能表現(xiàn)出來。為此,該功能模塊用兩個表單來完成,在第一個表單(cjlr)的“成績錄入”命令按鈕的click事件中,完成xh、kh插入操作后將視圖bj_cj 關閉,通過調用下一個表單(cjlr2)重新打開bj_cj視圖。在子表單cjlr2中用一個表格控件完成顯示已追加的學號和課號兩列數(shù)據(jù)成績列數(shù)據(jù)由鍵盤輸入,放置一個“打印”按鈕,在其click事件過程中調用報表(dkcjbb.frt)完成報表輸出。4、 以上
43、兩個表單采用了主叢關系(多文檔界面),cjlr2表單屬于cjlr的子表單。5、 由于視圖bj_cj中的數(shù)據(jù)是所以學生所以課程的成績,但在錄入成績時是按班級錄入某一門課程的成績,這就需對視圖中的數(shù)據(jù)進行篩選,為此在表單cjlr2的init事件過程中按班級和課號設置一個過濾器。語句格式為: set filter to 6、 為了給報表傳遞“主考教師”和“考試日期”在主表單中定義兩個全局內存變量m_zkjs,m_ksrq,其值通過文本框由用戶輸入。主要設計步驟:1. 建立視圖:bj_cj生成視圖的查詢語句如下:select cj.xh, cj.kh, xs.xm, kc.km, cj.cj, xs.
44、bj; from xjgl!xs inner join xjgl!cj; inner join xjgl!kc ; on kc.kh = cj.kh ; on xs.xh = cj.xh; order by xs.bj, cj.kh, cj.xh2. cjlr表單設計界面如下:1) 數(shù)據(jù)環(huán)境:基本表:xb、zy、lb、bj、kc 視圖:bj_cj2) 表單的事件 (init) 過程:procedure initpublic m_zkjs, m_ksrqm_zkjs =m_ksrq =date()endproc3) 主要控件的屬性及時間過程:l 系部選擇組合框(combo1)屬性:columnc
45、ount = 0rowsourcetype = 6rowsource = xb.xm,xhtabindex = 1name = combo1l 專業(yè)選擇組合框(combo2)屬性:coundcolumn = 2columncount = 2rowsourcetype = 3rowsource = select zym,zyh from zy into cursor aa where xb=xb.xhtabindex = 2name = combo2l 類別選擇組合框(combo3)屬性:rowsourcetype = 6rowsource = lb.lbmtabindex = 3name =
46、combo3l 班級選擇組合框(combo4)屬性:rowsourcetype = 3rowsource = select bm from bj into cursor bb where lb=lb.lbh and zy=aa.zyhcontrolsource = tabindex = 4name = combo4l 課程選擇組合框(combo5)屬性:coundcolumn = 2columncount = 2rowsourcetype = 3rowsource = select km,kh from kc into cursor cc where xb=xb.xh &按系部選擇課程name
47、 = combo5l 主考教師文本框(text1)controlsource = m_zkjsname = text1l 考試日期文本框(text1)controlsource = m_ksrqname = text2l 成績錄入按鈕(command1)的click事件中過程procedure clickselect * from bj_cj into cursor lsb where kh=cc.kh and bj=bb.bmif _tally=0 begin transaction &事件開始 on error rollback &事務回滾 select xh,kh from xs,kc
48、into array aa where bj=bb.bm and kh=cc.kh if _tally0 insert into bj_cj from array aa else =messagebox(沒有該班級的學生信息!,0,錯誤) endif end transaction &事件結束 endif bo4.enabled=.f.bo5.enabled=.f.mand2.enabled=.t.mand1.enabled=.f.if used(bj_cj) &如果視圖bj_cj處于打開狀態(tài) select bj_cj &選擇“bj_cj”為當前工作區(qū) use &關閉視圖:bj_cjendif
49、 do form cjlr2 & 調用表單“cjlr2”endproc3. cjlr2表單設計設計界面如下(只有一個表格對象):l 表單主要屬性:showwindow = 1 &窗口顯示在頂層窗口中borderstyle = 2 &窗體的邊框樣式為固定對話框desktop = .f. &表單不包含在vfp主窗口中l(wèi) 數(shù)據(jù)環(huán)境:視圖bj_cjl 事件過程:procedure init set filter to bj=bb.bm and kh=cc.kh &設置過濾器 go top &移動記錄指針到第一條記錄endprocl 表格對象:grdbj_cj主要屬性:columncount = 3re
50、cordsource = bj_cjrecordsourcetype = 1gridlines = 3 &表格控件顯示垂直滾動條l 打印按鈕:command1事件過程:procedure clickthisform.width=650thisform.height=1000thisform.left=50report form dkcjbbendproc4. 報表設計:l 數(shù)據(jù)環(huán)境:xsxx視圖l 頁面大小:a4l 設計界面:l 打印效果:九、按班級查詢成績功能:所查信息包括學生的所有個人信息及所修課程的成績,并能打印輸出。界面如下:1. 打印功能由兩個報表來完成,“打印”命令按鈕完成學生個人情
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度豪華別墅管家式住家保姆雇傭合同
- 二零二五年度智能交通系統(tǒng)股權收購合作協(xié)議
- 施工現(xiàn)場施工防噪隔音制度
- 現(xiàn)代家居設計中的綠植藝術實踐
- 醫(yī)療護理醫(yī)學培訓 小麥病蟲害防治課件
- DB6528T 202-2024春玉米滴灌栽培技術規(guī)程
- 中小企業(yè)勞動合同模板大全
- 個人與工廠合作協(xié)議合同
- 個人借款合同條款解析
- 交通運輸行業(yè)勞動合同準則
- 2025至2030年中國減肥肽數(shù)據(jù)監(jiān)測研究報告
- 2024內蒙古公務員省直行測、行政執(zhí)法、省考行測考試真題(5套)
- 2025年安徽馬鞍山市兩山綠色生態(tài)環(huán)境建設有限公司招聘筆試參考題庫附帶答案詳解
- 山東省濱州市濱城區(qū)2024-2025學年九年級上學期期末考試化學試題
- 期末試卷:安徽省宣城市2021-2022學年七年級上學期期末歷史試題(解析版)
- 幼兒教師新年規(guī)劃
- 2024年湖南省公務員錄用考試《行測》真題及答案解析
- 2024新版(北京版)三年級英語上冊單詞帶音標
- 第21課 活動課 從考古發(fā)現(xiàn)看中華文明的起源 教學課件
- 部編版《道德與法治》四年級下冊教材解讀與分析文檔
- PP、PVC-風管制作安裝施工作業(yè)指導書
評論
0/150
提交評論