学时安排:
理论教学2学时,实验教学1学时。
实验目的:
1. 掌握创建菜单的常用方法和步骤。
2. 掌握菜单设计器的使用,理解为菜单项设置快捷键的方法。
3. 掌握用程序编制菜单的方法。
实验要求:
1. 每人一机,独立完成实验。
2. 每次实验完成将结果存入自己的U盘,或上传至信息中心个人网络U盘中保存。
实验设备:
硬件配置:计算机实验教学示范中心机房计算机。
软件配置:Windows操作系统,Visual Foxpro6.0系统。
实验内容及步骤:
1. 创建菜单
设计一个如下所示的菜单系统:
基本信息管理(J) 成绩信息管理(C) 报表打印(P) 帮助(H)
输入新生名单(M) 学生成绩输入(S) (正在建设中) (正在建设中)
输入学生评语(P) 学生成绩统计(I)
学生成绩查询(C) F2
学生信息查询(F)
毕业生信息归档(G)
另外,在菜单运行时,用户选择各子菜单项均显示“此菜单项正在建设中”。
(1)打开“菜单设计器”
(2)创建菜单栏
(3)定义“基本信息管理”子菜单
(4)定义“成绩信息管理”子菜单
(5)保存菜单文件
(6)生成菜单程序
(7)运行菜单程序
2、创建快速菜单
利用FFP系统菜单,创建一个快捷菜单文件KJCD.mpr,该菜单中包含如下菜单项:
撤消、重做、———全选、复制、剪切、粘贴、清除、———查找、替换。
其中:“———”表示菜单分隔线。
在命令窗口输入VFP命令运行该菜单。
3、利用程序编制菜单
(1)建立光带菜单的步骤:
①定义菜单的名称及其属性
DEFINE MENU <menu name>
[BAR [AT LINE <expN1>]]
② 定义各选项的名称
DEFINE PAD <pad name> OF <menu name> PROMPT
<expC1>[AT <row, column>]
③ 设定菜单各选项的执行流向
ON SELECTION MENU <menu name> | ALL [<command>]
ON SELECTION PAD <pad name> OF <menu name> [<command>]
④ 激活菜单
ACTIVATE MENU <menu name> [NOWAIT] [PAD <pad name>]
* 光带式菜单范例
SET TALK OFF
CLEAR
* 定义光带式菜单 menu1
DEFINE MENU menu1 BAR AT LINE 2 COLOR SCHEME 1
* 定义菜单各项内容
DEFINE PAD kja OF menu1 PROMPT "\<1.系统初始化" ;
MESSAGE "本系统第一次使用时,使用本功能"
DEFINE PAD kjb OF menu1 PROMPT "\<2.凭证处理" ;
MESSAGE "输入凭证,修改凭证,删除凭证,打印凭证"
DEFINE PAD kjc OF menu1 PROMPT "\<3.汇总记帐" ;
MESSAGE "汇总各类凭证,记各种帐页"
DEFINE PAD kjd OF menu1 PROMPT "\<4.打印帐页" ;
MESSAGE "打印各种明细帐"
DEFINE PAD kje OF menu1 PROMPT "\<5.打印报表" ;
MESSAGE "打印各种财务报表"
DEFINE PAD kjf OF menu1 PROMPT "\<6.查 找" ;
MESSAGE "按各种条件查找凭证,明细帐"
DEFINE PAD kjg OF menu1 PROMPT "\<7.月底过帐" ;
MESSAGE "月底结各种余额,为下月财务管理做准备"
DEFINE PAD kjz OF menu1 PROMPT "\<0.退 回" ;
MESSAGE "你可以退出本程序"
ON SELECTION MENU menu1 DO subroute WITH PAD()
ACTIVATE MENU menu1 && 激活菜单 menu1
RETURN
PROCEDURE subroute
PARAMETERS mpad
IF mpad="KJZ"
CLEAR
DEACTIVATE MENU menu1
RELEASE MENUS menu1
ELSE
DO &MPAD
ENDIF
RETURN
(2)建立弹出式菜单的步骤:
① 定义菜单的名称及其属性
DEFINE POPUP <popup name>
[FROM <row1, column1>][TO <row2, column2>]
② 定义各选项的名称、内容和其它属性
DEFINE BAR <expN1>| <system option name>
OF <popup name> PROMPT <expC1>
③设定菜单各选项的执行流向
ON SELECTION POPUP <popup name> | ALL [<command>]
ON SELECTION BAR <expN> OF <popup name> [<command>]
④ 激活菜单
ACTIVATE POPUP <popup name> [AT <row,column>]
[BAR <expN>] [NOWAIT] [REST]
*弹出式菜单范例
SET TALK OFF
SET MESSAGE TO 24 CENTER
CLEAR
* 定义一个弹出式菜单: mypop
DEFINE POPUP mypop FROM 4,30 TITLE " 数据库管理系统 " MARGIN;
SCROLL SHADOW COLOR SCHEME 9
* 定义弹出式菜单 mypop 的各子项内容
DEFINE BAR 1 OF mypop PROMPT "\<1. 增加记录 " MESSAGE "向数据库中增加记录"
DEFINE BAR 2 OF mypop PROMPT "\<2. 删除记录 " MESSAGE "删除数据库中不需要的记录"
DEFINE BAR 3 OF mypop PROMPT "\<3. 修改记录 " MESSAGE "修改数据库中的记录"
DEFINE BAR 4 OF mypop PROMPT "\<4. 浏览记录 " MESSAGE "浏览数据库中的记录"
DEFINE BAR 5 OF mypop PROMPT "\-"
DEFINE BAR 6 OF mypop PROMPT "\<5. 固定检索 " MESSAGE "按固定方式检索数据库"
DEFINE BAR 7 OF mypop PROMPT "\<6. 条件检索 " MESSAGE "按条件方式检索数据库"
DEFINE BAR 8 OF mypop PROMPT "\-"
DEFINE BAR 9 OF mypop PROMPT "\<7. 数据库排序 " KEY CTRL+E ,'^E';
MESSAGE "数据库按指定条件排序"
* 用KEY参数指定按键组合 CTRL+E, 以直接执行此选项.
DEFINE BAR 10 OF mypop PROMPT "\<8. 数据库备份 " MESSAGE "数据库文件作备份"
DEFINE BAR 11 OF mypop PROMPT "\-"
DEFINE BAR 12 OF mypop PROMPT "\<9. 退回 " MESSAGE "退出此菜单, 返回调用程序"
* 设定菜单各子项被选择后执行的程序
ON SELECTION BAR 1 OF mypop DO subroute1 WITH POPUP(),PROMPT()
ON SELECTION BAR 2 OF mypop DO subroute2 WITH POPUP(),PROMPT()
ON SELECTION BAR 3 OF mypop DO subroute3 WITH POPUP(),PROMPT()
ON SELECTION BAR 4 OF mypop DO subroute4 WITH POPUP(),PROMPT()
ON SELECTION BAR 6 OF mypop DO subroute5 WITH POPUP(),PROMPT()
ON SELECTION BAR 7 OF mypop DO subroute6 WITH POPUP(),PROMPT()
ON SELECTION BAR 9 OF mypop DO subroute7 WITH POPUP(),PROMPT()
ON SELECTION BAR 10 OF mypop DO subroute8 WITH POPUP(),PROMPT()
ON SELECTION BAR 12 OF mypop DO subroute9
* 激活弹出式菜单:mypop
ACTIVATE POPUP mypop
RETURN
PROCEDURE subroute1
PARAMETERS mPOPUP,mPROMPT1
=SHOW(mPROMPT1)
RETURN
PROCEDURE subroute2
PARAMETERS mPOPUP,mPROMPT1
=SHOW(mPROMPT1)
RETURN
PROCEDURE subroute3
PARAMETERS mPOPUP,mPROMPT1
=SHOW(mPROMPT1)
RETURN
PROCEDURE subroute4
PARAMETERS mPOPUP,mPROMPT1
=SHOW(mPROMPT1)
RETURN
PROCEDURE subroute5
PARAMETERS mPOPUP,mPROMPT1
=SHOW(mPROMPT1)
RETURN
PROCEDURE subroute6
PARAMETERS mPOPUP,mPROMPT1
=SHOW(mPROMPT1)
RETURN
PROCEDURE subroute7
PARAMETERS mPOPUP,mPROMPT1
=SHOW(mPROMPT1)
RETURN
PROCEDURE subroute8
PARAMETERS mPOPUP,mPROMPT1
=SHOW(mPROMPT1)
RETU
PROCEDURE subroute9
DEACTIVATE POPUP mypop
RELEASE POPUPS mypop
RETURU
FUNCTION show
PARAMETERS mPROMPT2
SET CURSOR OFF
WAIT " 你选择的是弹出式菜单 "+mPOPUP+" 中的 "+mPROMPT2 WINDOWS
SET CURSOR ON
RETURN