1、界面如图10-8所示。图10-8 课程信息维护界面二、 学生信息维护使用表单向导制作一个学生信息维护表单frmXs.scx,可以对学生信息进行添加、删除、修改、查询打印等功能。界面如图10-9所示。图10-9 学生信息维护界面三、 学生成绩维护使用一对多表单向导制作一个成绩信息维护表单frmCj.scx,可以对成绩信息进行添加、删除、修改、查询打印等功能。界面如图10-10所示。图10-10 学生成绩维护界面四、 班级信息维护新建一个表单frmBjmgr.scx,在表单上添加一个具体三个页面的页框控件,设计一个能够对班级信息进行添加、编辑与查询的表单。界面如图10-11所示:(1)添加班级。当
2、用户输入班级编号、班级名称和班级评语后,单击添加按钮可以将班级信息添加到班级表中,单击重置按钮可以将文本框中的内容清空并使光标位于第一个文本框内。图10-11 班级信息添加界面添加按钮的单击事件代码如下:*取得用户输入的班级编号、班级名称、班级评语内容strBjbh=allt(thisform.pgfBj.pgTj.txtBjbh.value)strBjmc=allt(thisform.pgfBj.pgTj.txtBjmc.value)strBjpy=allt(thisform.pgfBj.pgTj.txtBjpy.value)*判断是否输入了各项内容,如未输入完全提示并退出if strBjb
3、h= or strBjmc= or strBjpy= MessageBox(信息输入不完全!,64,提示) returnendif*查找输入的班级编号是否已经存在locate for trim(bjbh)=strBjbh*如果已经存在提示重输if Found()班级编号已经存在,请重输入!*物理删除班级表中多余的空行dele all for allt(bjbh)=use use data/bj exclusivepack*追加一条空记录append blankgo bottom*将用户输入的内容更新到班级表中replace bjbh with strBjbh,bjmc with strBjmc
4、,bjpy with strBjpyMessageBox(添加成功!thisform.refresh重置按钮代码如下:thisform.pgfBj.pgTj.txtBjbh.value=thisform.pgfBj.pgTj.txtBjmc.value=thisform.pgfBj.pgTj.txtBjpy.value=thisform.pgfBj.pgTj.txtBjBh.setFocus()(2)维护班级信息。如图10-12所示,当用户单击“第一条”按钮时,记录将定位在班级信息表的第一条记录,当用户单击“末一条”按钮时,记录将定位在班级信息表的最后一条记录,当用户单击“下一条”按钮时,记录
5、将定位在班级信息表的当前记录的下一条记录,当用户单击“上一条”按钮时,记录将定位在班级信息表的当前记录的上一条记录。用户输入班级编号单击查询,如果查找到相关记录则显示,否则提示不存在。当查询出记录后,单击删除按钮可以从班级信息删除当前记录,当单击修改按钮时,可以将修改了的当前记录更新到班级信息表中。图10-12 班级信息编辑界面查询按钮的单击事件代码:*取得用户输入的班级编号strBjbh=trim(thisform.pgfBj.pgBj.txtBjbh.value)select bjgo top*判断表中是否有记录,如果没有记录退出过程if Bof()*根据输入的班级编号在表中查询相关记录*
6、如果没有查找到则提示没有找到并退出过程if Not Found()没有相关信息! thisform.pgfBj.pgBj.txtBjbh.setFocus()*如果找到则显示thisform.pgfBj.pgBj.txtBjbh.value=bjbhthisform.pgfBj.pgBj.txtBjmc.value=bjmcthisform.pgfBj.pgBj.txtBjpy.value=bjpy删除按钮的单击事件代码:*判断是否输入了班级编号,如果未输入则给出提示并退出过程请输入要删除班级的编级号!*在表中查找与用户输入的班级编号相同的记录*如果查找到提示用户是否要删除,如果用户确定,则删
7、除,否则退出过程* 如果没有查到则提示没有要删除的记录 intMsg=MessageBox(确定要删除吗?!,36, if intMsg=7 endifdeleteuse*清除所有文本框thisform.pgfBj.pgBj.txtBjbh.value=thisform.pgfBj.pgBj.txtBjmc.value=thisform.pgfBj.pgBj.txtBjpy.value=thisform.pgfBj.pgBj.txtBjbh.setFocus()删除成功!else修改按钮的单击事件代码:strBjbh=allt(thisform.pgfBj.pgBj.txtBjbh.value
8、)strBjmc=allt(thisform.pgfBj.pgBj.txtBjmc.value)strBjpy=allt(thisform.pgfBj.pgBj.txtBjpy.value)*查找表中是否存在与用户输入的编号相同的班级信息*如果不存在则提示不存在,如果存在请用户确定是否要修改,*如果用户确定则完成修改,否则退出过程if not Found()班级编号不存在! thisform.pgfBj.pgTj.txtBjbh.setFocus()intMsg=MessageBox(确定要修改吗?if intMsg=7replace bjbh with strBjbh,bjmc with s
9、trBjmc,bjpy with strBjpy for trim(bjbh)=strBjbh修改成功!第一条按钮的单击事件代码:*跳到首记录*如果已经到文件头则退出过程*显示首记录下一条按钮的单击事件代码:*判断是否已经到了文件尾,*如果未到末尾下移一打记录if not Eof()skip*如果到了末尾则提示并退出过程if Eof()已到文件末尾!return*显示相关记录上一条按钮的单击事件代码:*判断是否到达了文件首*若未到则向前移动一条记录if not Bof() skip -1*如果到了则提示并退出过程messagebox(已经是第一条了!末一条按钮的单击事件代码:*判断是否到达文件
10、尾*若未到达文件尾则移向最后一条记录if not eof() then *若到文件尾则退出过程(3)查询班级信息界面。如图10-13所示,在查询依据组合框中列出所有班级信息表的字段作为查询的依据,当用户在关键字文本框中输入关键字后,单击查询铵钮可以查询出所有符合条件的记录,显示在表格中,如果用户未输入关键字则显示全部的班级信息,当没有查到符合条件的记录则提示没有记录。图10-13 班级信息查询界面查询按钮的代码如下:*取得用户选择的汉字字段名称zdm=allt(thisform.pgfBj.pgCx.cmbYj.value)*取得用户输入的关键字strKey=trim(thisform.pgf
11、Bj.pgCx.txtKey.value)*根据用户返回的汉字字段名轮换为表中的字段名yj=bjbhdo case case zdm=班级编号 yj=班级名称bjmc班级评价bjpyendcase*判断表中有没有相关记录*如果没有相关记录,则提示并退出locate for allt(&yj.) = strKey if not (strKey=没有相关记录!*设置表格的数据源为SQL查询thisform.pgfBj.pgCx.grid1.recordSourcetype=4*设置表格有三列thisform.pgfbj.pgCx.grid1.columncount=3*设置表格各列的标头thisf
12、orm.pgfbj.pgCx.grid1.columns(1).header1.caption=thisform.pgfbj.pgCx.grid1.columns(2).header1.caption=thisform.pgfbj.pgCx.grid1.columns(3).header1.caption=班级评语*在关键字两边加上关键字%,便于进行Like匹配查询strKey=%+strKey+*设置表格的数据源thisform.pgfBj.pgCx.grid1.recordSource=select * from bj where allt(&yj.) like strKey into c
13、ursor temp_bj第三节 信息统计新建一个表单frmTj.scx,在该表单上添加一个单选按钮组和一个表格,设计界面如图10-14所示。(1) 按课程统计成绩:按各门课程名称进行分组建立一个查询,求出该课程的最高分,最低分及平均分,并按平均分降序排序。当用户单击“按课程统计成绩”按钮时,将该查询设为表格的数据源,将查询结果显示出来。(2) 按班级统计成绩:按各个班级名称进行分组建立一个查询,求出该班级的最高分,最低分及平均分,并按平均分降序排序。当用户单击“按班级统计成绩”按钮时,将该查询设为表格的数据源,将查询结果显示出来。(3) 按学生统计成绩:按各学生姓名进行分组建立一个查询,求出
14、该学生的最高分,最低分及平均分,并按平均分降序排序。当用户单击“按学生统计成绩”按钮时,将该查询设为表格的数据源,将查询结果显示出来。(4) 按班级统计课程成绩:按先按班级再按课程进行分组建立一个查询,求出每个班级的各门课程的最高分,最低分及平均分,并按平均分降序排序。当用户单击“按班级统计课程成绩”按钮时,将该查询设为表格的数据源,将查询结果显示出来。(5) 按课程统计班级成绩:按先按课程再按班级进行分组建立一个查询,求出每门课程中各个班级的最高分,最低分及平均分,并按平均分降序排序。当用户单击“按课程统计班级成绩”按钮时,将该查询设为表格的数据源,将查询结果显示出来。图10-14 成绩信息
15、统计界面命令按钮组的单击事件代码如下:*取得用户当前选定的统计方式intKey=thisform.optiongroup1.valuedo case *当选定按课程进行统计时 case intKey=1 *设置表格共有4列 thisform.grid1.columncount=4 *设置各列的标题 thisform.grid1.columns(1).header1.caption=课程名称 thisform.grid1.columns(2).header1.caption=最高分 thisform.grid1.columns(3).header1.caption=最低分 thisform.gr
16、id1.columns(4).header1.caption=平均分 *设置数据源类型为查询 thisform.grid1.recordsourcetype=3 *设置数据源为查询avg_kc thisform.grid1.recordsource=avg_kc case intKey=2avg_bj case intKey=3学生姓名avg_xs case intKey=4 thisform.grid1.columncount=5 thisform.grid1.columns(5).header1.caption=avg_bjkc case intKey=5avg_kcbj endcase
17、thisform.refresh第四节 报表打印(1) 报表打印主界面。新建一个表单,frmReport.scx,并在其上画一个单选按钮组和两个命令按钮,设置界面如图10-15所示。用户可以通过此界面对班级信息、课程信息、学生信息及成绩信息进行打印。打印按钮的单击事件代码如下:intDy=thisform.optiongroup1.value case intDy=1 report form rptbj preview case intDy=2 report form rptkc preview case intDy=3 report form rptxs preview case intDy
18、=4 report form rptcj preview图10-15 报表打印界面(2) 使用报表向导设计班级信息报表rptBj.frx,设置界面如图10-16所示。图10-16 班级信息报表(3) 使用报表向导设计课程信息报表rptKc.frx,设置界面如图10-17所示。图10-17 课程信息报表(4)使用报表向导设计学生信息报表rptXs.frx,设置界面如图10-18所示。图10-18 学生信息报表(5)使用一对多报表向导设计学生成绩报表ftpCj.frx,设置界面如图10-19所示。要求按班级名称和学生学号进行分组,并统计每个学生的平均成绩,全班的平均成绩。图10-19 学生成绩信息报表
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1