会计考友 发表于 2012-7-31 22:22:49

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]
查看完整版本: 2010年全国计算机等级考试二级VFP习题及答案:第八章2