vfp 自由表转数据表 vfp建立自由表_字段

第二十一套

一、基本操作题(共四小题,第1和2题是7分、第3和4题是8分)

在考生文件夹下完成如下操作:

1. 打开"订货管理"数据库,并将表order_detail添加到该数据库中。

2. 为表order_detail的"单价"字段定义默认值为NULL。

3. 为表order_detail的"单价"字段定义约束规则:单价 > 0 ,违背规则时的提

示信息是:"单价必须大于零"。

4. 关闭"订货管理"数据库,然后建立自由表customer,表结构如下:

客户号 字符型(6)

客户名 字符型(16)

地址 字符型(20)

电话 字符型(14)

本题主要考核点:

将一个自由表添加到数据库中、为字段建立约束规则、设置字段的默认值、建立表的结构等知识点

本题解题思路:

第一步:打开考生文件夹下的"订货管理"数据库

第二步:打开数据库菜单选择"添加表(A)",在弹出的"打开"对话框中,选定考生文件夹下的order_detail表,再点击"确定"即可,这样表order_detail就添加到了"订货管理"数据库中

第三步:在数据库设计器中选中"order_detail"表,选择数据库菜单下的"修改(V)",弹出表设计器,在表设计器中点击"单价"所在的行,单击Null列上的按钮,确认按钮上出现对号,在字段有效性的规则字段中输入:单价>0,在信息框中输入: "单价必须大于0",在默认值框中输入:.NULL.。确定即可

二、简单应用(2小题,每题20分,计40分)

在考生文件夹下完成如下简单应用:

1. 列出总金额大于所有订购单总金额平均值的订购单(order_list)清单(按

客户号升序排列),并将结果存储到results表中(表结构与order_list表

结构相同)。

2. 利用Visual Foxpro的"快速报表"功能建立一个满足如下要求的简单报表:

(1) 报表的内容是order_detail表的记录(全部记录,横向);

(2) 增加"标题带区",然后在该带区中放置一个标签控件,该标签控件显示报

表的标题"器件清单";

(3) 将页注脚区默认显示的当前日期改为显示当前的时间;

(4) 最后将建立的报表保存为report1.frx。

本题主要考核点:

SQL中的查询SELECT查询、联接查询、查询的排序、查询的结果的去向等;报表的建立方法等知识点.

解题思路:

第一小题:为了能得到所有总金额大于平均总金额的订购单信息,应该首先得到总金额的平均值,利用:SELECT AVG(总金额) FROM ORDER_LIST INTO ARRAY AFieldsValue,并将总金额的平均值放到一个数组变量之中AFieldsValue;下一步就可以以总金额>AFieldsValue为条件得到总金额大于平均总金额的订购单信息,将这一条件放在WHERE子句的后面,查询结果的排序要用到ORDER BY子句,ORDER BY 客户号;查询结果要放入一个永久表中要用到INTO TABLE子句,结果保存到RESULTS表中所以要用INTO TABLE RESULTS.本题由两条SQL语句组成:

SELECT AVG(总金额) FROM ORDER_LIST INTO ARRAY AFieldsValue
SELECT * FROM ORDER_LIST WHERE 总金额>AFieldsValue;
ORDER BY 客户号;
INTO TABLE RESULTS

第二小题:

第一步:在Visual FoxPro主窗口按下组合键Ctrl+N,系统弹出"新建"对话框,在"文件类型"中选择"报表",再点击新建文件按钮,系统弹出报表设计器

第二步:单击主窗口"报表"菜单下的"快速报表(O)",系统弹出"打开"对话框,选择考生文件夹下的 order_detail.dbf表,单击"确定",系统弹出"快速报表"对话框,单击"确定"按钮后便生成了一个报表,将报表文件以文件名 report1.frx保存在考生文件夹下。

第三步:选择主菜单"报表"下的"标题/总结(T)",弹出"标题/总结"对话框,在"报表标题"类型中选择"标题带区 ",单击"确定"按钮,这样就在报表中加入了一个"标题带区",打开"报表控件工具栏",在打开的"报表控件"中选择"标签"控件,在标题带区点击鼠标,输入"器件清单"

第四步:双击"页注脚"中的显示当前日期的域控件,打开"报表表达式",在"表达式"文本框中将原来的DATE()用TIME()来代替。点击"确定"

第五步:以文件名report1.frx将报表文件保存在考生文件夹下。三、综合应用(1小题,计30分)

首先将order_detail表全部内容复制到od_bak表,然后对od_bak表编写完成如下

功能的程序:

1. 把"订单号"尾部字母相同并且订货相同 ("器件号"相同)的订单合并为一张订

单,新的"订单号"就取原来的尾部字母,"单价"取,"数量" 取合计;

2. 结果先按新的"订单号"升序排序,再按"器件号"升序排序;

3. 最终记录的处理结果保存在od_new表中;

4. 最后将程序保存为prog1.prg,并执行该程序。

本题主要考核点:

程序的建立方法、程序中循环结构的使用、SQL查询语句的使用、记录的修改方法;报表的建立方法等知识点

本题解题思路:

第一步:在VisualFoxPro主窗口下按组合键Ctrl+N,系统弹出"新建"对话框,在"文件类型"中选择"程序",再点击"新建文件"按钮,则系统弹出程序编辑窗口;

第二步:在弹出的窗中中输入以下代码:

SET TALK OFF
SET SAFETY OFF
sele * from order_detail into table od_bak
&&复制一个表用来存放结果
USE OD_BAK
COPY STRUCTURE TO OD_NEW

&&首先得到所有的新定单号和器件号:

SELECT RIGHT(订单号,1) AS 新订单号,器件名,器件号,;
RIGHT(订单号,1)+器件号 AS NEWNUM;
FROM OD_BAK;
GROUP BY NEWNUM;
ORDER BY 新订单号,器件号;
INTO CURSOR CurTable
DO WHILE NOT EOF()
&&得到单价和数量
SELECT MIN(单价) AS ,SUM(数量) AS 数量合计;
FROM OD_BAK;
WHERE RIGHT(订单号,1)=CurTable.新订单号 AND 器件号=CurTable.器件号;
INTO ARRAY AFieldsValue
INSERT INTO OD_NEW VALUES;
(CurTable.新订单号,CurTable.器件号,CurTable.器件名,AFieldsValue(1,1),AFieldsValue(1,2))
SKIP
ENDDO
CLOSE ALL
SET TALK ON
SET SAFETY ON

第三步:单击"保存"工具栏按钮,以文件名prog1.prg保存程序文件在考生文件夹下,并运行程序

vfp 自由表转数据表 vfp建立自由表_全国计算机等级考试第21套题_02

计算机等级考试:二级VFP机试第21套.doc

下载Word文档到电脑,方便收藏和打印[全文共2576字]

编辑推荐:

下载Word文档