计算机等级考试二级VFP机试试题17
第17集
一、基本操作题(共四个子题,1、2题7分,3、4题8分)
在考生文件夹下完成以下操作:
1。创建一个新项目“客户管理”。
2。在新建立的项目“客户管理”中创建数据库“订单管理”。
3。在“订单管理”数据库中建立order_list表。表格结构如下:
客户号的字符类型(6)
订单号字符类型(6)
订单日期类型
总额浮动型(15.2)
4。为order_list表创建主索引。索引名称和索引表达式是“顺序号”。
本问题主要评估点:
创建项目、数据库、数据库中的表和索引。
解决问题的思路:
第一步:在Visual FoxPro主窗口中按Ctrl+N,弹出“新建”对话框。在文件类型中选择"项目",然后点击"新建文件"按钮;
第二步:在弹出的“创建”对话框中,选择考生文件夹,在项目文件中填写“customer management.pjx”,然后点击保存按钮;因此,创建了一个新项目;
第三步:在弹出的项目管理器中选择“数据”选项卡,然后选择“数据库”,最后点击“新建”按钮;
第四步:在弹出的“新建数据库”对话框中点击“新建文件”;
第五步:在弹出的“创建”对话框中,选择考生文件夹,在“数据库名称”中填写“order management.dbc”,然后点击保存按钮;这就完成了数据库的添加;
第六步:选择新建项目客户管理的项目管理器中的“数据”页签,然后选择“表格”,最后点击“新建”按钮;
第七步:在弹出的“新建表格”对话框中点击“新建表格”,在弹出的“创建”对话框中选择考生文件夹,在“输入表格名称”中填写“order_list.dbf”,然后点击保存。
第八步:在弹出的“表格设计器”中,按照题干要求建立表格结构后,选择“索引”页签,在索引列中填写“序号”,在索引类型列中选择“一级索引”,在索引表达式列中填写“序号”,点击“确定”保存表格结构。
二。简单应用(2道小题,每题20分,40分)
在考生文件夹下完成下面的简单申请:
1。将order_list1表中的所有记录追加到order_list表中,然后用SQL SELECT语句完成查询:按总金额降序列出所有客户的客户号、客户名、订单号和总金额,并将结果存储在结果表中(其中客户号和客户名取自客户表,订单号和总金额取自order_list表)
2。打开form1表单,按照以下要求进行修改(注意:最后保存修改):
(1)表单中随机排列了五个命令按钮。不要移动或改变“基准按钮”的位置(否则会影响你的成绩),然后将其他命令按钮对准“基准按钮”的左边部分;
(2)在这组命令按钮的右侧添加一个table控件,将其RecordSourceType属性设置为“table”,然后设置另一个相关属性,在table控件中显示customer表的记录。
本问题主要评估点:
SQL中的查询:选择查询、连接查询、查询排序、查询结果的目的地;以及INSERT语句、表单的建立、控件的布局、向表单添加数据环境、控件和数据源的绑定等知识。
解决问题的思路:
第一个问题:将order_list1中的所有记录追加到order_list中。要将一个表中的所有记录追加到另一个表中,请使用APPEND FROM命令。首先打开order_list:使用order _ list,后面跟表名追加到order _ list,这里是order_list1。查询表中的数据需要SELECT命令。要查询的数据来自customer和order_list表。将它们放在from之后,用逗号分隔,并指定一个别名Cu和ORD分别为他们。因为它是要在连接查询中指示的查询条件,所以连接条件CU。客户编号= ord。客户编号放在WHERE短语之后,结果集按总金额降序排序,因此:总金额desc应放在ORDER BY短语之后,结果集应存储在结果表中,因此:结果应放在INTO表之后。由于查询结果并不都是属性,所以需要指明结果的属性,客户号在两个表中都存在,所以需要指明这个属性来自哪个源表(这里用表的别名代替)。这形成了一个完整的查询语句:
选择CU。客户编号,CU。客户名称、订单订单号、订单总金额;
来自客户CU,ORDER _ LIST ORDER;
其中CU。客户号=订单客户号;
按总金额排序desc;
到表结果中
问题2:打开考生文件夹下的FROM1表单,拖动鼠标选中5个随机放置的按钮和“基准按钮”控件,点击“布局”工具栏中的“左对齐”即可完成所有按钮的左对齐。在窗体上放置一个table控件,将窗体的“数据环境”设置为customer表,并将table控件的RecordSourceType属性设置为“table”,将RecordSource属性设置为“customer”,这样table控件就可以显示customer表的内容。
三。综合应用(1题,30分)
修改order_detail表中的单价时,order_list表的总金额字段也要根据该表的“单价”和“数量”字段进行修改。现在,编写一个程序来实现这个功能。给出了具体要求和注意事项。
如下:
(1)根据order_detail表中的记录,重新计算order_list表中总金额字段的值;
(2)一条order_list记录可以对应多条order_detail记录;
(3)编程前,确保在基本操作中正确建立order_list表,在简单应用中向表中添加记录(注意只能添加一次);
(4)最后将order_list表中的记录按总金额降序排序,存储在od_new表中(表结构与order_list表完全相同);
(5)将程序保存为prog1.prg文件。
本问题主要评估点:
程序的建立方法、程序中循环结构的使用、SQL查询语句的使用、记录的修改方法等知识点。
解决这个问题的思路:
第一步:打开项目客户管理,首先在项目管理器中选择“代码”选项卡,然后选择“程序”,最后点击“新建”按钮。
第二步:在弹出窗口中输入以下代码:
SET TALK OFF &&在程序运行模式下关闭命令结果的显示。
设置安全并在文件名重复时关闭提示。
全部关闭
选择订单号,SUM(数量*单价)作为总金额;
FROM ORDER _ DETAIL;
按订单号分组;
转换为光标表格
&&这里,首先获取每笔订单的总金额。因为每个订单有多个记录,
&&所以我们需要使用SUM函数来获得每个订单的总金额,SUM(数量*单价)作为总金额。
&&放在SELECT后面,用逗号与订单号隔开;要使用订单号作为分组的基础,请将订单号放入
&&在排序依据之后;将结果集放入临时表CurTable中,并使用INTO CURSOR CurTable
开放式数据库订单管理
&&打开数据库文件
选择2
&&选择工作区
使用订单列表
&&在新的工作区中打开表格ORDER_LIST。
DO WHILE NOT EOF() &&遍历ORDER_LIST中的每条记录。
选择可简化表格。CurTable中的总金额;
在可简化的地方。订单号=order_list。订单编号;
放入数组AFieldsValue
&&以ORDER_LIST当前记录的订单号为查询条件,得到临时表中该订单的总金额。
&&因为订单号字段同时存在于临时表和当前工作区表中,所以应该在订单号字段之前添加表名。
&&所以查询条件可简化。订单号=order_list。订单号放在WHERE子句之后;疑问的结
&& fruit放入数据变量AFieldsValue,放入数组AFieldsValue。
替换为字段值的总量
&&使用新获得的总金额替换当前记录的总金额字段。
跳过
ENDDO
全部关闭
SELECT * FROM ORDER _ LIST;
按总金额排序desc;
到表OD_NEW中
&&按总金额降序排列,所以总金额desc应该放在ORDER BY子句之后;将结果集
&&放入一个永久表OD_NEW,它放在INTO表的子句之后。
打开安全
开启通话
第三步:点击工具栏“保存”按钮,保存程序文件,文件名为prog1.prg
第四步:在项目管理器的“代码”选项卡上选择程序中的“prog1”,点击“运行”按钮执行程序。
0条评论