1、国家二级 VF机试模拟试卷 165及答案与解析 一、基本操作题( 30分) 1 (1)将考生文件夹下的自由表 “职工 ”添加到数据库 “学校 ”中。 (2)对数据库下的表 “职工 ”,使用视图向导建立视图 “view1”,要求显示出表中全部记录的所有字段,并按 “职称 ”排序 (降序 )。 (3)在 “职工 ”表中插入一条记录 (”北京大学 ”, ”李源 ”, ”助教 ”)。 (4)修改表单 “bd1”,将其背景色改为 “蓝色 ”。 二、简单应用题( 40分) 2 在考生文件夹下,打开学生数据库 sdb,完成如下简单应用: (1)使用查询设计器设计一个名称为 svg的查询,查询每个 “女 ”同
2、学的学号 (来自student表 )、姓名、课程名、成绩和任课教师 (来自 teacher表的教师名 ),查询结果按学号升序排序并输出到表 one(查询去向 )中。设计完成后,运行该查询。表 one中的字段分别为:学号、姓名、课程名、成绩、任课教师。 (2)在考生文件夹下,使用快捷菜单设计器设计一个名称为 smenu的快捷菜单。要求如下: 菜单包括 “数据浏览 ”和 “退出 ”两个菜单项: “数据浏览 ”菜单包括 “学生表 ”、 “选课表 ”和 “课程表 ”三个子菜单: 学生表子菜单在过程中使用 SQL语句 “SELECTFROM student”查询学生表的记录。 选课表子菜单在过程中使用
3、SQL语句 “SELECT FROM SC”查询学生选课表的记录。 课程表选项在过程中使用 SQL语句 “SELECT*FROM course”查询课程表的记录。 “退出 ”菜单使用命令返回系统默认的菜单。 三、综合应用题( 30分) 3 使用报表设计器建立一个报表,具体要求如下: 报表的内容 (细节带区 )是 order_list表的订单号、订购日期和总金额。 增加数据分组,分组表达式是 “order_list客户号 ”,组标头带区的内容是 “客户号 ”,组注脚带区的内容是该组订单的 “总金额 ”合计。 增加标题带区,标题是 “订单分组汇总表 (按客户 )”。要求是三号字、黑体,括号是全角符
4、号。 增加总结带区,该带区的内容是所有订单的总金额合计。最后将建立的报表文件保存为 report1 frx文件。 提示:在考试的过程中可以使用 “显示 预览 ”菜单查看报表的效果。 国家二级 VF机试模拟试卷 165答案与解析 一 、基本操作题( 30分) 1 【正确答案】 选择【文件】 【打开】命令,在 “打开 ”对话框的 “文件类型 ”下拉列表框中选择 “数据库 ”,选择 “学校 dbc”,单击 “确定 ”按钮,打开数据库设计器。 在 “数据库设计器 ”中,单击右键选择 “添加表 ”,在 “打开 ”对话框中选择表 “职工 ”,单击 “确定 ”按钮将自南表 “职工 ”添加到数据库 “学校 ”
5、中。 (2) 选择【文件】 【新建】命令,选择 “视图 ”,进入 “本地视图向导 ”对话框。 在 “本地视图向导 ”对话框中,选择 “学校 ”数据库下的 “职工 ”数据表,并把 “可用字段 ”下的全部字段添加到 “选定字段 ”列表框中。 连续单击 “下一步 ”进入 “排序记录 ”的设计界面,将 “可用字段 ”列表框中的 “职工职称 ”字段添加到右边的 “选定字段 ”列表框中,并选择 “降序 ”单选项。 连续单击 “下一步 ”进入最后的 “完成 ”设计界面,单击 “完成 ”按钮保存视图为“view1”,退出视图设计向导。 (3)在命令窗口中输入命令: INSERT INTO职工 VALUES(“
6、北京大学 “, “李源 “,“助教 “)(回车执行 )。 (4) 选择【文件】 【打开】命令,在 “打开 ”对话 框的 “文件类型 ”下拉列表框中选择 “表单 ”,选择 “bd1 scx”,单击 “确定 ”按钮,打开表单设计器。 在表单设计器中,在表单属性窗口中修改 “BackColor”属性值为 “0, 0, 255”。 关闭表单设计器并保存表单。 二、简单应用题( 40分) 2 【正确答案】 (1)步骤 1:在命令窗口执行命令: OPEN DATABASE sdb,打开数据库环境。 步骤 2:在命令窗口执行命令: CREATE QUERY svg,打开查询设计器,在 “添加表或视图 ”对话
7、 框中,分别双击 student表、 sc表、 course表和 teacher表,将表添加到查询设计器中,此时,添加的表会按照数据库中已存在的表间联系自动为 4个表在查询设计器中建立联系。 步骤 3:根据题目要求,在 “字段 ”选项卡的 “可用字段 ”中,依次双击 “student学号 ”、 “student姓名 ”、 “course课程名 ”、 “sc成绩 ”,将它们添加到 “选定字段 ”列表中;然后在 “函数和表达式 ”下的文本框中输入表达式: teacher教师名 as任课教师,再单击 “添加 ”按钮,将其添加到 “选定字段 ”列表中。 步骤 4:在 “筛选 ”选项卡内的 “字段名 ”
8、列中选择 “student性别 ”, “条件 ”列选择“=”, “实例 ”列输入 “女 ”。 步骤 5:在 “排序依据 ”选项卡内双击 “选定字段 ”列表框中的 “student学号 ”,将其添加到 “排序条件 ”列表框中,在 “排序选项 ”中选择 “升序 ”。 步骤 6:执行【查询】 【查询去向】菜单命令,在弹出的 “查询去向 ”对话框中单击 “表 ”图标按钮。接着在 “表名 ”中输入文件名 ONE,单击 “确定 ”按钮。 步骤 7:最后单击 “常用 ”工具栏中的 “运行 ”按钮查看结果,将查询文件保存 到考生文件夹下。 (2)步骤 1:在命令窗口执行命令: CREATE MENU smen
9、u,在弹出的 “新建菜单 ”对话框中单击 “快捷菜单 ”图标按钮,打开快捷菜单设计器。 步骤 2:在菜单设计器 “菜单名称 ”列的文本框中依次输入 “数据浏览 ”和 “退出 ”两个主菜单名, “数据浏览 ”菜单命令的 “结果 ”下拉框中选择为 “子菜单 ”,单击 “创建 ”按钮进入下级菜单设计,在 “菜单名称 ”列的第 1、 2、 3行文本框中依次输入子菜单名 “学生表 ”、 “选课表 ”和 “课程表 ”,将 3个子菜单的 “结果 ”都设置为 “过程 ”,分别单击 3个过程后面的 “创建 ”按钮打开过程编辑器,编写过程代码。 步骤 3:三个过程代码如下: “学生表 ”菜单命令的过程代码: SE
10、LECT*FROM student。 “课程表 ”菜单命令的过程代码: SELECT *FROM course。 “选课表 ”菜单命令的过程代码: SELECT *FROM sc。 步骤 4:通过 “菜单级 ”下拉框返回主菜单项设计界面,设置 “退出 ”菜单项的 “结果 ”列为 “命令 ”,并输入命令语句: SET SYSMENU TO DEFAULT 步骤 5:执行【菜单】 【生成】菜单命令,在弹出的 Visual FoxPro对话框中单击 “是 ”按钮,接着系统会弹出 “生成菜单 ”对话框,单击 “生成 ”按钮生成一个可执行的菜单文件 (smenu mpr)。 【试题解析】 (1)本题主要
11、考查的是查询设计器的使用。该查询用到了 student、sc、 course和 teacher四张表,应按照 student表、 sc表、 course表和 teacher表的顺序将其添加到查询设计器,再根据题目要求从每个表 中选取字段,设置查询条件等完成查询。 在查询设计器中输入计算表达式时,可直接在查询设计器 “字段 ”选项卡的 “函数和表达式 ”下的文本框中输入表达式,同时也可以通过打开 “表达式生成器 ”对话框进行输入,要为输入的表达式指定一个新的字段名,可以通过 AS短语指定。 (2)本题主要考查了快捷菜单的设计,快捷菜单与下拉菜单相比,缺少条形菜单,即快捷菜单仅包括一个弹出式菜单,
12、其他设计基本上都与下拉菜单的设计一致。操作过程中注意主菜单与子菜单的操作,从子菜单返回主菜单设计界面,可以使用菜单设计器右侧的 “菜单级 ”下拉框,另外,编写 “退出 ”菜单命令时,要熟记返回系统菜单的命令语句: SET SYSMENU TO DEFAULT;最后注意生成可执行菜单文件。 三、综合应用题( 30分) 3 【正确答案】 步骤 1:在命令窗口执行命令: CREATE REPORTREPORT1,打开报表设计器。 步骤 2:右击报表选择【数据环境】快捷菜单命令,继续在报表数据环境中单击右键选择【添加】快捷菜单命令,在 “添加表或视图 ”对话框中双击order_list表,将表添加到报
13、表数据环境中。 步骤 3:右击报表数据环境中的order_list表 ,选择【属性】快捷菜单命令,在弹出的报表属性面板中修改 “Order”属性值为 “客户号 ”,该操作主要是为了在设计分组记录时候,记录能按 “客户号 ”索引排序的数据。如图 2-50所示。步骤 4:从报表数据环境的 order_list表中,依次拖动 “订单号 ”、 “订购日期 ”和 “总金额 ”字段到报表设计器的细节带区,再通过 “报表控件 ”工具栏向报表的 “页标头 ”中添加 3个名为 “订单号 ”、 “订购日期 ”和 “总金额 ”的标签控件,调整标签与细节带区字段的位置。如图2-51所示。 步骤 5:执行【报表】 【数
14、据分组】菜单命令,弹出 “数据 分组 ”对话框,在对话框中单击“表达式 ”行的表达式生成器按钮,在弹出的 “表达式生成器 ”对话框的 “字段 ”列表中双击 “order list客户号 ”字段,单击 “确定 ”按钮返回 “数据分组 ”表达式,继续单击“确定 ”按钮关闭对话框,可以看到报表设计器中添加了 “组标头 ”和 “组注脚 ”两个带区。如图 2-52所示。 步骤 6:调整组标头的显示区域 (向下拖动 “组标头 ”栏 ),将order list表中的 “客户号 ”字段拖到该区域,并添加一个名为 “客户号: ”的标签控件。 步骤 7:接着调整组注脚的显示区域,通过 “报表控件 ”工具栏向报表的
15、 “组注脚 ”添加一个域控件,系统会先弹出一个 “报表表达式 ”对话框,在对话框中单击 “表达式 ”行的表达式生成器按钮,在弹出的 “表达式生成器 ”对话框的 “字段 ”列表中双击 “order_list总金额 ”字段,单击 “确定 ”按钮返回 “报表表达式 ”对话框;接着单击“格式 ”行中的表达式按钮弹出 “格式 ”对话框,选中 “数值型 ”选项,单击 “确定 ”按钮返回 “数据分组 ”表达式;继续在 “报表表达式 ”对话框中单击 “计算 ”按钮,在弹出的“计算字段 ”对话框中选中 “总和 ”,单击 “确定 ”按钮返回 “数据分组 ”表达式,继续单击 “确定 ”按钮关闭对话框,可 以看到报表
16、设计器的 “组注脚 ”区域增加了一个 “总金额 ”域控件。为该字段添加一个名为 “总金额: ”的标签。如图 2-53所示。步骤 8:执行【报表】 【标题总结】菜单命令,在弹出的 “标题总结 ”对话框中分别勾选“标题带区 ”和 “总结带区 ”复选框,单击 “确定 ”按钮可以看到报表设计器中添加了“标题 ”和 “总结 ”带区。 步骤 9:执行【报表】 【默认字体】菜单命令,在弹出的“字体 ”对话框中选择 “字体 ”为 “黑体 ”, “字号 ”为 “三号 ”;接着再向报表的 “标题 ”带区添加一个标签控件,输入标签标题为:订单分组汇总表 (按客户 );再按照 “步骤7”的操作,为 “总结 ”带区添加
17、一个 “总金额 ”的域控件和一个 “总金额: ”的标签。设计结果如图 2-54(a)所示。单击 “常用 ”工具栏中的 “预览 ”按钮可浏览报表设计效果,如图 2 54(b)所示。 【试题解析】 本大题考查的是分组报表的设计。建立分组报表的关键包括以下几点: 在数据环境中要指定索引项便于记录分组,这也是最关键的步骤,否则报表中的分组记录将出错,该属性可以通过报表 “属性 ”面板中的 “Order”属性指定,注意指定前要先向数据环境中添加表。 指定索引项后,则可以进行分组报表设 计,在 “数据分组 ”对话框中设置 “数据分组 ”表达式,本题的分组表达式是: order_list客户号。 将表中字段按要求放到报表各个带区之后,再利用域控件计算总金额数值,注意本题有两个计算 “总金额 ”的地方,一个是每组的总金额,另一个是全部记录的总金额,注意两个总金额所处的带区位置不要弄错;另外,设置域控件格式时,格式应为 “数值型 ”,计算方式为 “总和 ”,分别在 “格式 ”对话框和 “计算字段 ”对话框中进行设置。 最后,设置报表标签格式可以通过【报表】 【默认字体】菜单命令打开 “字体 ”对话框进行设置,注 意,应先设置标签的字体格式,然后再向报表设计器中添加标签,该字体格式的设置对已存在的标签文字无效。