- ·上一篇文章:对于焊接机器人的现状及发展趋势
- ·下一篇文章:对于XML在计算机辅助报价系统中的应用分析
如何实现通用实验室排课辅助系统
摘要:应用VisualFoxpro数据库管理系统进行通用实验室排课辅助系统的设计,并通过Windows的OLE技术实现了与目前流行的Microsoft Excel及Word等办公软件的无缝连接。
关键词:排课辅助系统;数据库; OLE
The Realization of Course Arrangement Auxiliary System for General laboratory
CHEN Wei-lian
(Department of Information Engineering, Zhaoqing Science and Technology Polytechnic, Zhaoqing 526020, China)Abstract:Apply VisualFoxpro database management system to design a course arrangement auxiliary system for general laboratory. And it has realized seamless connections for present popular office software, such as Microsoft Excel and Word and so on through the Windows OLE technology. Key words:Course arrangement auxiliary system; Database; OLE
引言
用纯人工对实验室排课,其工作量大且十分繁琐,耗时也长,且容易出错。由此考虑引入数据库管理代替手工管理,以提高工作效率,减少工作失误。用数据库管理辅助排课是十分方便的,比如增加、查询、删除单个记录或大批量记录都方便快速,并能对所输入的数据进行各种运算。引用数据库管理代替手工处理排课并自动生成目前流行的Microsoft Excel及Word等办公软件对应的处理文件,其方法是完全可行的,在注重效率的今天,开发有特色、快速应用的管理辅助系统尤为重要,这样的处理可以极大提高工作效率,减少工作失误。
考虑到目前VisualFoxpro数据库管理系统比较流行,并且对计算机硬件配置要求不高,本文拟在Win2000操作系统中,在安装了Microsoft Office系列办公软件的前提下,使用VisualFoxpro6.0数据库管理系统进行具体开发实现,并且生成Microsoft Excel及Word等文档。
1 通用实验室排课辅助系统设计
1.1 需求分析
通用实验室排课辅助系统设计是利用数据库管理系统,通过对录入的数据按一定的规则进行运算处理,然后生成所需要的查询表,并对该表通过Windows的OLE技术生成目前流行的Microsoft Excel及Word文档作为输出。具体要求实现排课信息的录入,包括安排实验时间、实验地点、实验人物、实验用时、实验项目等,并实现时间冲突的检测,再到排课数据的各种运算处理,最后实现处理数据的查询输出,其关键技术是对输入的排课数据进行运算。该系统设计思路是广泛应用需用安排实验室上课的单位,应用此系统将极大地方便管理,提高工作效率。
1.2 功能分析
根据上述需求分析,现将通用实验室排课辅助系统归纳为版权信息、排课录入、数据查询、数据维护四个功能模块:
(1) 版权信息:包括版本信息、作者介绍、联系方式等内容,用于保护版权及方便使用者;
(2) 排课录入:包括实验时间、实验地点、实验人物、实验项目等录入,以及时间冲突检测、录入后处理等操作;
(3) 数据查询:包括实验室、教学单位、教学班级、教师等查询,并有将查询内容导出到Microsoft Excel及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)本程序仅用于通用排课信息录入及处理,生成适合应用的Microsoft Excel及Word等文档,并可对数据进行再加工,生成教学计划表及工作人员工作量表等;
(2)排课录入:分三部分,先进行快速录入,可连续输入多周次、星期、节次等排课信息,再进行时间冲突检测,最后进行录入后处理;
(3)数据查询:对进行录入后处理的数据进行各种查询,分为实验室、教学单位、教学班级、教师等四部分查询,并对当前查询生成Microsoft Excel及Word等文档再进行细加工处理或打印;
(4)数据维护:分为总库维护、实验室、教学单位数据维护三部分,另附其他功能(如教学计划表、工作人员工作量生成Microsoft Word文档等)。其中总库维护包括初始化、与Microsoft Excel文档进行交互编辑等。
2.3 系统关键编码
2.3.1 数据处理部分
对输入的数据进行处理采用蛮力法算法,先进行时间冲突检测,如果存在时间冲突,则必须调整时间冲突课程,确保无时间冲突方可进行录入后处理;录入后处理则通过固定的星期(一至七)、固定的节数(一至九)的循环处理,对同班、同室、同周、同课程的课时按学期计连续安排,再按节次计连续安排,最后将运算结果生成总表,后续的查询、工作计划及工作量生成等都在此总表基础上进行处理。以下给出连续节次检测部分编码以供参考:
*打开提取星期的临时数据表
use temp1
appe blank
nn7=''
n=1
m=1
do while n<recc()
go n
nn1=学期安排
nn11=节次
go n+1
nn2=学期安排
nn22=节次
*进行连续节次检测
if nn1=nn2
nn3=nn11+','
nn7=nn7+nn3
else
skip -1
nn7=nn7+nn11
repl 节次安排 with nn7
nn7=''
endif
n=n+1
enddo
*将连续节次安排写入别一个临时表
copy to temp3 for 节次安排<>' '
use ltemp1
appe from temp3
use
2.3.2 数据与Microsoft Excel及Word交互部分
在总表基础上,通过查询将相应记录的生成Microsoft Excel及Word文档,这是通用实验室排课辅助系统的最终任务,这部分的算法及编码是相当重要的,涉及到Windows 的OLE技术。本文通过VisualFoxpro调用Word.Application对象及Excel.Application对象在已有模板的基础上生成Microsoft Excel及Word文档。以下给出单实验室课表生成Microsoft Word文档部分编码以供参考:
WAIT "正在访问 Word 软件……" WINDOW NOWAIT
WordApp=CREATEOBJECT("Word.application") &&访问WORD
If Type("WordApp")#"O"
WAIT CLEAR
MessageBox( "访问Word失败!请检查你的系统是否正确安装 Word 软件!",48,"没有安装Word")
RETURN
ENDIF
WAIT "正在生成表格……" WINDOW
关键词:排课辅助系统;数据库; OLE
The Realization of Course Arrangement Auxiliary System for General laboratory
CHEN Wei-lian
(Department of Information Engineering, Zhaoqing Science and Technology Polytechnic, Zhaoqing 526020, China)Abstract:Apply VisualFoxpro database management system to design a course arrangement auxiliary system for general laboratory. And it has realized seamless connections for present popular office software, such as Microsoft Excel and Word and so on through the Windows OLE technology. Key words:Course arrangement auxiliary system; Database; OLE
引言
用纯人工对实验室排课,其工作量大且十分繁琐,耗时也长,且容易出错。由此考虑引入数据库管理代替手工管理,以提高工作效率,减少工作失误。用数据库管理辅助排课是十分方便的,比如增加、查询、删除单个记录或大批量记录都方便快速,并能对所输入的数据进行各种运算。引用数据库管理代替手工处理排课并自动生成目前流行的Microsoft Excel及Word等办公软件对应的处理文件,其方法是完全可行的,在注重效率的今天,开发有特色、快速应用的管理辅助系统尤为重要,这样的处理可以极大提高工作效率,减少工作失误。
考虑到目前VisualFoxpro数据库管理系统比较流行,并且对计算机硬件配置要求不高,本文拟在Win2000操作系统中,在安装了Microsoft Office系列办公软件的前提下,使用VisualFoxpro6.0数据库管理系统进行具体开发实现,并且生成Microsoft Excel及Word等文档。
1 通用实验室排课辅助系统设计
1.1 需求分析
通用实验室排课辅助系统设计是利用数据库管理系统,通过对录入的数据按一定的规则进行运算处理,然后生成所需要的查询表,并对该表通过Windows的OLE技术生成目前流行的Microsoft Excel及Word文档作为输出。具体要求实现排课信息的录入,包括安排实验时间、实验地点、实验人物、实验用时、实验项目等,并实现时间冲突的检测,再到排课数据的各种运算处理,最后实现处理数据的查询输出,其关键技术是对输入的排课数据进行运算。该系统设计思路是广泛应用需用安排实验室上课的单位,应用此系统将极大地方便管理,提高工作效率。
1.2 功能分析
根据上述需求分析,现将通用实验室排课辅助系统归纳为版权信息、排课录入、数据查询、数据维护四个功能模块:
(1) 版权信息:包括版本信息、作者介绍、联系方式等内容,用于保护版权及方便使用者;
(2) 排课录入:包括实验时间、实验地点、实验人物、实验项目等录入,以及时间冲突检测、录入后处理等操作;
(3) 数据查询:包括实验室、教学单位、教学班级、教师等查询,并有将查询内容导出到Microsoft Excel及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)本程序仅用于通用排课信息录入及处理,生成适合应用的Microsoft Excel及Word等文档,并可对数据进行再加工,生成教学计划表及工作人员工作量表等;
(2)排课录入:分三部分,先进行快速录入,可连续输入多周次、星期、节次等排课信息,再进行时间冲突检测,最后进行录入后处理;
(3)数据查询:对进行录入后处理的数据进行各种查询,分为实验室、教学单位、教学班级、教师等四部分查询,并对当前查询生成Microsoft Excel及Word等文档再进行细加工处理或打印;
(4)数据维护:分为总库维护、实验室、教学单位数据维护三部分,另附其他功能(如教学计划表、工作人员工作量生成Microsoft Word文档等)。其中总库维护包括初始化、与Microsoft Excel文档进行交互编辑等。
2.3 系统关键编码
2.3.1 数据处理部分
对输入的数据进行处理采用蛮力法算法,先进行时间冲突检测,如果存在时间冲突,则必须调整时间冲突课程,确保无时间冲突方可进行录入后处理;录入后处理则通过固定的星期(一至七)、固定的节数(一至九)的循环处理,对同班、同室、同周、同课程的课时按学期计连续安排,再按节次计连续安排,最后将运算结果生成总表,后续的查询、工作计划及工作量生成等都在此总表基础上进行处理。以下给出连续节次检测部分编码以供参考:
*打开提取星期的临时数据表
use temp1
appe blank
nn7=''
n=1
m=1
do while n<recc()
go n
nn1=学期安排
nn11=节次
go n+1
nn2=学期安排
nn22=节次
*进行连续节次检测
if nn1=nn2
nn3=nn11+','
nn7=nn7+nn3
else
skip -1
nn7=nn7+nn11
repl 节次安排 with nn7
nn7=''
endif
n=n+1
enddo
*将连续节次安排写入别一个临时表
copy to temp3 for 节次安排<>' '
use ltemp1
appe from temp3
use
2.3.2 数据与Microsoft Excel及Word交互部分
在总表基础上,通过查询将相应记录的生成Microsoft Excel及Word文档,这是通用实验室排课辅助系统的最终任务,这部分的算法及编码是相当重要的,涉及到Windows 的OLE技术。本文通过VisualFoxpro调用Word.Application对象及Excel.Application对象在已有模板的基础上生成Microsoft Excel及Word文档。以下给出单实验室课表生成Microsoft Word文档部分编码以供参考:
WAIT "正在访问 Word 软件……" WINDOW NOWAIT
WordApp=CREATEOBJECT("Word.application") &&访问WORD
If Type("WordApp")#"O"
WAIT CLEAR
MessageBox( "访问Word失败!请检查你的系统是否正确安装 Word 软件!",48,"没有安装Word")
RETURN
ENDIF
WAIT "正在生成表格……" WINDOW





