thisform.container1.label2.left=thisform.container1.label2.left+5
else
thisform.container1.label2.left=0-thisform.container1.label2.width
endif
interval属性设置为100。
运行可看到“欢迎使用”这四个字,不但左右移动,而且颜色不断的变化。
四个container的visible均设置为“.f.”。
“学生信息”按钮的Clickevent属性里写入
thisform.container2.visible=.t.
thisform.container3.visible=.f.
thisform.container4.visible=.f.
“课程安排”按钮的Clickevent属性里写入
thisform.container3.visible=.t.
thisform.container2.visible=.f.
thisform.container4.visible=.f.
“用户管理”按钮的Clickevent属性里写入
thisform.container4.visible=.t.
thisform.container2.visible=.f.
thisform.container3.visible=.f.
“退出系统”按钮的Clickevent属性里写入
thisform.release
3.2.3学生信息模块的设计
接下来就是对按钮所对应的container做详细的设计。
其中,container2的界面设置为如下图7所示
图7
不难发现,当中包含了一个页框,其中page1中有五个按钮两个标签两个表格,一个文本框,一个组合框。
为了简便期间,本人只对主要控件当中的主要事件做一些说明,其他的内容不再赘述。
“精确查找”的Clickevent写入如下代码
thisform.container2.pageframe1.page1.text1.enabled=.t.
mand3.enabled=.t.
thisform.container2.pageframe1.page1.grid2.visible=.t.
thisform.container2.pageframe1.page1.text1.setfocus
“浏览全部”的Clickevent里写入
thisform.container2.pageframe1.page1.grid1.visible=.t.
thisform.container2.pageframe1.page1.label2.visible=.t.
bo1.visible=.t.
mand5.visible=.t.
鼠标移动到组合框上面,单击右键选择组合框生成器,在“列表项”选项卡中的“用此填充列表”里选择“手工输入数据”,然后在属性中的数据选项卡中的rowsource里输入各个院系的名称,如图8
图8
两个表格的recordsource里均填入“陕西理工学院07级学生名单.dbf”readonly属性设置为“.t.”
文本框后面的“确定”按钮的Clickevent里写入
use陕西理工学院07级学生名单.dbf
t=alltrim(thisform.container2.pageframe1.page1.text1.value)
locateforalltrim(学号)=t
iffound()
gotop
setfilterto陕西理工学院07级学生名单.院(系)="t"
else
messagebox("查无此人,请输入正确的学号")
thisform.container2.pageframe1.page1.text1.value=""
thisform.container2.pageframe1.page1.text1.setfocus
endif
组合框后面的“确定”按钮的Clickevent里写入
docase
casebo1.value="经法学院"
gotop
setfilterto陕西理工学院07级学生名单.院(系)="经法学院"
casebo1.value="经贸系"
gotop
setfilterto陕西理工学院07级学生名单.院(系)="经贸系"
casebo1.value="教科系"
gotop
setfilterto陕西理工学院07级学生名单.院(系)="教科系"
casebo1.value="体育学院"
gotop
setfilterto陕西理工学院07级学生名单.院(系)="体育学院"
casebo1.value="文学院"
gotop
setfilterto陕西理工学院07级学生名单.院(系)="文学院"
casebo1.value="外语系"
gotop
setfilterto陕西理工学院07级学生名单.院(系)="外语系"
casebo1.value="历史系"
gotop
setfilterto陕西理工学院07级学生名单.院(系)="历史系"
casebo1.value="艺术学院"
gotop
setfilterto陕西理工学院07级学生名单.院(系)="艺术学院"
casebo1.value="数学系"
gotop
setfilterto陕西理工学院07级学生名单.院(系)="数学系"
casebo1.value="物理系"
gotop
setfilterto陕西理工学院07级学生名单.院(系)="物理系"
casebo1.value="化学学院"
gotop
setfilterto陕西理工学院07级学生名单.院(系)="化学学院"
casebo1.value="生物学院"
gotop
setfilterto陕西理工学院07级学生名单.院(系)="生物学院"
casebo1.value="土建系"
gotop
setfilterto陕西理工学院07级学生名单.院(系)="土建系"
casebo1.value="电信系"
gotop
setfilterto陕西理工学院07级学生名单.院(系)="电信系"
casebo1.value="材料学院"
gotop
setfilterto陕西理工学院07级学生名单.院(系)="材料学院"
casebo1.value="机械学院"
gotop
setfilterto陕西理工学院07级学生名单.院(系)="机械学院"
casebo1.value="电气系"
gotop
setfilterto陕西理工学院07级学生名单.院(系)="电气系"
casebo1.value="计算机系"
gotop
setfilterto陕西理工学院07级学生名单.院(系)="计算机系"
casebo1.value="管理系"
gotop
setfilterto陕西理工学院07级学生名单.院(系)="管理系"
endcase
右下角的“返回”按钮的Clickevent里写入
ifk=0
thisform.container2.pageframe1.page1.grid1.visible=.f.
thisform.container2.pageframe1.page1.label2.visible=.f.
bo1.visible=.f.
mand5.visible=.f.
k=k+1
elsek=1
thisform.container2.visible=.f.
k=0
endif
page2的界面如图9
图9
实际上在这个页面上还有两个容器,visible均为“.f.”。
现在所看到的是container1里的信息,container2里的信息如图10
图10
“总体查询”按钮的Clickevent里写入:
thisform.container2.pageframe1.page2.container1.visible=.t.
thisform.container2.pageframe1.page2.container2.visible=.f.
“个体查询”按钮的Clickevent里写入:
thisform.container2.pageframe1.page2.container1.visible=.f.
thisform.container2.pageframe1.page2.container2.visible=.t.
“输入数据”按钮的Clickevent里写入:
DOFORMseletect_class
“整理成绩”按钮的Clickevent里写入:
&&计算所有的总成绩
USEDMD_G.DBF
REPLACECHJ1WITH0,CHJ2WITH0
USE
I=1
FORi=1TO6
BJ_DAIMA=""
DOCASE
CASEI=1
BJ_DAIMA="电商071"
CASEI=2
BJ_DAIMA="电商072"
CASEI=3
BJ_DAIMA="会计071"
CASEI=4
BJ_DAIMA="会计072"
CASEI=5
BJ_DAIMA="财管071"
CASEI=6
BJ_DAIMA="财管072"
ENDCASE
USEBJ_DAIMA
REPLACEYWWITHYW1+YW2,SXWITHSX1+SX2,YYWITHYY1+YY2ALL
GOTO1
REPLACEWLWITHWL1+WL2,HXWITHHX1+HX2,SWWITHSW1+SW2ALL
GOTO1
REPLACEZFWITHYW+SX+YY+WL+HX+SWALL
ENDFOR
MESSAGEBOX("数据整理完毕!
")
“大平均分”按钮的Clickevent里写入:
CLOSEALL
CLEARMEMORY
SETTALKOFF
USEDPJ.DBF
DELETEALL
PACK
USE
USEDPJBB.DBF
DELETEALL
PACK
USE
FORI=1TO6
DOCASE
CASEI=1
BJ_NAME="电商071"
BJ_MCH=BJ_NAME
CASEI=2
BJ_NAME="电商072"
BJ_MCH=BJ_NAME
CASEI=3
BJ_NAME="会计071"
BJ_MCH=BJ_NAME
CASEI=4
BJ_NAME="会计072"
BJ_MCH=BJ_NAME
CASEI=5
BJ_NAME="财管071"
BJ_MCH=BJ_NAME
CASEI=6
BJ_NAME="财管072"
BJ_MCH=BJ_NAME
ENDCASE
FORJ=1TO6&&计算一个班中的六科成绩的平均分
DOCASE
CASEJ=1
KM_NAME="语文"
KM_DAIMA="YW"
CASEJ=2
KM_NAME="数学"
KM_DAIMA="SX"
CASEJ=3
KM_NAME="英语"
KM_DAIMA="YY"
CASEJ=4
KM_NAME="物理"
KM_DAIMA="WL"
CASEJ=5
KM_NAME="化学"
KM_DAIMA="HX"
CASEJ=6
KM_NAME="生物"
KM_DAIMA="SW"
ENDCASE
USE&BJ_NAME&&打开相应的班级库文件
AVERAGE&KM_DAIMATODKPJF&&计算单科平均分
USE
USETEACHER.DBF
LOCATEFORNAME="&BJ_MCH".AND.KM="&KM_NAME"
RKJSH=T_NAME
USE
USEDPJ.DBF
APPENDBLANK
REPLACEBJWITHBJ_MCH,KMWITHKM_NAME,RKWITHRKJSH,PJFWITHDKPJF
USE
ENDFOR
ENDFOR
MESSAGEBOX("数据处理完毕!
")
DOFORMSHOW_DPJ
“离均差”按钮的Clickevent里写入:
&&------------------------------**
&&项目名称:
成绩处理程序**
&&开发日期:
2008-11-12**
&&开发环境:
Vfp6.0**
&&基本功能:
1计算p值**
&&2计算离均差**
&&3可比离均差**
&&4起始离均差**
&&5离均差涨幅**
&&开发人:
愚人码头于维国**
&&------------------------------**
SETTALKOFF
CLOSEALL
USELJC.DBF&&清空离均差表
REPLACEALLPZHWITH0
REPLACELJCWITH0
USE
&&--------------------------------------------------------**
&&p值计算方法:
1按单科成绩降序排序**
&&2计算三个段平均分,分别为:
**
&&
(1)A1=1至1名单科成绩的平均分**
&&
(2)A2=2至2名单科成绩的平均分**
&&(3)A3=3至3名单科成绩的平均分**
&&3p=A1*0.5+A2*0.35+A3*0.15**
&&-----------------------------------------