1、实验 9 表单设计9.1 实验目的1. 熟练掌握用表单设计器创建和使用表单。2. 熟练掌握表单常用控件的创建和使用。9.2 实验内容1. 设计一个如图 1.25 所示的电话通话计费表单(文件名:通话计费.SCX) 。假设电话每分钟通话费为 0.30 元。提示:使用 TIME() (以时:分:秒格式返回系统当前时间)和 SECONDS()函数(以秒为单位,返回自午夜以来经过的时间) ,在点击“通话开始”和“通话结束”命令按钮后,分别记录开始通话和结束通话的时间,将两次调用 TIME()的结果显示在前面两个文本框中,将两次调用SECONDS()取得的值之差经四舍五入处理后作为通话时间显示在第三个文
2、本框中。最后计算出通话费用显示在第四个文本框中。点击“重新计费”按钮,将四个文本框的值清空。注意,因为在通话结束时的计费中要用到通话开始时产生的时间(处于不同的事件中) ,所以在表单的 INIT事件中要设使用的变量为全局变量,同时也要将四个文本框的值清空。图 1.25 电话计费表单界面2. 设计一个如图 1.26 所示的学生单科成绩查询表单(文件名:单科成绩查询.SCX) 。提示:本表单涉及到学生登记表、课程登记表和学生成绩表(见表 1-8、1-10 、1-11) ,在表单的数据环境中要加入三个表。标签“学生姓名”对应的组合框的数据源类型是“字段” ,数据源是学生登记表的“姓名” ;标签“已选
3、修课程”对应的列表框的数据源类型是“SQL 语句” ,数据源是根据学生姓名用 SQL 查询出的“课程名称” ;标签 “成绩”对应的文本框的数据源是一个根据姓名和课程名称的基于 SQL 的“成绩查询” 。本表单的两个主要事件是:Combo1.Interactionchange(组合框的内容发生变化)和 List1.Interactionchange(列表框内容发生变化)。图 1.26 学生单科成绩查询表单界面3. 设计一个如图 1.27 所示的数据表选项浏览表单(文件名:数据表选项浏览.SCX) 。提示:本表单涉及到学生登记表(见表 1-8) 、教师表(见表 1-12) 。当选定学生表时,教师表
4、的各选项不能用;当选定教师表时,学生表的各选项不能用。点击“查询”按钮时,根据选择的表,打开相应的数据表,然后判断用户的选项,添加到一个字符串变量中,作为 Browse 浏览命令的选项。图 1.27 数据表选项浏览表单界面4. 设计一个如图 1.28 所示的成绩条件查询表单(文件名:成绩条件查询.SCX) 。提示:本表单涉及到学生登记表、课程登记表和学生成绩表(见表 1-8、1-10、1-11 ) ,其中标签 “课程名称”对应的组合框数据源类型是“字段” ,数据源是课程登记表的“课程名称” ;标签“比较符”对应的组合框数据源类型是“值” ,数据源是“,=,=,=” ;标签“分数”对应的是文本框
5、,在运行时直接输入分数。表格在表单初始化时设置 THISFORM . GRID1 . COLUMNCOUNT=-1,使表格不显示内容。当点击“查询”按钮时,首先检查课程名称、比较符和分数是否已选择或输入了值,如果没有要给出提示,表格中的内容是根据所给出的查询条件在三表中查询的结果。图 1.28 成绩条件查询表单界面Select 学号,姓名,成绩 form 选课,课程,学生 where 选课.学号=课程.学号 and .5. 设计一个如图 1.29图 1.32 所示的测试表单(要求只测试单选题。文件名:测试.SCX) 。该表单涉及到数据表:试题库.DBF (编号 C4,题目 M,标准答案 C1,
6、输入答案 C1) ,其内容自行输入。提示:本表单数据来源是试题库. DBF。表单中的 TEXT1 用于显示试题的编号; EDIT1 用于显示题库的内容;TEXT2 在测试过程中用于显示该题的用户已选的答案,当测试结束时,用于显示测试的最后得分;同样 LABEL3 在表单运行开始时,显示内容是“已选答案” ,在测试结束时,显示内容是“最后得分” ;选项按钮组供用户选择输入答案;命令按钮组用于选择题目,要求当在第一题和最后一题时要给予提示;“完成”按钮用于统计测试得分,并显示。操作过程见图1.29图 1.32。图 1.29 测试表单界面(1) 图 1.30 测试表单界面(2)图 1.31 测试表单
7、界面(3) 图 1.32 测试表单界面(4)6. 设计一个如图 1.33图 1.34 所示的计时器使用表单(文件名:计时器的使用.SCX) 。提示:计时器使用表单采用表单集形式,第一个表单上的文字由小变大,好似由远到近(见图1.33) ;在暂停一段时间后,自动切换到第二个表单(见图 1.34) 。表单上字的变化和表单的切换分别使用了两个计时器控制。第一个计时器用于当计时器事件激活了一定次数后(如 50 次) ,隐藏第一个表单,同时显示第二个表单;当计时器事件激活了更多次数后(如:80 次) ,则清除表单集,调用下一个表单(如下题的“系统登录”表单) 。第二个计时器用于每激活一次计时器,使其字号
8、加 2(当表单集的表单 1 中的标签文字小于 30 号字) 。图 1.33 “放射性放大字幕”表单 图 1.34 “学生管理系统”表单7. 设计一个如图 1.35 所示的关于系统表单(文件名:关于系统.SCX) 。 提示:关于系统表单主要显示一些系统的开发说明。图 1.35 “关于系统”表单8. 设计一个如图 1.36 所示的系统登录表单(文件名:系统登录.SCX) 。 提示:要新建一个操作员数据表(见表 1-17) 。当文本框输入的内容不等于“操作员”数据表中相应密码字段的内容时,则弹出提示对话框;否则执行后续表单(如“关于系统”表单) 。图 1.36 “系统登录”界面表 1-17 操作员. dbf 的结构和内容姓名 口令操作员 1 AAAAAA操作员 2 BBBBBB操作员 3 CCCCCC