毕业论文论文范文课程设计实践报告法律论文英语论文教学论文医学论文农学论文艺术论文行政论文管理论文计算机安全
您现在的位置: 毕业论文 >> 论文 >> 正文

PB教务管理系统(开题报告+任务书+英文文献翻译) 第16页

更新时间:2010-3-18:  来源:毕业论文
PB教务管理系统(开题报告+任务书+英文文献翻译) 第16页
§4.4 关键技术
§4.4.1 班级选课的解决方案
班级选课的解决方案如下:
1.在班级下拉列表选择班级,点击确定后将在已选课程处显示班级已选课程。
2.选择课程列表中的课程,添加至预选课程中,点击保存即可成功选课。
3.选中已选课程,点击删除即可删掉已选课程。
 图4.7 选课窗口
该窗口的open事件如下:
int i
//建立班级信息数据存储对象
ds_class=create datastore     //创建DataStore实例
ds_class.dataobject="dw_grade"  //关联数据窗口
ds_class.settransobject(sqlca)    //指定事务对象
ds_class.retrieve()       //检索数据
//建立班级名称列表
for i=1 to ds_class.rowcount()
 ddlb_class.additem(ds_class.getitemstring(i,2))
next
//检索课程信息数据
this.dw_course.settransobject(sqlca)   //指定事务对象
this.dw_course.retrieve()       //检索数据
//检索班级已选课记录数据
dw_selected.settransobject(sqlca)
dw_selected.retrieve()
//过滤,在窗口打开时不显示已选课记录
dw_selected.setfilter("课程分配_班级=-1")
dw_selected.filter()

选定班级的”确定” 按钮的clicked事件代码如下:
string name
int n
name=trim(w_courseopen.ddlb_class.text)  //获得班级名称
if name="" then return        //没有输入班级名称,返回
//检查输入的班级名称是否正确
n=ds_class.find("名称='"+name+"'",1,ds_class.rowcount())
if n<=0 then
 messagebox("课程分配","班级名称错误!",Exclamation!)
 w_courseopen.ddlb_class.setfocus()
 return            //返回
end if
//显示班级已选课程
dw_selected.setfilter("课程分配_班级
="+string(ds_class.GetItemNumber(n,1))+"")
dw_selected.filter()
//启用相关操作按钮
w_courseopen.cb_add.enabled=true
w_courseopen.cb_delete.enabled=true
w_courseopen.cb_save.enabled=true
w_courseopen.cb_sdelete.enabled=true
w_courseopen.cb_refresh.enabled=true
w_courseopen.cb_clear.enabled=true

保存选课的“保存“按钮的clicked事件代码如下:
//将当前预选课程添加到课程分配记录表中
int class_num,course_num ,n,i
string name
//获得当前班级编号
n=ds_class.rowcount()
n=ds_class.find("名称='"+w_courseopen.ddlb_class.text+"'",0,n)
class_num=ds_class.getitemnumber(n,1)
for i=1 to w_courseopen.lb_preselect.totalitems()
 //获得课程编号
 name=w_courseopen.lb_preselect.text(i)
 n=w_courseopen.dw_course.rowcount()
 n=w_courseopen.dw_course.find("名称='"+name+"'",0,n)
 course_num=w_courseopen.dw_course.getitemnumber(n,1)
 //添加选课记录
 insert into 课程分配(课程,班级)
  values (:course_num,:class_num);
 if sqlca.sqlnrows>0 then
  commit;    //提交
 else
  rollback;   //回滚
 end ifnext
messagebox("课程分配","已成功保存课程分配记录!")
//清除预选课程列表
w_courseopen.lb_preselect.reset()
//刷新已选课程列表
w_courseopen.dw_selected.retrieve()
§4.4.2 排课问题的解决方案
制定课表是该系统中比较难的一部分,数据窗口复杂,连接多,牵涉到的数据表多几个问题,在编码时主要采用了利用数据存储对象分别对每一个数据窗口进行操作的原理,简化了代码。其操作窗口如下:
 图4.8 排课窗口
该模块通过选择班级,来进一步的对班级的所有课程进行安排。其中调用了班级信息表,教室资源表,课程临时表以及课程分配表。
对班级的选择只能选已经存在的班级,通过下拉菜单来实现对班级输入信息的限制,在选择了班级的同时,系统将首先清除它的原课程信息记录并通过调用班级人数获得适合该班级的教室信息链接到教室的下拉菜单中进行选择。
该窗口的open事件代码如下:
string name
int i,j,n,nrow
//建立教室资源数据存储对象
ds_rooms=create datastore     //创建DataStore实例
ds_rooms.dataobject="dw_roomresourse" //关联数据窗口
ds_rooms.settransobject(sqlca)   //指定事务对象
ds_rooms.retrieve()    //获得最新教室资源数据
//建立排课记录数据存储对象
ds_table=create datastore     //创建DataStore实例
ds_table.dataobject="dw_coursetable" //关联数据窗口
ds_table.settransobject(sqlca)   //指定事务对象
ds_table.retrieve()       //检索数据
//建立班级信息数据存储对象
ds_class=create datastore     //创建DataStore实例
ds_class.dataobject="dw_grade"   //关联数据窗口
ds_class.settransobject(sqlca)   //指定事务对象
ds_class.retrieve()       //检索数据
//检索班级课程信息数据
dw_course.settransobject(sqlca)   //指定事务对象
dw_course.retrieve()       //检索数据
//检索课程临时表数据
dw_ctabletemp.settransobject(sqlca)  //指定事务对象

 << 上一页  [11] [12] [13] [14] [15] [16] [17] [18] [19] [20]  ... 下一页  >> 

PB教务管理系统(开题报告+任务书+英文文献翻译) 第16页下载如图片无法显示或论文不完整,请联系qq752018766
设为首页 | 联系站长 | 友情链接 | 网站地图 |

copyright©youerw.com 优文论文网 严禁转载
如果本毕业论文网损害了您的利益或者侵犯了您的权利,请及时联系,我们一定会及时改正。