m程序设计 第8讲菜单设计及屏幕格式 FoxproForWindowshttp://cc.synu.edu.cn
FoxPro For Windows http://cc.synu.edu.cn 1 FoxPro程序设计 第8讲 菜单设计及屏幕格式
ah程序设计 学生管理系统程序 学生管理系统 主程序 子程序 数据录入 数据维护 数据查询 打印报表 子程序 按学号查询 按姓名查询 按组合条件查询 子程序 管理信息系统(MS):主控程序和功能模块(子程序)组成。 主控程序:由菜单程序完成。功能:控制程序流程。 FoxproForWindowshttp://cc.synu.edu.cn 2
FoxPro For Windows http://cc.synu.edu.cn 2 FoxPro程序设计 学生管理系统程序 数据录入 数据维护 按学号查询 按姓名查询 按组合条件查询 数据查询 打印报表 学生管理系统 主程序 子程序 子程序 子程序 管理信息系统(MIS) :主控程序和功能模块(子程序)组成。 主控程序:由菜单程序完成。 功能:控制程序流程
【例1】利用非格式输出命令设计菜单程序 m程序设计 set talk off do whil.t clear ???? """ 米 菜单设计三步曲 开菜单 to xz 点菜选单) do case 上菜(模块调用) case xz=1 do sr case xz=2 do wh 主菜单 case xz=3 1.数据输入2.数据维护 3.数据统计4.报表打印 5.数据查询6.退回系统 请选择功能号 case xz=6 clear exit endc endd 简单、但不美观,如何在指定位置显示? set talk on retyproForWindowshttp://cc.synu.edu.cn 3
FoxPro For Windows http://cc.synu.edu.cn 3 【例1】利用非格式输出命令设计菜单程序 FoxPro程序设计 开菜单 点菜(选单) 上菜(模块调用) clear ? " ------- 主菜单 ------- " ? " 1.数据输入 2.数据维护" ? " 3.数据统计 4.报表打印" ? “ 5.数据查询 6.退出系统" wait " 请选择功能号:" to xz do case case xz="1" do sr case xz="2" do wh case xz="3" ……….. case xz="6" clear exit endc do whil .t. endd set talk off set talk on retu 菜单设计三步曲: 简单、但不美观,如何在指定位置显示?
开菜单一利用格式输出命令设计 m程序设计 例2】 =space(1) Clear set color to +w/rb -主菜单 6, 11 clear to 13, 60 数据输入 2.数据维护 @7,20say" 主菜单 se Record Progran Run Window Help @8,18say"1数据入2.数据维护" @9,18say"3 @10,18say"5 查询6退回系统 画12,15say"请选择功能号:" get XZ read 主菜单 1.数据 数据维护 数据统讠 报表打印 5.数据查询 请选择功能号 set colo to SET COLOR TO【标准<边框Ⅲ retu 颜色对前景/景],w+/n*,+为高亮度(前景),*为闪烁(背景) color 黑蓝棕深蓝绿品红红白黄 Color code N B GR BG G RBR W GR+ 【例】 SET COLOR TO R+/GR,W+B*&&输出黄底红字,输入蓝底白字, FoxproForWindowshttp://cc.synu.edu.cn
FoxPro For Windows http://cc.synu.edu.cn 4 FoxPro程序设计 【例2】 xz=space(1) Clear @ 7,20 say "-----------主菜单---------" @ 8,18 say " 1.数据输入 2.数据维护" @ 9,18 say " 3.数据统计 4.报表打印" @ 10,18 say " 5.数据查询 6.退回系统" @ 12,15 say " 请选择功能号:" get xz read 开菜单—利用格式输出命令设计 set color to +w/rb @ 6,11 clear to 13,60 set colo to retu SET COLOR TO [[,[,]]] • 颜色对[前景/背景],w+/n*, +为高亮度(前景),*为闪烁(背景) color 黑 蓝 棕 深蓝 绿 品红 红 白 黄 Color code N B GR BG G RB R W GR+ 【例】 SET COLOR TO R+/GR,W+/B* &&输出黄底红字,输入蓝底白字
m程序设计 开菜单利用文本输出命令设计 【例3】 clear set color to +w/rb / Microsoft FoxPro text File Edit Database Record Program Run Text Window Help 主菜单* 2.数据维护 1.数据入2数据推护 3数据统计4报表打印 5数据查询6退回系统 5.数据查询6,退回系统 选择功能 endtext input"请选择功能号:"tox 小结:传统式菜单 a利用非格式输出命令? b利用格式输出命令@…SAY c.利用正文输出命令 FoxproForWindowshttp://cc.synu.edu.cn 5
FoxPro For Windows http://cc.synu.edu.cn 5 FoxPro程序设计 【例3】 clear set color to +w/rb text *** 主菜单 *** 1.数据输入 2.数据维护 3.数据统计 4.报表打印 5.数据查询 6.退回系统 endtext input " 请选择功能号:" to xz 小结: 传统式菜单 a.利用非格式输出命令? b.利用格式输出命令 @……SAY c.利用正文输出命令 开菜单—利用文本输出命令设计
m程序设计 开菜单光带式菜单 由一组菜单棒组成菜单,当前项由光带显示。 【例】 啁 Microsoft FoxPro clear File Edit Database Record Program Run Text Window Help @38,10,60box @4,30say"主菜单 @5, 28 say re 10) 画6.18pmpt1数据羭入 主菜单 ++++++++++ @6,38 promp?t"2数据维护" 口数据输入 2数据维护 @7,18 prompt3教据统计 4报表打印 o 7, 38 prompt"4 5数据查询 6退回系统 画818pomp"5数据真迿 @8,38 prompt"6退回系统 menu to xz @,列坐标> prompt*初始化菜单中各选择项 menu to将选择序号送入内存变量,序号为书写 prompt的顺序号 选择方法:1)移动光带,回车或空格键选择;2)输入序号(书写 promptE的顺序)选择。 FoxproForWindowshttp://cc.synu.edu.cn 6
FoxPro For Windows http://cc.synu.edu.cn 6 FoxPro程序设计 【例】 clear @ 3,8,10,60 box @ 4,30 say "主菜单" @ 5,28 say repl("+",10) @ 6,18 prompt“1.数据输入” @ 6,38 prompt"2.数据维护" @ 7,18 prompt“3.数据统计” @ 7,38 prompt"4.报表打印" @ 8,18 prompt"5.数据查询" @ 8,38 prompt"6.退回系统" menu to xz 开菜单—光带式菜单 由一组菜单棒组成菜单,当前项由光带显示。 @ , prompt *初始化菜单中各选择项 menu to 将选择序号送入内存变量,序号为书写prompt的顺序号。 选择方法:1)移动光带,回车或空格键选择;2)输入序号(书写prompt的顺序)选择
m程序设计 其他类型菜单 下拉式菜单 采 数据录入『数据查询退出系统 单圖学籍管理系统 按学号查询 按姓名查译 生 数据录入数据查询退出系统 按专业查询 按学号查询 级联菜单 成器生成 接姓名查询 按专业查询 学籍数据录入 3学籍数据查询学生档案录入 2教学计划录 3学生成绩录入1本科牛数据 2硕士生数据 3博士生数据 FoxproForWindowshttp://cc.synu.edu.cn 7
FoxPro For Windows http://cc.synu.edu.cn 7 FoxPro程序设计 其他类型菜单 下拉式菜单 级联菜单 菜 单 生 成 器 生 成
m程序设计 点菜选单选择 Wait请选择功能号:toxz npu‘请选择功能号 to xz acce“请选择功能号 to xz Xz=0 @8,10say'请输入选择号:(1-4)'getx read menu to xz &&prompt FoxproForWindowshttp://cc.synu.edu.cn 6
FoxPro For Windows http://cc.synu.edu.cn 8 FoxPro程序设计 wait ‘请选择功能号 :’ to xz inpu ‘ 请选择功能号 :’ to xz acce “请选择功能号 :” to xz 点 菜(选单选择)— xz=0 @ 8,10 say '请输入选择号:(1-4)' get xz read menu to xz &&prompt
m程序设计 上菜功能模块调用)一利用多分支语句实现 menu to xZ do case case xz=1 模块调用流程图 do xg case xz=2 XZ? do cx CX endc FoxproForWindowshttp://cc.synu.edu.cn 9
FoxPro For Windows http://cc.synu.edu.cn 9 FoxPro程序设计 do case case xz=1 do xg case xz=2 do cx …… endc 上 菜(功能模块调用)— 利用多分支语句实现 wait ‘请选择功能号 :’ to xz inpu ‘ 请选择功能号 :’ to xz acce “请选择功能号 :” to xz xz=0 @ 8,10 say '请输入选择号:(1-4)' get xz menu to xz read Xz=? xg cx 1 2 模块调用流程图
m程序设计 调用结束返回 1、返回原选单 主控程序流程图 DO WHIL Do whi 选单显示(开菜单) 选单选择(点菜) 菜单 功能模块调用(上菜 ENDD 退出 FoxproForWindowshttp://cc.synu.edu.cn 10
FoxPro For Windows http://cc.synu.edu.cn 10 FoxPro程序设计 1、返回原选单 DO WHIL ENDD 调用结束返回 — 选单显示(开菜单) 选单选择(点菜) 功能模块调用(上菜) 菜单 Xz=? xg cx 1 2 Do whil 退出 主控程序流程图