dministrator双击,出现ODBCAdministrator的设置窗口,如图4.2所示。
图4.2ODBC数据源管理器
选择系统DNS,单击添加按钮,出现如图4.3所示的窗口。
图4.3创建新数据源
选择SQLServer单击完成。开始创建新数据源如图4.4。
图4.4创建SQLServer的新数据源
在名称栏输入数据源的名字(自己命名),选择服务器(如果没运行的服务器则先运行服务器),单击下一步。在出现如图4.5中。
图4.5创建SQLServer的新数据源
选择先前已经建立好的数据库student,其他的属性设置中选择默认值,单击下一步即可,最后测试下与数据库的连接,连接成功则数据源设置完成。
(2)选定DatabaseProfiles窗口的ODBODBC项,右键单击选择NewProfiles,在出现的DatabaseProfilesSetup_ODBC[7]如图4.6
图4.6DatabaseProfileSetup-ODBC
中在ProfileName输入students(自命名),DataSource选择刚才建立好的数据源student。单击OK,在DatabaseProfiles设置窗右键单击students选择connection,则和数据库student连接上了。
(3)在DatabaseProfilesSetup_ODBC页中选择Preview在按Copy按钮,把复制的内容写到应用程序对象的open事件中,如下:
//Profilestudents
SQLCA.DBMS="ODBC"
SQLCA.AutoCommit=False
SQLCA.DBParm="ConnectString='DSN=student;UID=;PWD='"
ifsqlca.sqlcode<>0then
messagebox("连接失败!",sqlca.sqlerrtext)
return
else
open(w_login)
endif
应用程序运行后第一个出现的窗口是上面语句打开的w_login窗口。在应用程序对象的变量定义窗口中定义了全局变量,如下:
stringuser//登陆用户的ID
stringpassword//用户密码
stringgetterm//用于学生选择学期用
stringcnumintro//选择课程介绍用
intjiaose//判断用户角色
§4.3系统功能模块的实现
§4.3.1用户登陆模块实现
本系统的用户使用对象分3种类型:学生、教师、教务员,用户在登陆本系统时就必须选择相应的角色,根据用户角色的不同,本系统分为教务员管理系统、教师管理系统、学生管理系统。并且不同的角色用户进入与其相应的操作主界面。用户登陆窗口命名为:w_login;教师、学生、教务员进入的操作主界面分别命名为:w_teacher_main,w_student_main,w_admin_main。并且所有角色类型用户的操作主界面的WindowType都选择为mdi!。
用户登陆界面:
图4.7用户登陆窗口
学生操作界面:
图4.8学生主窗口
教师操作界面:
图4.9教师主窗口
教务员操作界面:
图4.10教务员主窗口
主窗口中添加图片及文字的实现:
(1)新建窗口w_p2,WindowType设置为child!,窗口中添加图片控件,在图
片控件General页PictureName中选择要添加的图片位置,鼠标拖动设置图片大小再添加statictext控件在,调整两个控件位置。
(2)窗口w_p2的open事件程序代码如下,用于显示文本框内容
stringname
ifjiaose=1then
selectadmin_Name
into:name
fromadmin_Info
whereadmin_Num=:user;
ifsqlca.sqlcode=0then
st_1.text="欢迎教务员"+trim(name)+"光临!"
endif
else
ifjiaose=2then
selectstd_Name
into:name
fromstd_Info
wherestd_Num=:user;
ifsqlca.sqlcode=0then
st_1.text="欢迎学生"+trim(name)+"光临!"
endif
else
selectteacher_Name
into:name
fromteacher_Info
whereteacher_Num=:user;
ifsqlca.sqlcode=0then
st_1.text="欢迎教师"+trim(name)+"光临!"
endif
endif
endif
学生操作主界面的open事件为:OpenSheet(w_p2,w_student_main,0,Original!)
教师和教务员操作主界面的open事件类似学生的,不在详述。
§4.3.2学生选课功能的实现
本系统在学生管理模块实现学生网上选课功能,由于对课程开课安排和性质的规定,学生选课分为专业课程选课、素质选修课程选课以及学生重修选课[9]。
首先介绍专业课程选课功能的实现过程:当学生登陆学生信息管理系统时,系统定义的全局变量user将保存学生登陆系统的学号,通过学生的学号,用函数left()提取学号前4为数字可以判断出此学生所属年级;然后在学期选择窗口选择要选课的学期,并将学期保存到全局变量getterm中;最后在学生基本信息表中提取该学生所属的学院,通过开课年级、开课学期和开课学院可以准确的把此学生所有能选择的课程显示出来供选择参考。
具体代码实现如下:
integerinde=1
stringcom,num,name,grade,tnum,tname,zhouci,time2,cha,users,schools
doublecent
inttime1,sump,subp
users=left(user,4)
selectstd_Sname
into:schools
fromstd_Info
wherestd_Num=:user;
schools=trim(schools)
lv_1.InsertColumn(1,"选课",Left!,200)
lv_1.InsertColumn(2,"授课学院",Left!,600)
lv_1.InsertColumn(3,"课程号",Left!,300)
lv_1.InsertColumn(4,"课程名",Left!,600)
lv_1.InsertColumn(5,"开课年级",Left!,400)
lv_1.InsertColumn(6,"学分",Left!,200)
lv_1.InsertColumn(7,"总学时",Left!,300)
lv_1.InsertColumn(8,"教师号",Left!,300)
lv_1.InsertColumn(9,"教师名",Left!,400)
lv_1.InsertColumn(10,"周次",Left!,300)
lv_1.InsertColumn(11,"上课时间",Left!,400)
lv_1.InsertColumn(12,"总人数",Left!,300)
lv_1.InsertColumn(13,"已选人数",Left!,400)
lv_1.InsertColumn(14,"课程性质",Left!,400)
lv_1.deleteitems()
declarecodecurcursorfor
selectcourse_Com,course_Num,course_Name,course_Grade,course_cent,course_Time,course_Tnum,course_Tname,course_Zhouci,course_Times,course_Sump,course_Subp,course_cha
fromcourse_Info
wherecourse_Grade=:usersandcourse_Term=:gettermandcourse_School=:schools;
opencodecur;
fetch?codecurinto:com,:num,:name,:grade,:cent,:time1,:tnum,:tname,:zhouci,:time2,:sump,:subp,:cha;
dowhileSqlca.Sqlcode=0
lv_1.insertItem(inde,trim("选课"),1)
lv_1.setitem(inde,2,trim(com))
lv_1.setitem(inde,3,trim(num))
lv_1.setitem(inde,4,trim(name))
lv_1.setitem(inde,5,trim(grade))
lv_1.setitem(inde,6,trim(string(cent)))
lv_1.setitem(inde,7,trim(string(time1)))
lv_1.setitem(inde,8,trim(tnum))
lv_1.setitem(inde,9,trim(tname))
lv_1.setitem(inde,10,trim(zhouci))
lv_1.setitem(inde,11,trim(time2))
lv_1.setitem(inde,12,trim(string(sump)))
lv_1.setitem(inde,13,trim(string(subp)))
lv_1.setitem(inde,14,trim(cha))
inde=inde+1
fetch?codecurinto:com,:num,:name,:grade,:cent,:time1,:tnum,:tname,:zhouci,:time2,:sump,:subp,:cha;
loop
closecodecur;
学期选择界面用以确定学生选课学期,每年分为春秋两学期,由数字形式的字符串表示,比如2005年至2006年这一年中春秋两学期分别表示为:2005-2006-1和2005-2006-2。界面如图4.11所示
图4.11学期选择窗口
专业选课界面显示出了学生对应学期、年级的所有可以选择的专业课程信息,提供给学生一个选课参考。如图4.12
图4.12专业选课窗口
根据窗口中列出的所有可以选择的课程,如果想选择某一门课程,则单击选课就可以进行课程选择,如果你已经选择了此门课程,则提示已经选择此课程;系统规定每
上一篇:
VFP现代物流企业管理系统C(论文和程序)
下一篇:
爱情只不过就是,爱与不爱