首先为order_detail表增加一个新字段:新单价(类型与原来的单价字段相同),然后编写满足如下要求的程序:根据order_list表中的“订购日期”字段的值确定order_detail表的“新单价”字段的值,原则是:订购日期为2001年的“新单价”字

admin2009-02-15  34

问题 首先为order_detail表增加一个新字段:新单价(类型与原来的单价字段相同),然后编写满足如下要求的程序:根据order_list表中的“订购日期”字段的值确定order_detail表的“新单价”字段的值,原则是:订购日期为2001年的“新单价”字段的值为原单价的90%,订购日期为2002年的“新单价”字段的值为原单价的110%(注意:在修改操作过程中不要改变order_detail表记录的顺序),将order_detail表中的记录存储到od_new表中(表结构与order_detail表完全相同)。最后将程序保存为prog1.prg,并执行该程序。
   接着再利用Visual FoxPro的“快速报表”功能建立一个的简单报表,该报表内容按顺序含有order_detail表的订单号、器件号、器件名、新单价和数量字段的值,将报表文件保存为report1。

选项

答案在命令窗口输入命令:USE order_detail &&打开数据表 MODIFY STRUCTURE &&打开表设计器 打开表设计器后,在“字段”选项卡的“数量”字段后增加一个新的字段,根据题意输入字段名:新单价,字段宽度和类型与“单价”字段一样。 在命令窗口输入命令:MODIFY COMMAND prog1,在程序编辑窗口中输入如下程序段: **********文件prog1.prg中的程序段********** SET TALK OFF &&将订购日期是2001年的所有的订单号放入临时表curtable中 SELECT订单号FROM order_list WHERE YEAR(订购日期)=2001; INTO CURSOR curtable && 对所有订购日期是2001年的计算新的单价 DO WHILE NOT EOF() UPDATE order_detail SET新单价=单价*0.9; WHERE订单号=curtable.订单号 SKIP ENDDO && 将订购日期是2002年的所有的订单号放入临时表CurTable中 SELECT订单号FROM order_list WHERE YEAR(订购日期)=2002; INTO CURSOR curtable && 对所有订购日期是2002年的计算新的单价 DO WHILE NOT EOF() UPDATE order detail SET新单价=单价*1.1; WHERE 订单号=curtable.订单号 SKIP ENDDO CLOSE ALL USE order_detail COPY TO od_new SET TALK ON ****************************************** 保存设计结果,在命令窗口输入命令:DO prog1,执行程序文件。 在命令窗口输入命令:CREATE REPORT report1,打开报表设计器。选择菜单命令“报表”—“快速报表”,系统首先要求选择报表数据源。根据题意,选择考生文件夹下的order_detail表作为报表数据源。系统接着弹出“快速报表对话框”,单击对话框中的“字段”命令按钮,在弹出的“字段选择器”对话框中,依次选择订单号、器件号、器件名、新单价和数量5个字段添加到“选定字段”列表框中,如图3-62所示。单击“确定”按钮,返回报表设计器,保存报表设计。单击工具栏中的预览按钮,可查看设计效果。 [*]

解析 本大题考查的主要是SQL语句的应用,包括数据定义、数据修改和数据查询功能,设计过程中可利用临时表来存放查询结果,再利用DO循环语句对表中的记录逐条更新。
转载请注明原文地址:https://jikaoti.com/ti/c9M7FFFM
0

最新回复(0)