1、国家二级 VF机试-试卷 208及答案解析(总分:12.00,做题时间:90 分钟)一、基本操作题(总题数:2,分数:4.00)1.基本操作题()(分数:2.00)_2.在考生文件夹下,有一表单文件 myformscx。打开该表单文件,然后在表单设计器环境下完成如下操作: (1)在属性窗口中将表单设置为不可移动的,并将其标题设置为“表单操作”。 (2)为表单新建一个名为 mymethod的方法,方法代码为:wait“mymethod“window。 (3)设置 Ok按钮的 Click事件代码,其功能是调用表单的 mymethod方法。 (4)设置 Cance1按钮的 Click事件代码,其功能
2、是关闭当前表单。(分数:2.00)_二、简单应用题(总题数:2,分数:4.00)3.简单应用题()(分数:2.00)_4.(1)在 SCORE MANAGER数据库中查询学生的姓名和 2003年的年龄(计算年龄的公式是:2003-Year(出生日期),年龄作为字段名)。结果保存在一个新表 NEW_TABLE1中。使用报表向导建立报表 NEW_REPORT1,用报表显示 NEW_TABLE1的内容。报表中数据按年龄升序排列,报表标题是“姓名-年龄”,其余参数使用缺省参数。 (2)建立菜单 query_menu。该菜单只有一个“查询”和“退出”两个主菜单项(条形菜单),其中单击菜单项“退出”时,返
3、回到 VFP系统菜单(相应命令写在命令框中,不要写过程)。(分数:2.00)_三、综合应用题(总题数:2,分数:4.00)5.综合应用题()(分数:2.00)_6.建立一个文件名和表单名均为 myform的表单文件,表单上有;表格控件 grid1(RecordSourceType属性手工设置为“别名”),文本框控件 Text1,命令按钮控件 Command1(文本为“确定”)。 程序运行时在文本框中输入“部门名”,然后单击“确定”命令按钮计算该部门各年度的“销售额”(合计)和“利润”(合计)(利润为“销售额-工资额”),按“年度”升序将结果(含“年度”、“销售额”和“利润”3 个字段)保存在以
4、“部门名”命名的 dbf文件的同时,在 Grid1控件中显示计算的结果。如图 1-18所示。(分数:2.00)_国家二级 VF机试-试卷 208答案解析(总分:12.00,做题时间:90 分钟)一、基本操作题(总题数:2,分数:4.00)1.基本操作题()(分数:2.00)_解析:2.在考生文件夹下,有一表单文件 myformscx。打开该表单文件,然后在表单设计器环境下完成如下操作: (1)在属性窗口中将表单设置为不可移动的,并将其标题设置为“表单操作”。 (2)为表单新建一个名为 mymethod的方法,方法代码为:wait“mymethod“window。 (3)设置 Ok按钮的 Cli
5、ck事件代码,其功能是调用表单的 mymethod方法。 (4)设置 Cance1按钮的 Click事件代码,其功能是关闭当前表单。(分数:2.00)_正确答案:(正确答案:(1)在命令窗口执行命令: MODIFY FORMmyform ,打开表单设计器修改表单。 选中表单,在“属性”面板中修改表单(Form1)的 Movable属性值为:F,修改 Caption属性值为:表单操作。 (2)接上一小题操作,执行【表单】【新建方法程序】菜单命令,在弹出的“新建方法程序”对话框的“名称”文本框中输入“mymethod”,单击“添加”按钮新增方法,然后关闭对话框。如图2-48所示。 )解析:解析:表
6、单及控件的常用属性及方法的设置。在 visual FoxPro中,用户可以自定义方法,首先应打开“新建方法程序”对话框定义新方法名;然后在“属性”面板中定义找到该方法并编写该方法的功能代码;方法建立完毕后,用户可以像调用表单中其他方法一样调用新建的方法。另外,要将表单设置为不可移动的,可以通过表单的 Movable属性进行设置。二、简单应用题(总题数:2,分数:4.00)3.简单应用题()(分数:2.00)_解析:4.(1)在 SCORE MANAGER数据库中查询学生的姓名和 2003年的年龄(计算年龄的公式是:2003-Year(出生日期),年龄作为字段名)。结果保存在一个新表 NEW_T
7、ABLE1中。使用报表向导建立报表 NEW_REPORT1,用报表显示 NEW_TABLE1的内容。报表中数据按年龄升序排列,报表标题是“姓名-年龄”,其余参数使用缺省参数。 (2)建立菜单 query_menu。该菜单只有一个“查询”和“退出”两个主菜单项(条形菜单),其中单击菜单项“退出”时,返回到 VFP系统菜单(相应命令写在命令框中,不要写过程)。(分数:2.00)_正确答案:(正确答案:(1)步骤 1:在命令窗口执行命令: OPEN DATABASEscore_manager ,打开数据库环境。 步骤 2:在命令窗口执行命令: SELECT 姓名,2003-year(出生日期) AS
8、 年龄 ; FROM student INTO TABLE new_table1 步骤 3:执行【文件】【新建】菜单命令,或单击“常用”工具栏的“新建”按钮,在弹出的“新建”对话框中选中“报表”选项,然后单击“向导”图标按钮,系统弹出“向导选取”对话框,选中“报表向导”项,单击“确定”按钮。 启动报表向导。 步骤 4:在报表向导的“步骤 1-字段选取”界面的“数据库和表”下单击命令按钮(有 3个点的按钮),在弹出的“打开”对话框中双击“new table1”表,接着将“可用字段”中的所有字段添加到“选定字段”中,单击“下一步”按钮。 步骤 5:跳过“步骤 2-分组记录”界面继续单击“下一步”按
9、钮。 步骤 6:跳过“步骤 3-选择报表样式”界面继续单击“下一步”按钮。 步骤 7:跳过“步骤 4-定义报表布局”继续单击“下一步”按钮。 步骤8:在报表向导的“步骤 5-排序记录”界面中双击“可用的字段或索引标识”中的“年龄”字段到“选定字段”列表中,然后单击“升序”单选项,单击“下一步”按钮。 步骤 9:在报表向导的“步骤 6-完成”界面中修改报表标题为“姓名年龄”,单击“完成”按钮,在“另存为”对话框的“保存报表为:”框中输入报表文件名:new_report1,单击“保存”按钮。 (2)步骤 1:在命令窗口执行命令: CREATE MENU query_menu ,在弹出的“新建菜单”
10、对话框中单击“菜单”图标按钮,打 开菜单设计器。 步骤2:在菜单设计器“菜单名称”列的文本框中依次输入“查询”和“退出”两个主菜单名。 步骤 3:选择“退出”菜单命令的“结果”项为“命令”,并输入命令语句: SET SYSMENU TO DEFAULT 。 步骤 4:执行【菜单】【生成】菜单命令,在弹出的 Visual FoxPro 对话框中单击“是”按钮,接着系统会弹出“生成菜单”对话框,单击“生成”按钮生成一个可执行的菜单文件。 、步骤 5:在命令窗口执行命令: DO query_menumpr ,运行菜单查看结果。)解析:解析:(1)本题考查了 SQL语句和使用报表向导建立报表的方法。在
11、 SQL中,将查询结果保存到永久表中应使用 INTO TABLE或 INTO DBF短语。 (2)本题考查菜单的建立及使用,操作比较简单,注意选择“结果”方式设计菜单命令功能。三、综合应用题(总题数:2,分数:4.00)5.综合应用题()(分数:2.00)_解析:6.建立一个文件名和表单名均为 myform的表单文件,表单上有;表格控件 grid1(RecordSourceType属性手工设置为“别名”),文本框控件 Text1,命令按钮控件 Command1(文本为“确定”)。 程序运行时在文本框中输入“部门名”,然后单击“确定”命令按钮计算该部门各年度的“销售额”(合计)和“利润”(合计)
12、(利润为“销售额-工资额”),按“年度”升序将结果(含“年度”、“销售额”和“利润”3 个字段)保存在以“部门名”命名的 dbf文件的同时,在 Grid1控件中显示计算的结果。如图 1-18所示。(分数:2.00)_正确答案:(正确答案:步骤 1:在命令窗口执行命令: CREATE FORMmyform ,打开表单设计器新建表单。从“表单控件”工具栏中依次向表单添加一个文本框、一个表格和一个命令按钮控件。 步骤 2:在“属性”面板的下拉框中选择表单对象,在“全部”选项卡中修改对象属性值,见表 2-21。 )解析:解析:本大题考查了表单及控件的常用属性和方法的设置;SQL 分组与计算查询。 由于
13、本题限制了表格的数据源类型为“1-别名”,因此,可以先将查询结果输出到表中,然后再通过表格的RecordSource属性指定数据源,完成表格数据的显示。 本题关键是 SQL查询语句中怎样将文本框中显示的“部门名”命名为表名,由于文本框中的数据是随时变化的,因此不能利用一个常量来指定查询输出的表名。解决此问题的方法就是先定义一个变量等于文本框中的数据,然后使用宏替换函数(&)将变量值替换出来,即使文本框的值无论怎样改变,替换出来的数据都是当前文本框显示的值。 另外,本题可利用SUM() 函数进行计算,利用 GROUPBY 短语分组,ORDER BY 短语排序,进行联接查询的两个表是 Dept表和Sell表,联接字段为“部门号”。