在考生文件夹下有工资数据库wage3,包括数据库表文件:zg(仓库号C(4),职工号C
(4),工资N(4))。设计一个名为tj的菜单,菜单中有两个菜单项“统计”和“退出”。
程序运行时,单击“统计”菜单项应完成下列操作;检索出工资小于或等于本仓库职工平均工资的职工信息,并将这些职工信息按照仓库号升序排序,在仓库号相同的情况下再按职工号升序存放到emp1(emp1为自由表)文件中,该数据库表文件和zs数据库表文件具有相同的结构。
单击“退出”菜单项,程序终止运行。
(注意:相关数据表文件存在于考生文件夹下)
参考答案:在命令窗口输入命令:CREATE MENU tj系统弹出一个“新建菜单”对话框,在对话框中单击“菜单”图形按钮,进入菜单设计器环境。根据题目要求,首先输入两个主菜单名称“统计”和“退出”,接着在“统计”菜单行的“结果”下拉框中选择“过程”选项(用于编写程序),在“退出”菜单行的“结果”下拉框中选择“命令”选项。
单击“统计”菜单行中的“编辑”按钮,进入程序设计的编辑窗口,在程序编辑窗口中输入如下程序段:
**********“统计”菜单命令的程序设计**********
SET TALK OFF
SET SAFETY OFF
OPEN DATABASE wageC
SELECT 仓库号,AVG(工资) AS avggz;
FROM zg;
GROUP BY 仓库号;
INTO CURSOR curtable
SELECT zg.仓库号,zg.职工号,zg.工资;
FROM zg,curtable;
WHERE zg.工资<=curtable.avggz;
AND zg. 仓库号=curtable.仓库号;
ORDER BY zg.仓库号,zg.职工号;
INTO TABLE empA
CLOSE ALL
SET SAFETY ON
SET TALK ON
**********************************************
在“退出”菜单项的“命令”文本框中编写程序代码:SET SYSMENU TO DEFAULT。
选择菜单命令“菜单”→“生成”,生成一个菜单文件tj.mpr。关闭设计窗口,在命令窗口输入命令:DO tj.mpr,看到Visual FoxPro的菜单栏被新建的菜单所代替,单击“退出”菜单命令将恢复系统菜单。
执行“统计”菜单命令后,系统自动生成新数据表文件empl.dbf用来保存查询结果。
解析: 本大题考查的主要是利用SQL语句的进行分组汁算查询,在本题应了解SQL中用于求平均值的函数AVG的使用;在菜单的设计过程中主要是注意两个菜单命令在“结果”下拉框中应选择的类型。