计算机等级考试二级VFP机试试题20
设置20
1。基本操作题(共四个子题,第一题和第二题7分,第三题和第四题8分)
在考生文件夹下的“订单管理”数据库中完成以下操作:
1。将order_detail、order_list和customer表添加到数据库中。
2。为order_list表创建主索引。索引名称和索引表达式是“顺序号”
3。在order_list表和order_detail表之间建立永久连接(通过“order number”字段)。
4。为上面建立的联系人设置参照完整性约束:更新规则为“受限”,删除规则为“级别”
Link”,插入规则为“Limit”。
本问题主要评估点:
向数据库添加空闲表、建立表索引、建立表间永久连接、编辑参照完整性约束等知识点。
解决这个问题的思路:
第一步:打开考生文件夹下的“订单管理”数据库。
第二步:打开数据库菜单,选择“添加表格(A)”。在弹出的“打开”对话框中,选择考生文件夹下的order_detail表,然后点击“确定”,这样order_detail表就会被添加到“订单管理”数据库中。同样,order_lsit和customer表也将被添加到"
第三步:在数据库设计器中选择order_list表,在主菜单中选择“修改(Y)”打开表设计器,选择表设计器的“索引”选项卡,在索引列中填写“序号”,在索引类型列中选择“主索引”,在索引表达式列中填写“序号”,点击“确定”
第四步:在数据库设计器中,选中order_list表中的索引“订单号”,拖动到order_detail表中的“订单号”索引上,释放,这样两个表就建立了永久连接。
第五步:第四步建立永久连接后,两个表的“订单号”索引之间有一条线。单击指示两个表之间的连接的线条,该线条将被加粗。此时在主菜单“数据库”中选择“编辑参照完整性(I)”,系统会弹出“参照完整性生成器”对话框。在“更新规则”中
二。简单应用(2道小题,每题20分,40分)
在考生文件夹下完成下面的简单申请:
1。列出名为“三益贸易公司”的客户的采购订单详细信息(order_detail)并记录结果
先按“订单号”升序排序,再对同一订单按“单价”降序排序),并存储结果。
到结果表中(表结构与order_detail表结构相同)。
2。考生文件夹下有一个form1表单文件,其中命令按钮click事件下有三条语句。
都是错的。请按照以下要求进行修改(最后保存您的修改)。
(1)在单击“刷新标题”命令按钮时,使表单的标题为“简单应用”;
(2)当单击“订单记录”命令按钮时,order_list表中的记录会显示在表格控件中;
(3)当您单击“关闭窗体”命令按钮时,关闭窗体。
注意:每个错误只能在原语句上修改,不能添加额外的语句。
本问题主要评估点:
查询选择查询、连接查询、查询排序、查询结果目的地、子查询等。在SQL中;控件属性、窗体的操作等知识点。
解决问题的思路:
【/br/】第一个问题:因为要查询客户名称为“三益贸易公司”的采购订单明细,但是采购订单的order_detail中没有该客户名称的字段,所以要通过join查询来完成。因为要联接三个表,所以要在FROM子句后按顺序排列,并用逗号分隔:from order _ detail、order _ list、customer连接条件是客户。客户编号=订单_列表。客户编号和订单列表。订单编号=订单详细信息。订单号放在WHERE子句的后面,还有一个查询条件:CUTOMER。客户名称=“三益贸易公司”也应放在WHERE后面,并通过and与上述条件关联;查询按ORDER BY子句排序,排序依据依次放在ORDER BY子句之后,用逗号分隔:ORDER BY ORDER_DETAIL。订单编号、单价price;要将结果放入永久表中,请使用INTO TABLE子句:INTO TABLE RESULTS。这样一个完整的SQL查询语句可以写成:
选择订单详细信息。*;
FROM ORDER_DETAIL,ORDER_LIST,CUSTOMER
客户在哪里。客户编号=订单_列表。客户编号;
and order _ list . order number = order _ detail . order number;
和客户。客户名称= "三益贸易公司";
order by order _ detail . order number,单价price
到表结果中
第二题:打开考生文件夹下的“form1.scx”,双击表单设计器中的“刷新标题”控件,打开代码编辑器。这里分配了form对象的caption属性,所以应该改成:this form . caption = " simple application ";在窗体设计器中双击“订单记录”控件,打开代码编辑器。在这里,表“ORDER_LIST。DBF”将显示在窗体控件中。因此,若要为grid1控件的RecordSource属性赋值,应将其更改为:this form . grid 1 . record source = " order _ list . DBF ";双击窗体设计器中的“关闭窗体”控件,打开代码编辑器。这里的功能是关闭表单。关闭窗体需要窗体的释演法,因此应该将其改为:thisform.release以退出并保存。
三。综合应用(1题,30分)
首先,在order_detail表中添加一个新字段:新单价(类型与原始单价字段相同。
同上),然后编写满足以下要求的程序:根据order_list表中的“订单日期”字段
的值决定了order_detail表中“新单价”字段的值。原则是订单日期是2001年。
新单价字段的值是原单价的90%,订单日期为2002的新单价字段的值是
原单价的110%(注意:修改操作时不要改变order_detail表中记录的顺序。
sequence),order_detail表中的记录存储在od_new表中(表结构和order_detail
表是相同的);最后,将程序保存为prog1.prg,并执行程序。
然后使用Visual Foxpro的“快速报告”功能创建一个简单的报告
容量按顺序包含order_detail表的订单号、设备号、设备名、新单价、数量字段。
并将报告文件保存为report1.frx
本问题主要评估点:
程序的建立方法,程序中循环结构的使用,SQL查询语句的使用,记录的修改方法;报表的建立方法等知识点。
解决这个问题的思路:
第一步:在VisualFoxPro主窗口中按Ctrl+N,弹出“新建”对话框。在“文件类型”中选择“程序”,然后点击“新建文件”按钮,会弹出程序编辑窗口。
第二步:在弹出窗口中输入以下代码:
SET TALK OFF &&在程序运行时关闭命令结果的显示。
从ORDER_LIST中选择订单编号,其中YEAR = 2001
转换为光标表格
&&从ORDER_LIST中获取订单日期为2001年的所有订单编号,
&&并将结果集放入临时表CurTable中。
DO WHILE NOT EOF() &&遍历临时表CurTable中的每个订单编号。
更新ORDER_DETAIL设置新单价=单价* 0.9;
其中订单号= curtable .订单号
&&如果ORDER_DETAIL中的订单号与临时表的记录号相同;
&&更新新的单价
跳过
ENDDO
从ORDER_LIST中选择订单编号,其中YEAR = 2002
转换为光标表格
DO WHILE NOT EOF()
更新ORDER_DETAIL设置新单价=单价* 0.9;
其中订单号= curtable .订单号
跳过
ENDDO
全部关闭
开启通话
第三步:点击工具栏“保存”按钮,将程序文件保存在考生文件夹下,文件名为prog1.prg,运行程序。
第四步:在Visual FoxPro主窗口中按Ctrl+N,弹出“新建”对话框。在“文件类型”中选择“报表”,然后点击“新建文件”按钮,就会弹出报表设计器。
第五步:点击主窗口“报表”菜单下的“速报(Q)”,弹出“打开”对话框。在考生文件夹中选择order_detail.dbf表,点击“确定”打开“速报”对话框。点击“字段(F)”按钮,将弹出“字段”。将订单号、设备号、设备名、新单价、数量依次输入“选择字段”,点击“确定”返回“快速报告”对话框,点击“确定”生成报告,并将报告文件保存在考生文件夹中,文件名为report1.frx
0条评论