在考生文件夹下创建一个下拉式菜单mymenu.mnx,并生成菜单程序enu.mpr。运行该菜单程序时会在当前VFP系统菜单的末尾追加一个“考试”子菜单,如图3-13所示。 菜单命令“统计”和“返回”的功能都通过执行过程完成。 菜单命令“统

admin2014-11-30  44

问题 在考生文件夹下创建一个下拉式菜单mymenu.mnx,并生成菜单程序enu.mpr。运行该菜单程序时会在当前VFP系统菜单的末尾追加一个“考试”子菜单,如图3-13所示。

    菜单命令“统计”和“返回”的功能都通过执行过程完成。
    菜单命令“统计”的功能是统计2007年有关客户签订的订单数。统计结果依次包含“客户名”和“订单数”两个字段,其中客户名即为客户的姓名(在customers表中)。各记录按订单数降序排序、订单数相同按客户名升序排序,统计结果存放在tabletwo表中。
    菜单命令“返回”的功能是恢复标准的系统菜单。
    菜单程序生成后,运行菜单程序并依次执行“统计”和“返回”菜单命令。

选项

答案步骤1:在命令窗口执行命令:CREATE MENU mvmenu,在弹出的“新建菜单”对话框中单击“菜单”图标按钮,打开菜单设计器。 步骤2:在菜单设计器“菜单名称”列的文本框中输入“考试”主菜单名,“结果”下拉框中选择为“子菜单”,单击“创建”按钮进入下级菜单设计,在“菜单名称”列的第l、2行文本框中依次输入子菜单名“统计”和“返回”,将这2个子菜单的“结果”都设置为“过程”,分别单击2个过程后面的“创建”按钮打开过程编辑器,编写过程代码。 步骤3:两个过程代码如下: “统计”菜单命令的过程代码: 1 SELECT customers.姓名 as 客户名, COunt(*)as订单数; 2 FROM customers INNER JOIN orders ; 3 ON customers.客户号=Orders.客户号; 4 WHERE year(Orders.签订日期)=2007 ; 5 GROUP BY customers.姓名; 6 ORDER.BY 2 DESC,customers.姓名; 7 INTO TABLE tabletwo.dbf “返回”菜单命令的过程代码: 1 SET sYSMENU NOSAVE 2 SET SYSMENU TO DEFAULT 步骤4:执行【显示】→【常规选项】菜单命令,在弹出的“常规选项”对话框中选择“位置”中的“追加”单选钮,然后单击“确定”按钮,保存修改。 步骤5:执行【菜单】→【生成】菜单命令,在弹出的Visual FoxPro对话框中单击“是”按钮,接着系统会弹出“生成菜单”对话框,在“输出文件”对话框中修改输出的文件名为:enu.mpr,单击“生成”按钮生成一个可执行的菜单文件。 步骤6:在命令窗口执行命令:DO enu.mpr,运行菜单程序,依次执行“统计”和“返回”菜单命令。

解析 本题主要考查了菜单设计器的使用;SQL分组计算查询。
本题的关键是“统计”菜单项的过程设计部分,是一个SQI。分组计算查询语句,查询的两个表文件是customers和orders表,查询条件中要通过year()函数获得具体的年份值,分组条件为customers的姓名字段,利用ORDERBY短语指定排序方式,最后通过工NTO TABLE短语指定输出去向。
转载请注明原文地址:https://kaotiyun.com/show/lsEp777K
0

最新回复(0)