2010年全国计算机等级考试二级VFP习题及答案:第八章2
多表操作程序设计题 操作步骤如下:(1) 新建表单
(2) 按题目要求在表单中加入控件:
命令按纽Command1、Command2;
标签 Label1、Label2、Label3;
组合框 Combo1;
文本框 Text1、Text2、Text3;
容器 Container1, 并在容器 Container1 中加入文本框 Text1、Text2、Text3、Text4、Text5、Text6、Text7、 Text8、Text9、Text10。
(3) 数据环境设置:
将表文件“学生”、“课程”、“成绩”添加到数据环境中。
(4) 主要属性设置:
表单 Form1 的Caption 属性设置为 “学生成绩查询表单”
命令按纽Command1的Caption 属性设置为 “确定”
命令按纽Command2的Caption 属性设置为 “退出”
标签Label1的Caption 属性设置为 “选择姓名”
标签Label2的Caption 属性设置为 “学号”
标签Label3的Caption 属性设置为 “姓名”
组合框 Combo1的RowSourceType属性设置为 “6-字段”
组合框 Combo1的RowSource属性设置为 “学生.姓名”
(5) 主要事件代码
1. FORM1 INIT 事件代码:
THISFORM.SETALL("Readonly",.T.,"Textbox")
FOR N=1 TO THISFORM.CONTAINER1.CONTROLCOUNT
THISFORM.CONTAINER1.CONTROLS(N).VISIBLE=.F.
ENDFOR
2. COMMAND1 CLICK 事件代码:
SELECT 学生
XH=学号
XM=姓名
THISFORM.TEXT1.VALUE=XH
THISFORM.TEXT2.VALUE=XM
FOR N=1 TO THISFORM.CONTAINER1.CONTROLCOUNT
THISFORM.CONTAINER1.CONTROLS(N).VALUE=""
THISFORM.CONTAINER1.CONTROLS(N).VISIBLE=.F.
ENDFOR
S=0
L=1
SELECT 成绩
LOCATE FOR ALLTRIM(学号)=ALLTRIM(XH)
DO WHILE ! EOF()
SELECT 课程
LOCATE FOR ALLTRIM(课程号)=ALLTRIM(成绩.课程号)
KCM=课程名
SELECT 成绩
THISFORM.CONTAINER1.CONTROLS(L).VALUE=KCM+":"+STR(成绩,5,1)
THISFORM.CONTAINER1.CONTROLS(L).VISIBLE=.T.
S=S+成绩
L=L+1
CONTINUE
ENDDO
IF L>1
THISFORM.TEXT3.VALUE="该生的总平均成绩为:"+STR(S/(L-1),5,1)
ELSE
THISFORM.TEXT3.VALUE="该生没有选修课程!"
ENDIF
SELECT 学生
THISFORM.REFRESH
3. COMMAND2 CLICK 事件代码:
THISFORM.RELEASE
操作步骤如下:
(1) 新建表单
(2) 数据环境设置:
将表文件“学生”、“课程”、“成绩”添加到数据环境中。
(3) 按题目要求在表单中加入控件:
命令按纽组Commandgroup1;
从数据环境中将“学生”表的“姓名”字段、“课程”表的“课程名”字段、“成绩”表的“学号”字段、“成绩”表的“课程号”字段、“成绩”表的“成绩”字段分别拖入表单对应位置。
(4) 主要属性设置:
表单 Form1 的Caption 属性设置为 “学生成绩表编辑表单”
命令按纽组Commandgroup1的ButtonCount 属性设置为 “7”
(5) 主要事件代码:
1. FORM1 INIT 事件代码:
SET SAFETY OFF
THISFORM.COMMANDGROUP1.COMMAND4.ENABLED=.F.
THISFORM.COMMANDGROUP1.COMMAND5.ENABLED=.F.
C="添加删除退出表头前翻表尾后翻"
FOR N=1 TO THISFORM.COMMANDGROUP1.BUTTONCOUNT
THISFORM.COMMANDGROUP1.BUTTONS(N).CAPTION=SUBSTR(C,4*(N-1)+1,4)
ENDFOR
SELECT 学生
INDEX ON 学号 TO XHI
SELECT 课程
INDEX ON 课程号 TO KCI
SELECT 成绩
SET RELATION TO 学号 INTO 学生, 课程号 INTO 课程
THISFORM.REFRESH
2. COMMANDGROUP1 CLICK 事件代码:
SELECT 成绩
DO CASE
CASE THIS.VALUE=1
APPEND BLANK
CASE THIS.VALUE=2
DELETE
CASE THIS.VALUE=3
THISFORM.RELEASE
CASE THIS.VALUE=4
GO TOP
THIS.COMMAND4.ENABLED=.F.
THIS.COMMAND5.ENABLED=.F.
THIS.COMMAND6.ENABLED=.T.
THIS.COMMAND7.ENABLED=.T.
CASE THIS.VALUE=5
SKIP -1
IF BOF()
THIS.COMMAND4.ENABLED=.F.
THIS.COMMAND5.ENABLED=.F.
ENDIF
THIS.COMMAND6.ENABLED=.T.
THIS.COMMAND7.ENABLED=.T.
CASE THIS.VALUE=6
GO BOTTOM
THIS.COMMAND4.ENABLED=.T.
THIS.COMMAND5.ENABLED=.T.
THIS.COMMAND6.ENABLED=.F.
THIS.COMMAND7.ENABLED=.F.
CASE THIS.VALUE=7
SKIP
IF EOF()
THIS.COMMAND6.ENABLED=.F.
THIS.COMMAND7.ENABLED=.F.
ENDIF
THIS.COMMAND4.ENABLED=.T.
THIS.COMMAND5.ENABLED=.T.
ENDCASE
THISFORM.REFRESH
页:
[1]