基于VFP的幼儿信息管理系统的设计与实现
2010-09-12陈龙猛
陈龙猛
(青岛农业大学理学与信息科学学院,山东青岛266109)
基于VFP的幼儿信息管理系统的设计与实现
陈龙猛
(青岛农业大学理学与信息科学学院,山东青岛266109)
本文介绍了用Visual Foxpro6.0开发的一个幼儿信息管理系统的设计与实现。该系统基于C/S模式运行,采用先构建本地多用户管理信息系统原型,再升迁为C/S系统的路线开发。文中分析了系统需求、数据库设计及系统结构与功能,并重点论述了幼儿分班、系统安全性控制、共享冲突等关键问题的解决。
幼儿信息管理系统;Visual Foxpro6.0;C/S;升迁;数据库
引言
在幼儿园引进计算机进行幼儿信息管理,是幼教信息化发展的要求和大势所趋。开发并利用幼儿信息管理系统,不但可以实现幼教管理信息化,大大提高工作效率,而且可以提高幼儿园的硬件设施档次和知名度,有利于提高生源。通过实践我们发现,幼儿管理的信息化可以提高幼儿园管理水平、教学质量和为家长服务的质量。
本文介绍一个以Visual Foxpro6.0(以下简称VFP6)为开发工具,以Microsoft SQL Server2000为远程数据库服务器,采用原型化方法的C/S模式的幼儿信息管理系统的设计与实现,该系统尤其适合单位附属幼儿园的幼儿信息管理需要。
一、系统需求分析
幼儿园中的幼儿信息管理工作包括幼儿入园登记、分班、插班、调班、退学、请销假、体检、疫苗接种、幼儿生日提醒、特色班管理、升级、毕业等方面。在使用方面,园长可通过系统对全园的幼儿信息进行查阅和管理,班级教师可以对本班幼儿基本信息进行查询,但只能对本班教学运行信息如请销假等进行更新。
根据上述幼儿管理工作要求,系统中需要存储幼儿基本信息和日常教学产生的信息两方面的数据。在功能方面,需要为上述两类用户提供信息查询、更新、数据导入导出等信息维护、统计和报表功能,以及幼儿分班、调班、升级等其他幼儿管理功能。在安全性方面,根据幼儿园管理权限要求,将本系统的用户分为园长用户、班级教师用户和管理员用户三个类别,对其分别授以不同的系统使用权限。在使用方面,幼儿信息管理软件要支持在网络环境中的多用户同时运行,这包括园长用户和每班的教师用户。
二、开发工具选择
VFP6是一种自含式的DBMS,它功能先进、强大,支持客户机/服务器结构(C/S结构),与其他软件具有高度兼容性。利用VFP6自带的升迁向导(Upsizing Wizards),可将本地多用户管理信息系统升迁为C/S结构的Microsoft SQL Server2000应用系统。本文所述系统采用VFP6为DBMS和软件开发平台。
三、系统概要设计
1.系统设计方案
该信息管理系统采用C/S结构。开发时,先按C/S模式的总体要求设计本地幼儿信息管理系统,再按原型化方法用VFP6建立数据库和实现其应用软件原型,通过评测后,利用升迁向导将其VFP数据库升迁为远程Microsoft SQL Server2000数据库,建立Microsoft SQL Server 2000数据库服务器,从而实现一个基于C/S模式的幼儿信息管理系统。系统用户分为园长用户、教师用户和管理员用户三类。
在实现具体功能时,为利于升迁、安全性保护和提高网络数据库访问效率,对数据库中表的访问主要通过视图进行。
2.数据库设计
系统需要管理的幼儿信息分为幼儿基本信息和日常教学所产生的信息两大类,它们的变动性、使用对象和使用频度不同,按照数据规范化理论要求,[1]它们在数据库中要用不同的表(Table)存储。为满足部分幼儿家长的特殊教育要求,幼儿园往往会开设特色班,周末上课,因此系统设有特色班管理功能。而同一类的数据相互之间的依赖关系又各不同,按照提高数据规范化程度和数据库访问效率的综合要求,本系统中将幼儿信息数据库结构设计如下:
在园幼儿基本信息表child(幼儿编号、幼儿姓名、性别、出生日期、入园日期、幼儿来源…)
离园幼儿基本信息表childgo(幼儿编号、幼儿姓名、性别、出生日期、退托日期、入园日期、幼儿来源…)
班级表class(班级编号、班级名称、成立年份、负责教师名称)
特色班SpecialClass(特色班编号、特色班名、成立年份、负责教师名称)
账户表account(账户名、密码、班级编号)
升班表promotecls(原班级编号、新班级编号)
在园幼儿学籍信息表childmem(幼儿编号、幼儿姓名、请假日期、请假时间、销假时间)
幼儿疫苗接种表childvaccine(幼儿编号、疫苗名称、接种时间)
上述表中,SpecialClass表和child表之间是多对多联系,class表和child表之间也是多对多联系。这两种多对多联系分别用表SpecialClass_child(特色班编号、幼儿编号)和表class_child(班级编号、幼儿编号)表示。
幼儿基本信息表child和childgo还含有幼儿来源、幼儿双亲学历信息、家庭联系信息等字段。因为附属幼儿园在招收幼儿时,首先招收所隶属单位的教职工子女入园,故设置幼儿来源字段,含“校外”、“单职工”、“双职工”三个选项;幼儿双亲学历信息则用作幼儿教育与父母学历相关性的教学研究资料。为确保系统数据库中重要数据的安全,还为表child和childgo设置了备份数据表childb和childgob。备份数据表与对应的数据表结构内容完全相同,由系统定期备份。
四、系统的结构与功能
幼儿信息管理系统的组成结构与功能如图1所示。整个系统包括用户登录、数据维护、查询、幼儿分班、信息统计、数据输出、帮助七大部分。
图1 幼儿信息管理系统的功能组成
1.用户登录
系统中设置系统管理员、园长、教师三类用户。用户登录采用“用户名+密码”的身份标识和鉴别方式。通过身份鉴别后,系统按照其用户类型设置相应的操作权限。园长有对全部信息的查询权限,教师有对本班幼儿非基本信息的全部权限、对本班幼儿基本信息的查询权限以及对本人信息的维护权限,管理员为系统的超级用户。对不同用户操作权限的控制分别通过两种途径实现,一是通过参数化视图来实现,将教师用户的班级信息存于public型变量privclass中,打开视图时用它给视图参数赋值;二是对于教师用户登录后,将其无权操作的菜单或菜单项关闭,通过设置菜单或菜单项的skip for表达式为usertype〈>adminstrtor来实现。
在教师用户登录后,系统自动检查该教师所在班级每位幼儿的出生日期,若与当前日期相同,则显示提示信息。在下午用户退出系统时,系统自动检查第二天的日期是否等于幼儿出生日期,若是,则提前给出生日提示信息。
2.数据维护
图2 数据维护的组成功能
幼儿信息维护模块如图2所示,它包括数据导入/导出、入托/退托、特色班报名录入、疫苗接种信息录入、数据修改、清除重复记录等常用功能。导入导出功能可实现child表按dif、foxpro dbf、xls三种数据格式进行导入和导出。数据修改按需要提供了表式修改、分项修改和按班级修改三种功能。
建立命令按钮类库进行数据维护,以提高代码重用性,如btns类中含数据维护常用的记录移动、添加、删除、查找、修改等方法的代码。
职业技术师范院校教师教育课程体系的构建体现了德育为先、学生为本、实践导向的教学理念,在课程目标上体现了对学生教育理念与师德修养、教育教学知识与能力以及实践教学能力的培养和锻炼,在课程设置上体现了课程教学与实践教学的合理配置,符合国家的相关要求。
3.查询
查询是系统的重要功能,为兼顾操作效率和查询功能的完备性,将查询操作分为常用查询和通用智能查询两类。对频率高的查询,如按姓名、班级、特色班、疫苗接种、年龄、入园日期、父母学历等的查询,为它们分别设置相应的菜单命令实现,其中疫苗接种查询又分为按班级、姓名、接种的疫苗三种方式的查询;而对于其他不常用查询,则设立通用查询,由用户通过鼠标或键盘选取或输入查询条件以实现用户需要的查询。
4.分班
幼儿编班模块的功能组成如图3所示。
图3 幼儿分班模块的功能组成
幼儿编班功能包括新入园幼儿的分班、老生升班和特色班分班三个方面。对于新入园幼儿的分班,不但包括小班与小小班的划分,还包括同一级的划分,如将小班幼儿分为两个班。对于幼儿园的升班,不是一到学年末就全部升到高一级,而是要根据幼儿年龄、性别、爱好等因素确定哪些升班,哪些不升班,有的在升班后还要调班。对同一级新生分班时,要在性别、年龄等相对平衡的前提下随机分班。对于升班,因为在园幼儿的变动性,除考虑上述因素外,还要考虑幼儿特长。对此,系统中将幼儿编班功能设计为向导式,即先由用户输入分班或升班规则,然后系统据此进行分班或升班,若对结果不满意,可选择“撤销升班”或“分班”,恢复分班前的班级组成状态;若对分班结果基本满意或个别幼儿家长要求调班,则可利用调班功能进行调班。上述方案,能够满足用户对系统分班功能的自动化和灵活性两方面的要求。
用户按向导操作进行分班时,系统每一步都给出简明的提示说明和支持数据帮助用户抉择。以分班为例,其操作流程为:(1)输入年龄段,查看被分班孩子情况统计;(2)输入分班决定;(3)实施分班并显示结果;(4)根据分班结果决定接受、撤销或进行微调。
重新分班向导的第一步的界面如图4所示。
图4 重新分班向导第一步界面
5.统计
为使园长能及时获得本园幼儿不同方面的统计信息,系统的统计功能包括:
(1)综合信息统计:该功能可实现对幼儿园中每一个班按总人数、男女孩人数、单双职工人数、各年龄段人数进行统计并显示。
(2)按年龄段统计:根据输入的出生起止日期,显示该日期范围内出生的全园幼儿详细信息,以及这部分幼儿按性别和单双职工的统计信息。
(3)统计入托孩子:根据输入的入托日期范围,显示该日期范围内入托的全园幼儿详细信息,以及这部分幼儿按性别和单双职工的统计信息。
(4)统计退托孩子:根据用户输入的退托日期范围,显示退托的全园幼儿详细信息,以及这部分幼儿按性别和单双职工的统计信息。
(5)参加特色班幼儿信息统计和参加疫苗接种幼儿信息统计:各特色班人数、全部特色班人次数、性别和单双职工信息,每种疫苗接种的统计信息和全部疫苗接种的统计信息。
上述各项统计,都配有“打印预览”和“打印”输出功能。
6.数据输出
该模块目前实现了各班级统计信息输出、打印班级花名册、特色班花名册、疫苗接种名单以及按年龄段输出功能。每种打印包括按XLS文件输出和按打印报表格式输出两种方式。打印报表表单(Report)是按幼儿园规定的标准样表格式设计的,可实现标准打印。将幼儿信息输出为XLS文件,可供用户进一步处理,满足其多样性信息需求。
7.帮助
系统采用流行的窗口式、菜单驱动用户界面,并提供联机帮助功能。用户在使用该软件的过程中,可通过菜单或按F1键打开联机帮助功能。系统采用“.DBF-样式(.DBF-style)”的联机帮助,它是用标准VFP自由表建立的,易被移植到其他VFP平台,支持跨平台应用程序和向后兼容。要建立“.DBF-样式”的联机帮助,需要按下面步骤进行:
(1)建立帮助信息VFP自由表,该表含三个字段,其类型必须依次为Numerical、Character、Memo,分别存储帮助上下文标识号、帮助主题名和帮助信息。
(2)用SET HELP TO〈表名>指定帮助信息文件。
(3)用HELP命令显示帮助信息。
图5为“数据维护操作”主题的帮助窗口。
图5 数据维护操作帮助窗口
五、系统实现及关键技术问题的解决
本系统为多用户数据库应用系统,在设计时,除进行数据完整性、安全性控制外,还要保证数据的一致性和优化系统运行性能,为此采取了如下措施:
(1)在表单中用视图访问数据,视图的Wheretype属性选用DB_KEYANDMODIFIED。利用视图本身具有的更新冲突管理技术来管理对多用户数据的访问。
(2)在表单中使用私有数据工作期。
(3)SQLServer升迁向导产生的所有数据对象初始时仅对数据库所有者和系统管理员授予存取权限,对其他用户授权许可可用企业管理器或Grant和Revoke命令;SQLServer升迁向导并不对VFP存储过程和触发器进行升迁,这需要在SQLServer企业管理器中手工进行。
(4)通过SQLSETPROP()函数对远程表启用人工事务,使用SQLCOMMIT()和SQLROLLBACK()函数控制事务处理,实现对远程表的更新,以处理数据共享引起的共享冲突等问题。其代码如下面所示:[2]
hConnect=CURSORGETPROP(‘connecthandle’)
*获得连接句柄
=SQLSETPROP(hConnect,’transmode’,DB_ TRANSMANUAL)*启用人工事务lSuccess=TABLEUPDATE(.T.,.F.)*非强制更新所有记录
if lSuccess=.F.*如果更新失败
=SQLROLLBACK(hConnect)
=AERROR(ERRS)
DO CASE
CASE ERRS[1,1]=1582*如果违反了字段规则,做相应处理
…..
CASE ERRS[1,1]=1585*如果记录已被其他用户修改,做相应处理
nNextModified=GETNEXTMODIFIED(0)
DO WHILE nNextModified〈>0
GO nNextModified
FOR nField=1 to FCOUNT()
cField=FIELD(nField)
IF OLDVAL(cField)〈>CURVAL(cField)
nResult=MESSAGEBOX(“数据已被另一用户修改;
保留修改吗?”,4+48,“修改的记录”)
IF nResult=7
TABLEREVERT(.F.)
ENDIF
EXIT
ENDIF
ENDFOR
nNextModified=GETNEXTMODIFIED (nNextModified)
ENDDO
TABLEUPDATE(.T.,.T.)
SQLCOMMIT(hConnect)
CASE ERRS[1,1]=1700*如果记录已被其他用户使用,做相应处理
…..
CASE ERRS[1,1]=1884*如果违反唯一索引规则,做相应处理
…..
OTHERWISE
=MESSAGEBOX("UNKNOWN ERROR MESSAGE"+STR(ERRS[1,1]))
ENDCASE
Else
=SQLCommit(hConnect)
Endif
对于涉及多个远程表的复杂更新操作,如退托处理需要从child表向childgo表移动记录,这类操作功能就采用上述人工事务处理方式实现。
结束语
本文研究了以Visual Foxpro6.0为开发工具、以Microsoft SQL Server 2000为远程数据库服务器、基于C/S模式的幼儿信息管理系统的设计与实现。该系统已应用于莱阳农学院幼儿园幼儿信息管理,系统应用效果良好。系统采用模块化和面向对象方式设计,可扩充性好,今后可继续扩展教学管理等模块。
[1]王珊,陈红.数据库系统原理教程[M].北京:清华大学出版社,1998:171-172.
[2]韩作生,巩裕伟等.Visual FoxPro实用教程(第二版)[M].东营:中国石油大学出版社,2002:278-295.
(编辑:鲁利瑞)
book=68,ebook=134
TP315
A
1673-8454(2010)14-0068-05