vfp菜单练习(精选3篇)
篇1:vfp菜单练习
VFP菜单练习
一、设计并修改菜单MENUA
项目TEST中已存在菜单MENUA,其中已定义了“文件”菜单栏及其中的“恢复系统菜单”项,按如下要求修改菜单,完成后的运行效果如图1所示。
1.2. 创建“学生档案管理”菜单栏,并为其设置访问键“ALT+S”。为“学生档案管理”创建子菜单“学生档案录入”和“学生档案查询”,并用分隔线隔开。
3. 为“学生档案录入”菜单项设置命令,该命令用来运行当前目录下的表单文件
FORMC.SCX。
4. 为“学生档案查询”菜单项设置过程,过程代码为:IF!USED(“XS”)
USE XS
ELSE
SELECT XS
ENDIF
BROWSE
5.在“文件”菜单栏下插入系统菜单项“打印预览”。图 1 答案:
1. 创建“学生档案管理”菜单栏,并为其设置访问键“ALT+S”;
2. 为“学生档案管理”创建子菜单“学生档案录入”和“学生档案查询”,并用分隔线隔开
3. 为“学生档案录入”菜单设置命令,该命令用来运行当前目录下的表单文件FORMC.SCX。
4. 为“学生档案查询”菜单设置过程
5. 在“文件”菜单下插入系统菜单项“打印预览”
二、设计并修改菜单MENUB
项目TEST中已存在菜单MENUB,按如下要求修改菜单,完成后的运行效果如图
1所
示。
1.为“数据录入”菜单栏下的“学生信
息录入”菜单项创建快捷键
“CTRL+L”。图1
2.在“数据录入”菜单栏下增加一个菜
单项“教师信息录入”,并用分隔线隔开。
3.为“教师信息录入”菜单项设置过程,当执行该菜单时向教师(JS)表中插入一条空记录,并打开JS表的编辑窗口。
4.为“数据查询”菜单栏设置提示信息:“按条件查询相关表的信息”,即当菜单运行时且选择了“数据查询”菜单栏时,在状态栏中显示该提示信息。
5. 将上述菜单追加在系统菜单“帮助”的后面。
答案:
1.为“数据录入”菜单栏下的“学生信息录入”菜单项创建快捷键CTRL+L
2.在“数据录入”菜单栏下增加一个菜单项“教师信息录入”,并用分隔线隔开
3.为“教师信息录入”菜单设置命令,APPEND
4.为“数据查询”菜单栏设置提示信息:“按条件查询相关表的信息”
5.将上述菜单追加在系统菜单的后面
三、设计并修改菜单MENUC
项目TEST中已存在菜单MENUC,按如下要求修改菜单,完成后的运行效果如图1所示。
1.为“数据录入”菜单栏下的“教师信息录入”菜单项创建快捷键“CTRL+L”。
2.为“数据查询”创建子菜单“学生档
案查询”和“学生成绩查询”,并用分
隔线隔开。
3.为“学生档案查询”菜单项设置SQL图1 命令,要求当执行该菜单项时在浏览窗
口显示学生(XS)表中所有学生的学号(xh)、姓名(xm)和出生日期(csrq)三个字段的内容。
4.为“学生成绩查询”菜单项设置提示信息:“按学号查询学生的成绩”,要求当选择“学生成绩查询”菜单项时,在状态栏中显示该提示信息。
5.将上述菜单插入到系统菜单的“编辑”菜单之后。
答案:
1.为“数据录入”菜单栏下的“教师信息录入”菜单项创建快捷键CTRL+L
2.为“数据查询”创建子菜单“学生档案查询”和“学生成绩查询”,并用分隔线隔开
3.为“学生档案查询”菜单设置SQL命令:select xh,xm,csrq from xs
4.为“学生成绩查询”菜单栏设置提示信息:“按学号查询学生的成绩”
5.将上述菜单插入到在系统菜单的“编辑”菜单项之后
四、设计并修改菜单MENUD
项目TEST中已存在菜单MENUD,按如下要求修改菜单,完成后的运行效果如图1所示。
1.启用“数据录入”菜单栏下的“学生成绩录入”菜单项。
图
2.为“数据打印”菜单栏创建子菜单“学生档案打印”和“学生成绩打印”,并用分隔线隔开。
3.为“学生成绩打印”菜单项设置命令,要求当执行该菜单项时调用当前目录下的报表文件BB,并将结果预览输出。
4.为“退出”菜单栏设置访问键“ALT+X”。5.将“文件”菜单栏删除。
答案:
1.启用“数据录入”菜单栏下的“学生成绩录入”菜单项;
2.为“数据打印”创建子菜单“学生档案打印”和“学生成绩打印”,并用分隔线隔开; 3.为“学生成绩打印”菜单设置命令:
4.为“退出”菜单栏设置访问键ALT+X:
5.将“文件”菜单栏删除
五、设计并修改菜单MENUE
项目TEST中已存在菜单MENUE,其中已定义
了“文件”、“数据维护”、“数据统计”、和“退出”四
个菜单栏,按如下要求修改菜单,完成后的运行效果
如图1所示。
1. 在“文件”菜单栏下插入系统菜单“打印预图
1览”。
2. 在“数据维护”菜单栏下增加一个菜单项“教师信息维护”,并用分隔线隔开。
3. 废止“数据统计”菜单栏下的“教师工资统计”菜单项。
4. 为“学生成绩统计”菜单项设置SQL命令,要求当执行该菜单项时,在浏览窗口
中显示成绩(CJ)表中所有学生的学号(XH)和总成绩。
5. 为“退出”菜单栏设置访问键“ALT+X”。
答案:
1.在“文件”菜单栏下插入系统菜单条“打印预览”
2.在“数据维护”菜单栏下增加一个菜单项“教师信息维护”,并用分隔线隔开
3.将“数据统计”菜单栏下的“教师工资统计”菜单项废止不可用;
4.为“学生成绩统计”菜单设置SQL命令:SELCET XH,SUM(CJ)FROM CJ GROUP BY XH
5.为“退出”菜单栏设置访问键ALT+X:退出( 六、设计并修改菜单MENUF TEST项目中已存在菜单MENUF,按如下要求修改菜单,完成后的运行效果如图1所示。 1. 为“文件”菜单栏下的“退出”菜单项设置快捷键“CTRL+R”。 2. 在“文件”菜单栏的“退出”菜单项之前插入系统菜 单“导出”。 3. 为“数据维护”菜单栏下的“学生信息维护”菜单项 编制子菜单,该子菜单包括两个菜单项“学生基本信图 1息维护”和“学生成绩维护”,并用分隔线隔开。 4. 设置“数据查询”菜单栏下的“教师信息查询”菜单项废止不可用。 5. 为“学生信息查询”菜单项下的“学生基本信息查询”设置SQL命令,要求当执行该 菜单项时,在浏览窗口中显示学生(XS)表中所有女生的学号(xh),姓名(xm) 和出生日 期(csrq)。 答案: 1. 为“文件”菜单栏下的“退出”菜单项设置快捷键CTRL+R; 2. 在“文件”菜单栏的“退出”菜单项之前插入系统菜单条“导出”; 3. 为“数据维护”菜单栏下的“学生信息维护”编制子菜单,该子菜单包括两个菜单项“学 生基本信息维护”和“学生成绩维护”,并用分隔线隔开; 4. 将“数据查询”菜单栏下的“教师信息查询”菜单项废止不可用; 5. 为“学生信息查询”菜单项下的“学生基本信息查询”设置SQL命令: SELECT XH,XM,CSRQ FROM XS WHERE XB=“女” 七、设计并修改菜单MENUG 项目TEST中已存在菜单MENUG,其中已定义了“数据录入”和“数据查询”、“数据清理”和“恢复系统菜单”四个菜单栏,按如下要求修改菜单,完成后的运行效果如图1所示。 1. 为“数据录入”菜单栏设置访问键“ALT+L”。 2. 为“数据录入”菜单栏下的“教师信息录入”编制子菜单,该 子菜单包括两个菜单项“教师基本信息录入”和“教师任课信 息录入”,并用分隔线隔开。图3. 已经为“数据清理”菜单栏下的“学生表清理”设置了过程。 完善该过程,使得当执行该菜单项时,彻底删除学生(XS)表中所有带删除标志的记录。 4. 废止“数据查询”菜单栏下的“教师信息查询”菜单项。 5. 运行该菜单后替换原来的系统菜单。 答案: 1.为“数据录入”菜单栏设置访问键ALT+L; 2.为“数据录入”菜单栏下的“教师信息录入”编制子菜单,该子菜单包括两个菜单项“教师基本信息录入”和“教师任课信息录入”,并用分隔线隔开; 3.为 “数据清理”菜单栏下的“学生表清理”设置命令,当执行该菜单时,删除学生(XS)表中所有带删除标志的记录:PACK 4.将“数据查询”菜单栏下的“教师信息查询”菜单项废止; 选项按钮中的跳过栏中:.t.5.运行该菜单后替换原来的系统菜单.显示菜单中的常规选项 八、设计并修改菜单MENUH 项目TEST中已存在菜单MENUH,按如下要求修改菜单,完成后的运行效果如图1所示。 1. 为“系统”菜单栏下的“退出”菜单项设置快捷键“CTRT+R”。 2. 为“学生档案管理”菜单栏设置子菜单,该子菜单包括二个菜单项“学 生基本信息录入”和“学生变动信息录入”,并用分隔线隔开。 3. 为 “学生成绩管理”菜单栏下的“不及格成绩查询”菜单项设置SQL 图1 命令,当执行该菜单项时显示成绩(CJ)表中所有成绩(cj)低于60分的学生的学号(xh),课程代号(kcdh)和成绩(cj)。 4. 为“学生变动信息录入”菜单项设置提示信息:学生进校以后的各种奖励和处分,当选 择该菜单项时,在状态栏中显示该提示信息。 5. 在“系统”菜单栏下插入系统菜单“打印预览”。 答案: 1. “系统”菜单栏下的“退出”菜单项设置快捷键CTRT+R; 2. 为“学生档案管理”菜单栏设置子菜单,该子菜单包括二个菜单项“学生基本信息录入 ” 和“学生变动信息录入”,并用分隔线隔开; 3. 为 “学生成绩管理”菜单栏下的“补考成绩查询”设置命令,当执行该菜单时显示成绩(CJ)表中所有成绩(CJ.CJ)低于60分的学生的学号(CJ.XH),课程代号(CJ.KCDH)成绩(CJ.CJ) SELECT * FROM CJ WHERE CJ<60 4. 为“学生变动信息录入”设置提示信息:“学生进校以后的各种奖励各种处分” 5. 在“系统”菜单栏下插入系统菜单条“打印预览” 九、设计并修改菜单MENUI 项目TEST中已存在菜单MENUI,其中已定义了“记录浏览”、“记录定位”和“系统”三个菜单栏,按如下要求修改菜单,完成后的运行效果如图1所示。 1. 为“系统”菜单栏下的“退出”菜单项设置快捷键“CTRT+R”。 2. 在“记录浏览”菜单栏下增加一个菜单项“课程表”。 3. 为 “记录浏览”菜单栏下的“学生表”设置SQL命令,以浏览学生(XS)图表中的所有记录,显示字段包括所有字段。 4. 为“记录定位”菜单栏下的“下一条”菜单项设置废止条件:EOF()。 5. 在“系统”菜单栏下插入系统菜单“导出”。 答案: 1. 系统”菜单栏下的“退出”菜单项设置快捷键CTRT+R; 2. 为“记录浏览”菜单栏下增加一个菜单项“课程表”; 3. 为 “记录浏览”菜单栏下的“学生表”设置命令:SELECT * FROM XS 4. 为“记录定位”菜单栏下的“下一条”菜单项设置废止条件为: 选项按钮中的跳过栏中:EOF() 5. 在“系统”菜单栏下插入系统菜单条“导出” 十、设计并修改菜单MENUJ 项目TEST中已存在菜单MENUJ,其中已定义了“记录浏览”、“记录定位”和“恢复系统菜单”三个菜单栏,按如下要求修改菜单,完成后的运行效果如图 1所示。 1. 为“恢复系统菜单”设置访问键“ALT+X”。 2. 为“记录浏览”菜单栏创建子菜单,该子菜单包括 “学生表” 图和“成绩表”二个菜单项,并用分隔线隔开。 3. 为“记录定位”菜单栏下的“上一条”菜单项设置废止条件:BOF()。 4. 为“记录定位”菜单栏下的“最后一条”菜单项设置命令:当执行该菜单项时,记 录指针指向当前表的最后一条记录。 5. 为“记录定位”菜单栏下的“上一条”菜单项设置说明信息“定位到上一条记录”。答案: 1. 将菜单项名称 “恢复系统菜单” 改为:恢复系统菜单( 2. 为“记录浏览”菜单栏设置子菜单,该子菜单包括二个菜单项“学生表”和“成绩 表”,并用分隔线隔开; 3. 为“记录定位”菜单栏下的“上一条”菜单项设置废止条件为: 选项按钮中的跳过栏中:BOF(); 4. 为“记录定位”菜单栏下的“最后一条”设置设置命令:GO BOTTOM 5. 为“记录定位”菜单栏下的“上一条”菜单项设置说明信息“定位到上一条记录”。选项按钮中的信息栏中:“定位到上一条记录” 1. 设计原则 (1) 根据用户任务组织菜单系统 (2) 给每个菜单和菜单选项设置一个意义明了的标题 (3) 按照估计的菜单项使用频率、逻辑顺序或字母顺序组织菜单项 (4) 在菜单项的逻辑组之间放置分隔线 (5) 给每个菜单和菜单选项设置热键或键盘快捷键 (6) 将菜单上菜单项的数目限制在一个屏幕之内,如果超过了一屏,则应为其中一些菜单项创建子菜单, (7) 在菜单项中混合使用大小写字母,只有强调时才全部使用大写字母。 2. 设计步骤 (1)菜单系统规划 (2)建立菜单和子菜单 (3)将任务分派到菜单系统中 (4)生成菜单程序 (5)测试并运行菜单系统 9.2 创建菜单 1. 菜单设计器简介 2. 用菜单设计器创建菜单 打开文件菜单 →新建→菜单→新文件→ 在菜单设计器中逐项设计所需菜单(或选择菜单中的快速菜单,生成通用的菜单)→ 预览 → 确定 → 关闭菜单设计器 → 给出文件名及保存位置→从菜单菜单中选择生成…→在对话框中单击生成(可更改菜单程序文件的文件名和保存位置再生成), 电脑资料 菜单设计器关闭后,系统产生两个文件: 菜单定义文件 扩展名为 .MNX 菜单备注文件 扩展名为 .MNT 关键词:VFP;面向对象;动态下拉式按钮组菜单;数据库;信息管理系统 使用传统菜单必须要一层一层地点击,才能执行一个表单,有时容易点错,为用户带来不便,并且界面也不美观。而采用传统菜单结合动态菜单的设计,不仅使用户操作便捷,而且界面更加友好、更加专业化,并且动态菜单完全实现了用户自定义菜单功能,大大降低了应用程序的修改维护,满足各种用户需求。 一、动态菜单的功能介绍 1.动态菜单布局:第一级菜单作为动态菜单的第一层,第二级菜单作为动态菜单的第二级,本例只用了两级,可以根据需要拓展到多级,并且一般情况下,级数不要多于2层,否则影响使用效果。其用法是,当点击第一层菜单,如“查询统计”,系统将下拉展开“查询统计”的二级菜单。再次点击其他的第一层菜单时,如“日常管理”时,只展开“日常管理”的二级菜单。其他一级菜单关闭。 2.动态菜单将根据用户ID和用户自定义的菜单项,自动生成动态菜单。不同的用户可根据自己的实际需要,由系统管理员分配菜单项及规定各级菜单的文本和图标等。 二、设计思想 1.按照其功能,可以把每个一级菜单看作一个树型节点,并且其行为也与树型控件很相似,当展开一级菜单中的一个时,其他一级菜单自动关闭,也可全部展开等。当要实现其动态设定菜单项时,也需要将每个一级菜单作为一个节点类来处理 2.设计时,可以将动态菜单分为三个部分来进行。第一部分是设计子节点,子节点的功能是实现执行命令或过程等。第二部分是设计带有子节点的父节点,父节点的功能是子节点的容器,实现二级菜单的动态填充及展开、关闭二级菜单。第三部分是設计动态菜单的主体,主体是父节点的容器,实现一级菜单的动态数据填充及管理一级菜单。 三、关键步骤、技术与核心代码 1.设计子节点类。代码如下: DEFINE CLASS tb_cbnode as Commandbutton Alignment=0 Height=25 Pictureposition =1 Width=124 runcmd=“”&&增加的新属性 PROCEDURE Click LOCAL ls_runcmd ls_runcmd =This.runcmd &ls_runcmd &&执行增加的新属性runcmd宏 ENDPROC ENDDEFINE 2.设计父节点类。 (1)增加新属性。 DEFINE CLASS tb_node as Container &&定义父节点 ENDDEFINE &&这条语句放在整个类定义之后 c_height =0 &&展开时容器的高度 c_maxheight =200 &&容器的最大高度,即容器显示的子节点最多数量,当c_height &&大于c_maxheight时,容器将显示上、下滚动箭头。 itemcnt =0 &&包含的子节点数 preheight =25 &&单位高度,即点击上、下滚动箭头时子节点移动的单位 caption =0 (2)增加两个对象。 增加一个命令按钮,用来显示父节点的标题及展开、关闭父节点等功能,然后增加一个容器,用以放置子节点。代码如下: ADD OBJECT node_cb AS CommandButton PROCEDURE node_cb.Click This.Parent .Parent.LockScreen =.t. &&防止刷屏 This.Parent.Parent.collapseall&&调用父节点所在容器的collapseall方法 This.Parent.expand &&调用父节点展开方法 This.Parent .Parent.LockScreen =.f. ENDPROC ADD OBJECT node_c AS Container &&用来包含子节点的容器 (3)增加几个方法。 增加collapse、expand、downclick、upclick、setp及ynhidecb方法,其含义分别是节点收缩、节点展开、点击向下滚动箭头、点击向上滚动箭头、运行宏及隐藏显示命令按钮。下面仅介绍关键代码 PROCEDURE expand LOCAL li_height IF This.c_maxheight>=This.c_height li_height=This.c_height ELSE li_height=This.c_maxheight ENDIF This.node_c .Height =li_height This.Height=This.node_cb.Height +This.node_c.Height ENDPROC 3.设计动态菜单的主体。 设计用户自定义菜单录入表。根据需要,分别设计了两个表,一个menu_sub用于保存一级菜单项目,另一个menu_item用于保存二级菜单项目,两个表为一对多关系,menu_sub为主表,menu_item为从表。 总之,这个动态菜单是由三部分组成,分别为子节点、父节点和动态菜单本身,它们的关系均为前一个对象是后一个类的子对象。并且动态菜单的行为方式与树型控件的行为方式很相似,因此在设计此类时自然会产生分别设计三个类的想法。并且为了使其子节点能动态关联执行命令或过程,这里采用了宏,使得在类内的子对象可以执行外部函数。 参考文献: 张洪举.Visual FoxPro 6.0~9.0解决方案与范例大全.人民邮电出版社,2006.篇2:vfp菜单练习
篇3:vfp菜单练习