楊軍 郭艷燕
摘 要學(xué)籍管理是學(xué)校教務(wù)工作的重要環(huán)節(jié),結(jié)合實際工作,以VFP為開發(fā)工具,通過與Excel的交互編程,開發(fā)一系列適應(yīng)工作的軟件,來提高學(xué)籍管理的質(zhì)量與水平。
【關(guān)鍵詞】學(xué)籍管理 VFPEXCEL
學(xué)籍管理是高等學(xué)校教務(wù)管理系統(tǒng)中的重要組成部分,主要包括學(xué)生基本情況(姓名、所在班級,所學(xué)專業(yè),所在系等)、各系學(xué)籍情況(所含專業(yè)、所含班級、所含學(xué)生)、各專業(yè)學(xué)生情況、畢業(yè)審核等的管理。學(xué)籍管理的各個組成部分環(huán)環(huán)相扣,其中一個環(huán)節(jié)的變更,會引起其它環(huán)節(jié)相應(yīng)的調(diào)整,例如學(xué)生退學(xué)轉(zhuǎn)專業(yè)等情況的發(fā)生會導(dǎo)致學(xué)生學(xué)籍信息的變更。所以,要求學(xué)籍管理方式必須有良好的適應(yīng)能力,才能為教學(xué)安排和學(xué)生的管理工作打下良好的基礎(chǔ)。
傳統(tǒng)的學(xué)籍管理工作很多環(huán)節(jié)一直采用手工方式進行,尤其是隨著各個學(xué)校辦學(xué)規(guī)模的擴大,帶來的問題越來越多。為了適應(yīng)新時代的發(fā)展,采用現(xiàn)代化技術(shù),提高管理手段勢在必行。雖然目前絕大部分高校都已購買綜合教務(wù)系統(tǒng),但是由于系統(tǒng)不是定制開發(fā),部分功能與學(xué)校要求存在差異,而修改程序花費較大。本文利用VFP(Visual FoxPro)編程技術(shù)開發(fā)了一系列適應(yīng)實際工作的軟件,來提高學(xué)籍管理的質(zhì)量與水平,下文對軟件中的一個程序進行了詳細說明。
學(xué)生的學(xué)籍庫是保存在DBF數(shù)據(jù)表中,而VFP是一種面向?qū)ο蟮年P(guān)系型數(shù)據(jù)庫管理系統(tǒng),其提供了功能強大的DBF數(shù)據(jù)處理能力,雖然目前微軟已經(jīng)停止對其進行開發(fā),但是VFP在學(xué)籍管理中地位不可替代,基于這些,本程序的開發(fā)工具采用VFP。
1 功能分析
在學(xué)籍管理的日常工作中,經(jīng)常需要給任課教師或輔導(dǎo)員提供班級名單。傳統(tǒng)的工作方法是通過前期將班級的學(xué)生信息拷貝到一個單獨的Excel表格中進行保存,需要時進行打印,但是這種傳統(tǒng)的方式存在著很多缺點,例如某個班級中有休學(xué)、退學(xué)或者轉(zhuǎn)專業(yè)的同學(xué),則該班級的名單需要進行手工調(diào)整,有時可能不單單需要調(diào)整一個班級的名單,而在實際工作中有可能就忘記了修改班級名單,這樣就對任課教師造成了極大的不便。為了解決這種不便,同時為了提供工作效率,筆者決定開發(fā)一個簡單但又實用的名單打印程序。
2 系統(tǒng)架構(gòu)
本著實用的原則,本程序力求將日常工作中需要的表格都集中在一起。本程序包括“打印學(xué)生成績登記表”、“打印所有成績登記表”、“打印兩列學(xué)生名單”、“打印所有兩列學(xué)生名單”、“打印教學(xué)記錄表”、“打印所有教學(xué)記錄表”、“導(dǎo)出excel表格”、“導(dǎo)出所有excel表格”8個模塊,如圖1所示??梢愿鶕?jù)班級進行篩選打印單獨某個班級名單,也可以進行年級、層級篩選一次打印多個班級的名單。
3 系統(tǒng)設(shè)計
3.1 報表設(shè)計
根據(jù)煙臺大學(xué)文經(jīng)學(xué)院學(xué)生成績登記表及教學(xué)記錄表的格式進行報表文件的設(shè)計,力求做到與原表格式一致。在設(shè)計報表文件時將表格標題部分放置在報表設(shè)計器的頁標頭部分,而需要顯示的數(shù)據(jù)部分放置在細節(jié)區(qū)中,如圖2所示。
3.2 Excel模板設(shè)計
因需要將班級名單導(dǎo)出為Excel表格,所以需要事先設(shè)計好固定的格式,如圖3所示。根據(jù)實際工作需要設(shè)計好Excel表格,并保存到軟件目錄下。在導(dǎo)出數(shù)據(jù)時根據(jù)相應(yīng)的數(shù)據(jù)庫字段分別將數(shù)據(jù)寫入到不同的Excel單元格中。
4 系統(tǒng)實現(xiàn)
4.1 開發(fā)難點
在本程序?qū)崿F(xiàn)過程中最大的難點就是VFP與Excel的交互編程技術(shù)。其交互編程技術(shù)的核心問題就是要在VFP中創(chuàng)建一個Excel對象,通過對其創(chuàng)建的對象進行VFP字段的寫入,通過循環(huán)語句將不同字段分別寫入不同的位置,當表格序號達到模板44行即最下一行時,切換到Excel模塊第6列的序號列繼續(xù)寫入直至循環(huán)結(jié)束,后將該文件保存在當前目錄下,最后將創(chuàng)建的Excel對象釋放,以防止內(nèi)存泄露問題。主要代碼如下:
ef=CREATEOBJECT("Excel.Application") *新建一Excel對象
ef.visible=.F.*讓Excel對象不可見,能夠讓VFP后臺運行Excel,借此可以保持界的一致性。
lj=SYS(5) + CURDIR()*獲取當前程序所在路徑
ef.workbooks.open(lj+"result.xlt")*打開模板文件
SELECT tempmd*選擇篩選出來的班級名單
UPDATE tempmd SET xuh =recno() *設(shè)置序號數(shù)字
SELECT xuh,xh,xm,bjh,xb FROM tempmd INTO cursor print_sql
SELECT print_sql
i=4
j=0
tempbj=ALLTRIM(print_sql.bjh)
SCAN
ef.cells(i,j+1).value=ALLTRIM(print_sql.xuh)
ef.cells(i,j+2).value=ALLTRIM(print_sql.xh)
ef.cells(i,j+3).value=ALLTRIM(print_sql.xm)
ef.cells(i,j+4).value=ALLTRIM(print_sql.xb)
i=i+1
IFi>44*如果行標號大于44則轉(zhuǎn)到第6列繼續(xù)寫入數(shù)據(jù)
i=4
j=5
ENDIF
ENDSCAN
………
ef.ActiveWorkbook.SaveAs(SYS(5) + CURDIR() + tempbj) *保存到當前目錄下
ef.QUIT
RELEASE ef *釋放excel對象
4.2 系統(tǒng)封裝
本程序設(shè)計到數(shù)據(jù)表、表單、報表、類代碼、Excel模板等大量文件,程序在能獨立運行前必須進行封裝。封裝的具體步驟是將數(shù)據(jù)表及表單添加到項目文件中,然后經(jīng)過“聯(lián)編”、“編譯成可執(zhí)行文件”生成“名單打印.exe”文件。
5 結(jié)束語
本程序自投入使用來,大大減輕了工作的勞動強度,提供了工作效率,減少了工作中出錯的次數(shù)。如果出現(xiàn)學(xué)籍異動情況,只需要將學(xué)籍表進行修改就可以完全解決以前出現(xiàn)的問題,使學(xué)籍管理工作的執(zhí)行更加規(guī)范化。
參考文獻
[1]魏建斌.高等學(xué)校學(xué)籍管理工作中VFP的實踐探究[J].資治文摘(管理版),2009(05).
[2]劉洪華.淺談VFP在高校學(xué)生學(xué)籍注冊中的幾點應(yīng)用[J].學(xué)術(shù)問題研究,2012(01).
[3]何文全.用VFP控制Excel[J].電腦學(xué)習(xí),2009(01).
[4]李正華.用VFP與Excel結(jié)合進行數(shù)據(jù)處理[J].科技信息,2007(09).
作者單位
1.煙臺大學(xué)文經(jīng)學(xué)院 山東省煙臺市 264005
2.煙臺大學(xué)計算機與控制工程學(xué)院 山東省煙臺市 264005