VFP在学籍管理中的应用

时间:2022-10-29 01:00:29

VFP在学籍管理中的应用

摘 要学籍管理是学校教务工作的重要环节,结合实际工作,以VFP为开发工具,通过与Excel的交互编程,开发一系列适应工作的软件,来提高学籍管理的质量与水平。

【关键词】学籍管理 VFPEXCEL

学籍管理是高等学校教务管理系统中的重要组成部分,主要包括学生基本情况(姓名、所在班级,所学专业,所在系等)、各系学籍情况(所含专业、所含班级、所含学生)、各专业学生情况、毕业审核等的管理。学籍管理的各个组成部分环环相扣,其中一个环节的变更,会引起其它环节相应的调整,例如学生退学转专业等情况的发生会导致学生学籍信息的变更。所以,要求学籍管理方式必须有良好的适应能力,才能为教学安排和学生的管理工作打下良好的基础。

传统的学籍管理工作很多环节一直采用手工方式进行,尤其是随着各个学校办学规模的扩大,带来的问题越来越多。为了适应新时代的发展,采用现代化技术,提高管理手段势在必行。虽然目前绝大部分高校都已购买综合教务系统,但是由于系统不是定制开发,部分功能与学校要求存在差异,而修改程序花费较大。本文利用VFP(Visual FoxPro)编程技术开发了一系列适应实际工作的软件,来提高学籍管理的质量与水平,下文对软件中的一个程序进行了详细说明。

学生的学籍库是保存在DBF数据表中,而VFP是一种面向对象的关系型数据库管理系统,其提供了功能强大的DBF数据处理能力,虽然目前微软已经停止对其进行开发,但是VFP在学籍管理中地位不可替代,基于这些,本程序的开发工具采用VFP。

1 功能分析

在学籍管理的日常工作中,经常需要给任课教师或辅导员提供班级名单。传统的工作方法是通过前期将班级的学生信息拷贝到一个单独的Excel表格中进行保存,需要时进行打印,但是这种传统的方式存在着很多缺点,例如某个班级中有休学、退学或者转专业的同学,则该班级的名单需要进行手工调整,有时可能不单单需要调整一个班级的名单,而在实际工作中有可能就忘记了修改班级名单,这样就对任课教师造成了极大的不便。为了解决这种不便,同时为了提供工作效率,笔者决定开发一个简单但又实用的名单打印程序。

2 系统架构

本着实用的原则,本程序力求将日常工作中需要的表格都集中在一起。本程序包括“打印学生成绩登记表”、“打印所有成绩登记表”、“打印两列学生名单”、“打印所有两列学生名单”、“打印教学记录表”、“打印所有教学记录表”、“导出excel表格”、“导出所有excel表格”8个模块,如图1所示。可以根据班级进行筛选打印单独某个班级名单,也可以进行年级、层级筛选一次打印多个班级的名单。

3 系统设计

3.1 报表设计

根据烟台大学文经学院学生成绩登记表及教学记录表的格式进行报表文件的设计,力求做到与原表格式一致。在设计报表文件时将表格标题部分放置在报表设计器的页标头部分,而需要显示的数据部分放置在细节区中,如图2所示。

3.2 Excel模板设计

因需要将班级名单导出为Excel表格,所以需要事先设计好固定的格式,如图3所示。根据实际工作需要设计好Excel表格,并保存到软件目录下。在导出数据时根据相应的数据库字段分别将数据写入到不同的Excel单元格中。

4 系统实现

4.1 开发难点

在本程序实现过程中最大的难点就是VFP与Excel的交互编程技术。其交互编程技术的核心问题就是要在VFP中创建一个Excel对象,通过对其创建的对象进行VFP字段的写入,通过循环语句将不同字段分别写入不同的位置,当表格序号达到模板44行即最下一行时,切换到Excel模块第6列的序号列继续写入直至循环结束,后将该文件保存在当前目录下,最后将创建的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列继续写入数据

i=4

j=5

ENDIF

ENDSCAN

………

ef.ActiveWorkbook.SaveAs(SYS(5) + CURDIR() + tempbj) *保存到当前目录下

ef.QUIT

RELEASE ef *释放excel对象

4.2 系统封装

本程序设计到数据表、表单、报表、类代码、Excel模板等大量文件,程序在能独立运行前必须进行封装。封装的具体步骤是将数据表及表单添加到项目文件中,然后经过“联编”、“编译成可执行文件”生成“名单打印.exe”文件。

5 结束语

本程序自投入使用来,大大减轻了工作的劳动强度,提供了工作效率,减少了工作中出错的次数。如果出现学籍异动情况,只需要将学籍表进行修改就可以完全解决以前出现的问题,使学籍管理工作的执行更加规范化。

参考文献

[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

上一篇:基层事业单位人事档案管理创新发展 下一篇:Subversion在多媒体素材库建设中的应用