用Foxbase进行菜单设计

Author: Date: 1996-11-08

        一、由输出命令实现:
        1.用?命令
        2.用格式化输出命令即:@<行,列>SAY<字符库表达式>假设一项管理系统由工资数据录入、修改、查询及工资报表打印四个功能、则可设计如下简单菜单程序:
        ***MENu1.prg***
        ?"工资管理系统"
        ?"1:工资数据录入"
        ?"2:工资数据查询"
        ?"3:工资数据修改"
        ?"4:工资打印"
        ?"0:函数系统"
        WAIT "请选择(0-4):" TO CH
        ***MENUZ.PRG***
        @4,20 SAY "工资管理系统"
        @6,16 SAY "1:工资数据录入"
        @7,16 SAY "2:工资数据查询"
        @8,16 SAY "3:工资数据修改"
        @9,16 SAY "4:工资打印"
        @10,16 SAY "0:退出系统"
        CH=0
        @12,25 SAY "请选择(0-4):" GET CH
        READ
        二、由菜单设计命令实施FoxBase系统为用户提供了三种专用于菜单设计的命令,即亮条式菜单命令,上拉式菜单命令和下拉式菜单命令。
        1.亮条式菜单命令:
        格式:@<行,列> PROMPT <字符串表达式> [MESSAGE<字符串表达式>] MEMU TO <内存变量>
        功能:建立用户自定义亮条菜单。其中@……PROMPT命令定义功能项即菜单画面;选择项MESSAGE提供提示信息,其提示信息位置由命令:SET MESSAGE TO <数值表达式>确定,数值表达式的值为提示信息的显示行位置;MENU TO 命令的作用是激活菜单,菜单激活,屏幕上出现一个长条形光带,停留在一个选择项上,可通过光标键(↑、↓)在各选择项之间前后移动光带,相应选择项的提示信息行上显示。将光带移动所需选项上按回车键或直接键入该选项的第一个字符即完成对功能次的选择。例:
        ***MENU3.PRG***
        @2,20 SAY "人事管理系统"
        @5,12 PROMPT '1-数据录入" MESSAGE "输入职工档案数据"
        @6,12 PROMPT '2-数据查询" MESSAGE "查询职工档案数据"
        @7,12 PROMPT '3-数据修改" MESSAGE "修改职工档案数据"
        @8,12 PROMPT '4-退出系统" MESSAGE "运行结束返回"
        SET MESSAGE TO >0   **在20行显示提示信息**
        CH=0
        MENU TO CH
        2.上拉式菜单命令:
        格式:@<行、列> MENU <数组>、<数值表达式1>[,<数值表达式2>] [TITLE<字符串表达工>] READ MENU TO <变量>[SAVE]
        功能:建立用户定义的上拉式菜单。其中@……MENU定义功能项,<数组>是一维数,用以存放功能项信息,每个数据项长度不能超过50个字节;<政值表达式1>指定菜单中的项目个数,不能超过128个;<数值表达式>指定在屏幕上显示的菜单项目,不能超过17个,超过部分将不显示,然后通过滚动方式去实现它;选项TITLE用户定义菜单的标题信息;READ MENU TO用以激活上拉式菜单,用户可由上下键(↑、↓)在菜单项中移动亮条光带,按回车键则选中相应功能项,选项SAVE的作用是:如果无则选择后菜单即将清除,否则,它仍保留在屏幕上。
        例:***MEMU4.PRG***
        DIME M(4)
        M(1)='1-数据录入'
        M(2)='2-数据查询'
        M(3)='3-数据修改'
        M(4)='4-退出系统'
        X=4
        Y=1
        @3,10 MENU M,X,5 TITLE '人事管理'
        READ MENU TO Y
        3.下拉菜单:
        下拉菜单由一个主菜单和一组子菜单结合构成。主菜单以横向形式显示在屏幕顶部,子菜单则以纵向方式挂在主菜单下,主菜单的每一个选择项对应一个子菜单,其中主菜单和子菜单应分别定义。
        ①定义主菜单:
        格式:MENU BAR <数组>、<数值表达式>
        功能:定义主菜单。其中<数组>为二维数组,<数组>(i,1)中存放主菜单的各选择项,<数组>(i,2)中存放各选择的提示信息,其位置由命令SET MESSAGE TO确定(与@…PROMPT…MESSAGE类似);<数值表达式>用以指主菜单的选择项的个数。
        ②定义子菜单:
        格式:MENU <数值表达式1>,<数组>,<数值表达式2> [<数值表达式3>]
        功能:定义相应子菜单。其中<数值表达式1>用以确定与主菜单中选项的对应关系;<数组>为一维数组,用以存放子菜单的菜单项目;<数值表达式>用以指定子菜单中的功能项个数;选择项<数值表达式3>用以指定子菜单在屏幕上的显示项目数(与上拉式菜单中的<数值表达式2>类似)。
        ③下拉式菜单的激活:
        命令:READ MENU BAR TO <变量1>,<变量2>[SAVE]
        功能:激活用户定义的下拉式菜单。其中<变量1>用以存放主菜单中被选中的项目顺序号;<变量2>用以存放子菜单中被选中的项目顺序号;选择项SAVE的作用与上拉式菜单激活命令中的SAVE中。例:
        ***MENU5.PRG***SET TALK OFFDIME X(3,2)X(1,1)='1-数据录入'X(2,1)='2-数据修改'X(3,1)='3-退出系统'X(1,2)='输入职工档案数据'X(2,2)='修改职工档案数据'X(3,2)='系统运行结束'DIME Y(2)X(1)='1-录入基本情况'
        Y(2)='2-录入个人简历'DIME Z(2)Z(1)='1-修改基本情况'Z(2)='2-修改个人简历'DIME W(1)WCD='1-退出系统'Y=1C=1MENU BAR X,3MENU1,Y,2,2MENU2,Z,2,2MENU3,W,1,1READ MENU BAR TO Y,C