楊軍 郭艷燕


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