摘要:应用visualfoxpro数据库管理系统进行通用实验室排课辅助系统的设计,并通过windows的ole技术实现了与目前流行的microsoftexcel及word等办公软件的无缝连接。
关键词:排课辅助系统;数据库;ole
引言
用纯人工对实验室排课,其工作量大且十分繁琐,耗时也长,且容易出错。由此考虑引入数据库管理代替手工管理,以提高工作效率,减少工作失误。用数据库管理辅助排课是十分方便的,比如增加、查询、删除单个记录或大批量记录都方便快速,并能对所输入的数据进行各种运算。引用数据库管理代替手工处理排课并自动生成目前流行的microsoftexcel及word等办公软件对应的处理文件,其方法是完全可行的,在注重效率的今天,开发有特色、快速应用的管理辅助系统尤为重要,这样的处理可以极大提高工作效率,减少工作失误。
考虑到目前visualfoxpro数据库管理系统比较流行,并且对计算机硬件配置要求不高,本文拟在win2000操作系统中,在安装了microsoftoffice系列办公软件的前提下,使用visualfoxpro6.0数据库管理系统进行具体开发实现,并且生成microsoftexcel及word等文档。
1通用实验室排课辅助系统设计
1.1需求分析
通用实验室排课辅助系统设计是利用数据库管理系统,通过对录入的数据按一定的规则进行运算处理,然后生成所需要的查询表,并对该表通过windows的ole技术生成目前流行的microsoftexcel及word文档作为输出。具体要求实现排课信息的录入,包括安排实验时间、实验地点、实验人物、实验用时、实验项目等,并实现时间冲突的检测,再到排课数据的各种运算处理,最后实现处理数据的查询输出,其关键技术是对输入的排课数据进行运算。该系统设计思路是广泛应用需用安排实验室上课的单位,应用此系统将极大地方便管理,提高工作效率。
1.2功能分析
根据上述需求分析,现将通用实验室排课辅助系统归纳为版权信息、排课录入、数据查询、数据维护四个功能模块:
(1)版权信息:包括版本信息、作者介绍、联系方式等内容,用于保护版权及方便使用者;
(2)排课录入:包括实验时间、实验地点、实验人物、实验项目等录入,以及时间冲突检测、录入后处理等操作;
(3)数据查询:包括实验室、教学单位、教学班级、教师等查询,并有将查询内容导出到microsoftexcel及word等文档中的操作;
(4)数据维护:包括总库数据、实验室数据、教学单位数据、其他数据等维护,其中,其他数据包括生成教学计划表及工作人员工作量表。
2系统实现
2.1总体结构设计
建立一个数据库,内含基本信息表、实验室数据表、教学单位数据表,其中表结构相应地结合对应信息参数设置,其中基本信息表每一个记录对应一个最小时间单位、最小空间单位、最小实验人物单位,这是时间冲突检测算法的强硬要求,实验室数据表每一个记录对应每个实验室数据,教学单位数据表每一个记录对应每个教学单位数据,数据库具体结构略去。用面向对象程序设计思想,在visualfoxpro6.0数据库管理系统中快速建立该数据库管理系统的框架,并嫁接到各个数据表。
2.2快速建立该数据库管理系统的原型
2.2.1版权信息
如图1所示:
表1版权信息
2.2.2排课录入
如图2所示:
图2排课录入
2.2.3数据查询
如图3所示:
表3数据查询
2.2.4数据维护
如图4所示:
图4数据维护
实现的方法:
(1)本程序仅用于通用排课信息录入及处理,生成适合应用的microsoftexcel及word等文档,并可对数据进行再加工,生成教学计划表及工作人员工作量表等;
(2)排课录入:分三部分,先进行快速录入,可连续输入多周次、星期、节次等排课信息,再进行时间冲突检测,最后进行录入后处理;
(3)数据查询:对进行录入后处理的数据进行各种查询,分为实验室、教学单位、教学班级、教师等四部分查询,并对当前查询生成microsoftexcel及word等文档再进行细加工处理或打印;
(4)数据维护:分为总库维护、实验室、教学单位数据维护三部分,另附其他功能(如教学计划表、工作人员工作量生成microsoftword文档等)。其中总库维护包括初始化、与microsoftexcel文档进行交互编辑等。
2.3系统关键编码
2.3.1 数据处理部分
对输入的数据进行处理采用蛮力法算法,先进行时间冲突检测,如果存在时间冲突,则必须调整时间冲突课程,确保无时间冲突方可进行录入后处理;录入后处理则通过固定的星期(一至七)、固定的节数(一至九)的循环处理,对同班、同室、同周、同课程的课时按学期计连续安排,再按节次计连续安排,最后将运算结果生成总表,后续的查询、工作计划及工作量生成等都在此总表基础上进行处理。以下给出连续节次检测部分编码以供参考:
*打开提取星期的临时数据表
2.3.2 数据与microsoftexcel及word交互部分
在总表基础上,通过查询将相应记录的生成microsoftexcel及word文档,这是通用实验室排课辅助系统的最终任务,这部分的算法及编码是相当重要的,涉及到windows的ole技术。本文通过visualfoxpro调用ation对象及ation对象在已有模板的基础上生成microsoftexcel及word文档。以下给出单实验室课表生成microsoftword文档部分编码以供参考:
wait"正在访问word软件……"windownowait
wordapp=createobject("ation")&&访问word
iftype("wordapp")#"o"
waitclear
messagebox("访问word失败!请检查你的系统是否正确安装word软件!",48,"没有安装word")
return
endif
wait"正在生成表格……"windownowait
e=.t.&&&
n=’生成word文档’
("d:\排课\实验教学课程表模板.doc")
wordtable=nts(1).tables(1)
*******************
wordcelltext=""
select实验室名称mwdgroupby实验室名称
select系别mwdgroupby系别
selectwdxb
ifrecc()>1
jxdw="系(部、中心):实验中心"
else
jxdw="系(部、中心):"+trim(系别)
endif
useinwdxb
nts(1).paragraphs(2).=jxdw+"学年度第学期"
selectwdmmcc
forwdi=1torecc()
selectwdmmcc
gowdi
ifwdi<>recc()
*
endif
xyxmc=实验室名称
select*mwdwhere实验室名称=xyxmc
selectwdxyx
(1,2).=trim(实验室名称)+chr(13)+"("+trim(实验室地点)+")"
forwdii=1to7
forwdiii=1torecc()
gowdiii
ifval(星期)=wdii
wordcelltext=wordcelltext+trim(节次安排)+’节:第’+trim(学期安排)+’周,’+trim(班级)+’,’+trim(学生人数)+’人,’+trim(课程名称)+’,’+trim(实验教师)+chr(13)
endif
endfor
(wdii+1,2).=wordcelltext
wordcelltext=""
endfor
useinwdxyx
endfor
useinwdmmcc
useinwd
nts(1).saveas("d:\排课\实验室课表.doc")
releasewordapp 来源:论文网在线
waitclear
messagebox("生成word文件完毕,文件位置d:\排课\实验室课表.doc!",64,"完毕")
return
3系统测试
本辅助系统用visualfoxpro6.0数据库管理系统编译并生成安装文件,安装到win2000操作系统,并在安装有microsoftoffice系列办公软件下的单机中进行测试。执行该辅助系统,进行各种处理后,发现在与microsoftexcel交互过程中,如果microsoftexcel版本过高的话,要先将microsoftexcel文档保存为低版本文档,去除格式设置后,才可与visualfoxpro进行导入,这是visualfoxpro6.0的局限性。因此在编写与microsoftexcel交互的模块中,注意通过调用ation对象另存为版本低的excel文件,以避免出现导入错误。
4结束语
经过运行验证,本辅助系统适用于实验室排课相关工作,能适应较低机器配置,其方法是完全可行的,并且工作效率极高,输出格式规范美观且可进一步加工。如要更进一步提高系统处理的能力,可以考虑用网络数据库管理系统对用户数据进行分散输入、集中管理,即应用此开发模型转为网络开发平台,如转为c/s或b/s结构,将会极大提高其应用范围。
参考文献:
[1]柳纯录.信息系统项目管理师教程[m].北京:清华大学出版社,2005.
[2]李雁翎.foxpro6.0使用与开发技术[m].北京:清华大学出版社,2005.
本文链接:http://www.qk112.com/lwfw/jsjlw/xinxiguanli/260082.html