VFP第9章++菜单设计
合集下载
VFP第9章 菜单与报表设计_OK

V F isual oxPro
2021/6/30
1
9.1 菜单设计概述
9.1.1 菜单的结构 Visual FoxPro支持两种类型的菜单:条形菜单(一级菜单)和
弹出式菜单(子菜单)。它们都有一组菜单选项显示于屏幕 供用户选择。用户选择其中的某个选项时都会有一定的动作。 这个动作可以是下面3种情况中的一种:执行一条命令、执 行一个过程或激活另一个菜单。
条形菜单
弹出式菜单
2021/6/30
2
可以为每个菜单选项设置一个热键和快捷键。当菜单激活时, 可以按菜单项的热键快速选择该菜单项。快捷键通常是Ctrl 和另一个字符键组成的组合键。不管菜单激活与否,都可以 通过快捷键选择相应的菜单选项。
常规的菜单系统一般是一个下拉式菜单,由一个条形菜单和一 组弹出式菜单组成。其中条形菜单作为主菜单,弹出式菜单 作为子菜单。当选择一个条形菜单选项时,激活相应的弹出 式菜单。
任何数据后,单击右键随即弹出快捷菜单,便可进行撤 消、剪切、复制、粘贴等操作。
2021/6/30
9
9.4 报表设计
报表的布局 1、列报表:表中每行一条记录,每条记录的输出字段在页面上 按水平方向放置。 2、行报表:表中每条记录输出字段在页面上垂直方向放成一列 3、一对多报表:一对多报表就是输出父表中的一条记录,以及 与其对应的子表中多条记录 4、多栏报表:表中每条记录的输出字段页面上按垂直方向放成 一列,同一个页面上有多列记录,记录按垂直方向多栏分布 5、标签:标签是报表的一种,在每一页上可以打印出多列大小 相同的卡片式的记录
2021/6/30
10
9.4.1 利用报表向导设计报表
启动报表向导打开“文件”菜单中的“新建”菜单项,
在文件类型栏中选择“报表”,然后单击“向导”
2021/6/30
1
9.1 菜单设计概述
9.1.1 菜单的结构 Visual FoxPro支持两种类型的菜单:条形菜单(一级菜单)和
弹出式菜单(子菜单)。它们都有一组菜单选项显示于屏幕 供用户选择。用户选择其中的某个选项时都会有一定的动作。 这个动作可以是下面3种情况中的一种:执行一条命令、执 行一个过程或激活另一个菜单。
条形菜单
弹出式菜单
2021/6/30
2
可以为每个菜单选项设置一个热键和快捷键。当菜单激活时, 可以按菜单项的热键快速选择该菜单项。快捷键通常是Ctrl 和另一个字符键组成的组合键。不管菜单激活与否,都可以 通过快捷键选择相应的菜单选项。
常规的菜单系统一般是一个下拉式菜单,由一个条形菜单和一 组弹出式菜单组成。其中条形菜单作为主菜单,弹出式菜单 作为子菜单。当选择一个条形菜单选项时,激活相应的弹出 式菜单。
任何数据后,单击右键随即弹出快捷菜单,便可进行撤 消、剪切、复制、粘贴等操作。
2021/6/30
9
9.4 报表设计
报表的布局 1、列报表:表中每行一条记录,每条记录的输出字段在页面上 按水平方向放置。 2、行报表:表中每条记录输出字段在页面上垂直方向放成一列 3、一对多报表:一对多报表就是输出父表中的一条记录,以及 与其对应的子表中多条记录 4、多栏报表:表中每条记录的输出字段页面上按垂直方向放成 一列,同一个页面上有多列记录,记录按垂直方向多栏分布 5、标签:标签是报表的一种,在每一页上可以打印出多列大小 相同的卡片式的记录
2021/6/30
10
9.4.1 利用报表向导设计报表
启动报表向导打开“文件”菜单中的“新建”菜单项,
在文件类型栏中选择“报表”,然后单击“向导”
快捷菜单设计_Visual FoxPro 程序设计_[共2页]
![快捷菜单设计_Visual FoxPro 程序设计_[共2页]](https://img.taocdn.com/s3/m/72e21402360cba1aa911da6e.png)
171
图9-17 顶层表单属性设置 图9-18 顶层表单Init 事件
图9-19 表单顶层菜单运行界面
9.3 快捷菜单设计
快捷菜单一般从属于某个界面对象,它列出了与该对象相关的操作命令,用鼠标右键单击对象时弹出。
利用VFP 提供的快捷菜单设计器可以方便地定义和设计快捷菜单。
建立快捷菜单的步骤如下。
① 单击“文件”菜单下的“新建”命令或常用工具栏上的“新建”按钮,在出现的“新建”对话框中,选择文件类型为“菜单”,然后单击“新建文件”按钮。
在弹出“新建菜单”对话框中单击“快捷菜单”按钮,进入快捷菜单设计器。
② 用与设计下拉式菜单相似的方法,在快捷菜单设计器窗口中设计快捷菜单,生成菜单程序文件。
③ 打开表单,选定需要添加快捷菜单的对象。
④ 在选定对象的RightClick 事件代码中添加调用快捷菜单程序的命令:
DO <快捷菜单程序名.MPR>
其中,文件的扩展名.MPR 不能省略。
⑤ 运行表单,右键单击表单对象,即会弹出快捷菜单。
【例9-3】 为表单biaodan1建立一个快捷菜单kjcd ,菜单包括选项:日期、时间、变大和变小,时间与变大之间有分隔线,如图9-20所示。
选中日期或时间时,表单标题将变成当前日期或时间。
选中变大或变小选项时,表单大小将缩放20%。
操作步骤如下。
① 打开“快捷菜单设计器”窗口。
第9章 vfp 菜单与工具栏

命令
9.1 规划与设计菜单
9.1.3 创建菜单
菜单的提示选项 单击“选项”按钮,出现“提示选项”对话框。 单击“选项”按钮,出现“提示选项”对话框。在该对话 框中可以设置快捷键和跳过条件等。 框中可以设置快捷键和跳过条件等。
设置快捷键, 设置快捷键,按下 要定义的键
“跳过”的条件是一个逻 跳过” 辑表达式,当条件为真时, 辑表达式,当条件为真时, 则菜单废止,外观为灰色。 则菜单废止,外观为灰色。
9.1 规划与设计菜单
9.1.2 创建菜单概述
菜单有两种: 菜单有两种:一般菜单和快捷菜单 如何创建菜单? 如何创建菜单? 一般使用菜单设计器和快捷菜单设计器 如何打开“新建菜单”对话框? 如何打开“新建菜单”对话框? 文件” 新建” 菜单” “文件” →“新建” →“菜单”
“新建菜单”对话框 新建菜单”
菜单栏级
9.1 规划与设计菜单
9.1.3
创建菜单
创建子菜单与菜单分组 结果”列选择“子菜单” 然后单击“创建”按钮。 在“结果”列选择“子菜单”,然后单击“创建”按钮。 设置菜单热键或访问键使用( ),菜单分组线使用 菜单分组线使用( 设置菜单热键或访问键使用(\<),菜单分组线使用(\-)
菜单热键 菜Hale Waihona Puke 分组线9.1 规划与设计菜单
“菜单选项”主要用于为当前指定的菜单级设置过程代码。 菜单选项”主要用于为当前指定的菜单级设置过程代码。
单击“编辑”按钮, 单击“编辑”按钮,即可 输入过程代码
注意: 注意:若在菜单栏或菜单项中 未设置任务,而在“常规选项” 未设置任务,而在“常规选项” 和“菜单选项”中均创建了过 菜单选项” 程代码,则忽略“常规选项” 程代码,则忽略“常规选项” 中的代码,执行“菜单选项” 中的代码,执行“菜单选项” 中创建的代码。 中创建的代码。
VFP第9章菜单的创建与使用

9.1.5 配置VFP系统菜单
SET SYSMENU TO:关闭VFP主菜单栏 SET SYSMENT ON | OFF | AUTOMATIC | TO [菜单项] | TO [菜单标题列表] | TO [DEFAULT] | SAVE | NOSAVE
9.1.6 创建快捷菜单
快捷菜单是附加在表单或表单控件上 的通过鼠标右键访问和使用的一种菜单 项目管理器—菜单—新建—快捷菜单 其余与一般菜单方法相同 将快捷菜单附加到控件上的步骤: 在“表单设计器”窗口中选择控件 在属性窗口中选:“RightClick Event” 在代码窗口中键入:DO 快捷菜单名.mpr
5.启用和废止菜单项 在“在提示选项”对话框中的“跳过” 文本框中,输入一逻辑表达式,若为.F., 则启用菜单项;若为.T.,则废止菜单项。 6.创建子菜单(每个菜单项都可创建) 步骤: 选择要创建子菜单的菜单项 “结果”,选“子菜单” 则“创建”按钮出项,若以有子菜单,则 是“编辑” 单击“创建”或“编辑”,出现新菜单的 列表 键入新建的各菜单项
1.预览菜单 在设计过程中,可随时预览,预览时, 菜单项所赋予的功能并不被执行,若执 行则需生成菜单程序并执行。 2.生成和执行菜单程序 用设计其设计的菜单被保存为.mnx文 件,并不能直接执行,要运行,则先将 菜单生成.mpr文件。 方法:菜单—生成—保存
运行菜单:
do 菜单名.mpr 程序—运行 注:若菜单修改过,则必须重新生成菜 单程序(.mpr),否则修改无效。 运行菜单后,若要恢复VFP系统的默 认菜单:SET SYSMENU TO DEFAULT
第9章 菜单
菜单是一个应用系统的功能列表,是用 户界面的一个重要组成部分,是用户评价应 用系统是否方便、简捷的一个重要因素。
菜单设计-VFP程序设计

自定义设置
提供一定程度的自定义选项,允许用户根据 个人习惯调整菜单布局。
如何实现动态菜单
实时更新
根据用户当前的操作或状态,动态地更新菜单项,提 供更加个性化的体验。
条件显示
根据用户的权限或特定条件,显示或隐藏某些菜单项。
动态添加和删除
允许在运行时动态添加或删除菜单项,以适应程序的 不同阶段或不同配置。
提高工作效率
一个清晰、简洁的菜单结构可以帮助用户更快地找到所需的功能,从而 提高他们的工作效率。
03
降低学习成本
良好的菜单设计可以降低用户学习新应用程序的难度,使新手用户更容
易上手。
菜单设计的基本原则
直观性
菜单项应清晰明了,易于理解 。避免使用过于专业或晦涩难
懂的术语。
分类合理
将相关功能归类到同一级菜单 下,使菜单结构更加清晰。
05 VFP程序设计中菜单设计 的常见问题与解决方案
问题一:如何处理复杂的菜单结构
总结词
合理规划菜单层次和布局
详细描述
通过动态加载技术,可以根据用户的需求和操作系统的不 同,动态地加载不同的菜单项和功能。这样可以减少菜单 的复杂性,提高用户的操作效率。
详细描述
对于复杂的菜单结构,可以采用多级菜单和子菜单来组织 ,合理规划菜单的层次和布局,使其更加清晰易用。同时 ,可以使用图标、颜色等视觉元素来区分不同级别的菜单 项,提高用户的使用体验。
04 VFP程序设计的菜单设计 实例
实例一:基础菜单设计
总结词
简单明了,易于使用
详细描述
基础菜单设计通常采用下拉菜单形式,列出程序的主要功能选项。菜单项简洁 明了,用户可以快速找到所需功能并执行。这种设计适用于功能相对简单、用 户易于理解的应用程序。
提供一定程度的自定义选项,允许用户根据 个人习惯调整菜单布局。
如何实现动态菜单
实时更新
根据用户当前的操作或状态,动态地更新菜单项,提 供更加个性化的体验。
条件显示
根据用户的权限或特定条件,显示或隐藏某些菜单项。
动态添加和删除
允许在运行时动态添加或删除菜单项,以适应程序的 不同阶段或不同配置。
提高工作效率
一个清晰、简洁的菜单结构可以帮助用户更快地找到所需的功能,从而 提高他们的工作效率。
03
降低学习成本
良好的菜单设计可以降低用户学习新应用程序的难度,使新手用户更容
易上手。
菜单设计的基本原则
直观性
菜单项应清晰明了,易于理解 。避免使用过于专业或晦涩难
懂的术语。
分类合理
将相关功能归类到同一级菜单 下,使菜单结构更加清晰。
05 VFP程序设计中菜单设计 的常见问题与解决方案
问题一:如何处理复杂的菜单结构
总结词
合理规划菜单层次和布局
详细描述
通过动态加载技术,可以根据用户的需求和操作系统的不 同,动态地加载不同的菜单项和功能。这样可以减少菜单 的复杂性,提高用户的操作效率。
详细描述
对于复杂的菜单结构,可以采用多级菜单和子菜单来组织 ,合理规划菜单的层次和布局,使其更加清晰易用。同时 ,可以使用图标、颜色等视觉元素来区分不同级别的菜单 项,提高用户的使用体验。
04 VFP程序设计的菜单设计 实例
实例一:基础菜单设计
总结词
简单明了,易于使用
详细描述
基础菜单设计通常采用下拉菜单形式,列出程序的主要功能选项。菜单项简洁 明了,用户可以快速找到所需功能并执行。这种设计适用于功能相对简单、用 户易于理解的应用程序。
Visual FoxPro 9.0程序设计基础 第9章 菜单程序设计

2016/1/15
第九章 菜单程序设
主讲:
南京信息工程大学计算机与软件学院 刘生 14
9.2 普通菜单的创建
若要使用“新建”命令创建菜单,应按下列步骤操作:
(1)从 “文件”菜单中选择“新建”命令,系统弹 出“新建”对话框。
(2)在“文件类型”区域中选择“菜单”单选项。
(3)单击“新建文件”按钮,系统弹出“新建菜单” 对话框。
菜单栏(Menu Bar) 菜单栏位于应用程序窗口的最上方。当用户选 择菜单栏中的某一个菜单时,系统将打开一个下 拉菜单,供用户选择其中的命令。
2016/1/15
第九章 菜单程序设
主讲:
南京信息工程大学计算机与软件学院 刘生 8
9.1概述
菜单项(Menu Item)
菜单项是下拉菜单中的一条命令,因此通常将菜单项 称为命令。
2016/1/15
第九章 菜单程序设
主讲:
南京信息工程大学计算机与软件学院 刘生 22
9.2.4 运行菜单
菜单作为VFP应用程序的组成部分,其生成、 修改、运行应纳入应用程序的项目管理 器之下。其运行有以下两种方式。 1.菜单作为项目主文件 主文件是项目中所有文件最先被执行的文 件。如果菜单被设为主文件,则菜单自动被执行, 无须其他设置。 2.菜单被命令程序(prg)或表单(scx)调用
“命令”选项:用于在其后显示的文本框中输入一条 命令。该命令与创建的菜单项一一对应。
2016/1/15
第九章 菜单程序设
主讲:
南京信息工程大学计算机与软件学院 刘生 17源自9.2.1“菜单设计器”的使用
“填充名称”选项:用于在其后显示的文本框中为菜单项命名, 该名称用来供其它程序调用。缺省情况下,系统将自动为每一个菜 单项命名。
第九章菜单设计与应用

典型的菜单系统一般是一个下拉式菜单, 由一个条形菜单和一组弹出式菜单组成。其 中条形菜单作为主菜单,弹出式菜单作为子 菜单。当选择一个条形菜单选项时,激活相 应的弹出式菜单。 快捷菜单一般由一个或一组上下级的弹 出式菜单组成。 二、菜单的使用 无论是哪种类型的菜单,当选择其中某个 选项时都会有一定的动作。这个动作可以是下 面三种情况中的一种:执行一条命令、执行一 个过程和激活另一个菜单。
(1)“菜单名称”列 ①菜单名称:用来输入菜单项的名称,用 于显示。 ②访问键:VFP允许用户在菜单项名称中 为该菜单项定义访问键。方法是在要定义 的字符之前加上“\<”。 (2)结果列 该列用于指定当用户选择该菜单项时的 动作。
①命令:为菜单项定义一条命令,菜单项 的动作即是执行用户定义的命令。 ②过程:为菜单项定义一个过程,菜单项 的动作即是执行用户定义的过程。定义时, 选择了过程,组合框右侧会出现创建或编 辑按钮(建立时显示创建,修改时显示编 辑),单击相应按钮在出现的编辑窗口编 辑内容。 ③子菜单:定义当前菜单项的子菜单。 定义时,选择了子菜单后,组合框右侧会
三、生成菜单程序 单击“文件”“保存”,菜单定义被保 存在 扩展名为.mnx的文件,同时生成扩展.mnt 的文件。 单击“菜单”“生成”指定生成的菜单 程 序文件名及保存位置 四、运行菜单程序
说明:菜单程序文件的扩展名不能省略 (2)单击“程序””运行” 例9.1 利用菜单设计器建立一个菜单TJ_MENU3, 效果如图9.5所示。要求如下: (1)主菜单(条形菜单)的菜单项包括“统计”的功能是统计各门课程的平均成绩, 统计结果包含“课程名”和“平均成绩”两 个字段,并将统计结果按课程名升序保存在 表NEW_TABLE32中。
①快捷键的设置:“键标签”文本框用于设置 菜单项的快捷键。快捷键是菜单项右面标识 的组合键。 定义方法:单击键标签文本框按下要定义 的组合键。快捷键通常是Ctrl或Alt键与另一个 字符键的组合。 取消方法:单击键标签文本框按空格键。 ②设定浅色菜单:跳过文本框用于设置菜单或 菜单项的跳过条件,用户可在其中键入条件 表达式。菜单运行时,表达式值为.T.时菜单 项将以浅色显示,不可选用。
VFP菜单设计(精)

VFP菜单设计
菜单系统的规划
根据系统要完成的功能,将各命令分组,定义组名
为主菜单项名。对于要执行的命令,用菜单项来实
现,对于一个组内要执行的菜单较多时,可采用同 类的功能定义子菜单的方法进行进一步的分组。
VFP菜单设计
菜单设计器的使用
菜单设计器中有菜单名称、结果、选项三个输入部分。
菜单名称项用来输入菜单及子菜单的名称。
VFP应用程序创建&发布
主程序(入口程序)的设计
系统的主程序通常用来对VFP工作环境进行设置。比 如日期格式、删除记录处理方式、默认文件夹的指定、 帮助文件的指向、字串比较方式等,在主程序调用表 单语句后,还要设置事件循环触发语句 Read events。 为去除程序运行的VFP系统背景,应在当前文件夹中 添加一个Config.fpw 文件,此文件只需一句:
错误”。连编完成后即可生成.exe文件,该文件包含了除数据
文件、类文件、其它文件以外的所有文件,在程序发布时这些 文件应不包含于发布包中。
VFP应用程序创建&发布
应用程序的发布
可以采用安装向导完成应用程序的发布工作,安装 向导将你要发布的程序打包,生成安装文件,并根 据你的要求生成以软盘、光盘、网络等为发布介质 的发布文件。
如果要在一级菜单中添加分隔符,可添加一菜单项,
菜单名用 “\-” 即可。
VFP菜单设计
菜单文件的生成
在退出菜单设计器时,系统将提示是否保存正在设计的菜单,如果 保存,则生成菜单设计文件,后缀名为MNT和MNX。但这两个文 件并不是可调用的菜单文件。 在系统主菜单上选择“菜单”菜单项上的生成命令,不但可以生成 前述的两个文件,还同时生成菜单文件,该文件的后缀名为MPR。 如生成的菜单是在顶层表单中使用的话,则在生成菜单文件前还应 执行主菜单上的“显示”-常规选项命令,在弹出的对话框中选中 “顶层表单”复选框,才能将该菜单文件运用于顶层表单。
菜单系统的规划
根据系统要完成的功能,将各命令分组,定义组名
为主菜单项名。对于要执行的命令,用菜单项来实
现,对于一个组内要执行的菜单较多时,可采用同 类的功能定义子菜单的方法进行进一步的分组。
VFP菜单设计
菜单设计器的使用
菜单设计器中有菜单名称、结果、选项三个输入部分。
菜单名称项用来输入菜单及子菜单的名称。
VFP应用程序创建&发布
主程序(入口程序)的设计
系统的主程序通常用来对VFP工作环境进行设置。比 如日期格式、删除记录处理方式、默认文件夹的指定、 帮助文件的指向、字串比较方式等,在主程序调用表 单语句后,还要设置事件循环触发语句 Read events。 为去除程序运行的VFP系统背景,应在当前文件夹中 添加一个Config.fpw 文件,此文件只需一句:
错误”。连编完成后即可生成.exe文件,该文件包含了除数据
文件、类文件、其它文件以外的所有文件,在程序发布时这些 文件应不包含于发布包中。
VFP应用程序创建&发布
应用程序的发布
可以采用安装向导完成应用程序的发布工作,安装 向导将你要发布的程序打包,生成安装文件,并根 据你的要求生成以软盘、光盘、网络等为发布介质 的发布文件。
如果要在一级菜单中添加分隔符,可添加一菜单项,
菜单名用 “\-” 即可。
VFP菜单设计
菜单文件的生成
在退出菜单设计器时,系统将提示是否保存正在设计的菜单,如果 保存,则生成菜单设计文件,后缀名为MNT和MNX。但这两个文 件并不是可调用的菜单文件。 在系统主菜单上选择“菜单”菜单项上的生成命令,不但可以生成 前述的两个文件,还同时生成菜单文件,该文件的后缀名为MPR。 如生成的菜单是在顶层表单中使用的话,则在生成菜单文件前还应 执行主菜单上的“显示”-常规选项命令,在弹出的对话框中选中 “顶层表单”复选框,才能将该菜单文件运用于顶层表单。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
12 / 41
菜单样例
1. 启动菜单设计器
方法:文件菜单→新建→选择菜单→新建文件 →菜单
2. 设置菜单栏的主菜单项
*菜单名称填入表操作、表输出和退出 *结果选择子菜单、子菜单和命令 *命令后文本框中输入Set Sysmenu To Default
13 / 41
菜单样例
3. 设置下拉子菜单
菜单栏菜单项 子菜单菜单项 结果列
33 / 41
设置程序菜单与VFP系统菜单相对位置
替换:是VFP系统的默认选项,用程序菜单 替换系统菜单,即仅显示程序菜单项和与当 前操作有关的VFP系统菜单项。
追加:将程序菜单插入到系统菜单中指定的 菜单项之后。
在…之前:将程序菜单插入到系统菜单中指 定的菜单项之前。在右侧下拉列表框中选择 用于定位的VFP系统菜单项。
1. 新建菜单 方法一:文件菜单→新建→选择菜单→新建 文件→菜单按钮。
方法二:常用工具栏上新建→选择菜单→ 新建文件→菜单按钮。
方法三:在项目管理器中其他选项卡→菜 单→新建→菜单按钮。
16 / 41
1. 新建菜单 方法四:命令方式。 Create |Modify Menu [<菜单文件名>] 命令说明:执行此命令后,系统生成扩 展名为MNX和MNT的菜单文件。
21 / 41
2. “结果”列
命令:表示此菜单项执行一个命令。
过程:用于输入菜单项要执行程序 。
填充名称或菜单项#:若定义主菜单项,则选 项为填充名称;用于填写有效的主菜单项内部 名,运行时用当前菜单名称代替原菜单名称显 示。
若定义子菜单项,则选项为菜单项#。可在 右侧文本框内输入子菜单项的内部名或序号。 可指定系统菜单中某个菜单项的内部名。
Create Menu
打开菜单设计器 设计菜单
菜单文件
(MNX , MNT)
Do <文件 主名>.MPR
生成菜单程序 执行菜单程序
菜单程序文件
(MPR)
11 / 41
9.2.2 菜单样例
菜单:是一系列选项,每一个菜单项都有名称, 方便用户识别,而当用户选择某一菜单项时将 会执行相应操作。
样例:设计一个简单的管理表文件的菜单。 菜单中包括3个主菜单选项:表操作、表输出 和退出。表操作的子菜单包含4个选项:打开 表、浏览、修改表结构和关闭表。表输出的 子菜单包含2个选项:输出表结构和输出表内 容。退出是恢复VFP系统菜单。 样例
36 / 41
2. 设置表单与调用菜单
在表单的Destroy事件中清除菜单。 格式:Release Menu <菜单内部名表> 说明:从内存中清除菜单,菜单内部名是 调用菜单时为菜单所起的名称。
例题:在Mainform表单中调用菜单。
37 / 41
9.5 快捷菜单设计与应用
在程序运行过程中,右击对象弹出的菜单是 快捷菜单,也称对象的右击菜单。快捷菜单 由一个弹出式菜单组成,或者由一系列有上 下级关联的弹出式菜单组成。
在…之后:将程序菜单添加到系统菜单之后。
34 / 41
9.4.2 设置表单中的程序菜单
要使程序菜单显示在表单中,在设计程序菜 单和表单时,必须设置相关属性。
1. 设置菜单
方法:菜单设计器下,单击显示菜单中的常 规选项,在常规选项对话框中,选定顶层表 单复选框,使当前程序菜单成为表单中调用 的菜单。
例题
8 / 41
2. 指定系统菜单的默认配置
命令格式:Set Sysmenu Save | Nosave 命令说明:用于指定系统菜单的默认配置。
Save:指定当前系统菜单为默认配置。
Nosave:指定VFP系统菜单的最初配置为默认 配置。
例题
9 / 41
3. 设置是否显示系统菜单项
命令格式: Set Sysmenu On| Off
35 / 41
2. 设置表单与调用菜单
在表单设计器中,将表单的ShowWindow 属性的值设为2-作为顶层表单。
在表单的Load、Init事件中调用菜单程序。
格式:Do <菜单程序文件名> With This[Form] [,”<菜单内部名>”]
说明:扩展名MPR不能省略。This表示在当前 表单中调用菜单程序。为了在程序中其他位置 能引用菜单名,调用菜单程序时要为菜单规定 菜单内部名。
18 / 41
9.3.2 定义菜单项
菜单设计器
菜单名称
结果
选项 菜单级
19 / 41
1. “菜单名称”列
菜单名称列内输入菜单项的名称,也称菜单 标题,仅用于显示。
可以设置菜单项的访问键,也称热键。
方法:在访问键的字符前加上\<。 例如:输入菜单名称为“表(\<T)”,则可 以用Alt键和字母T组合访问该菜单项。
在VFP中运行菜单程序文件时,菜单也可 显示在表单中作为应用程序的主菜单。
对于同一个程序菜单来说,其位置只能有 一个,不能二者兼得。
32 / 41
设置程序菜单与VFP系统菜单相对位置
方法:在菜单设计器下,显示菜单→常规选项 →进入常规选项对话框→ 位置选项中,选定 当前程序菜单与系统菜单的位置关系。
第9章 程序菜单设计及应用(3学时)
吉林大学计算机教学与研究中心
9.1 设置VFP系统菜单
常见的菜单:下拉式菜单和快捷菜单
一个应用程序通常采用下拉式菜单的 形式列出其功能,供用户使用。
快捷菜单一般从属于某个对象,列出有 关对象的常用操作。也称右击菜单。
命令说明:用于设置程序中执行到具有交互 性命令时是否显示系统菜单项。 常用交互性命令: Wait、Browse、Edit等。
On:程序中执行交互命令时显示系统菜单。
Off:程序中执行交互命令时不显示系统菜单。
例题 程序效果
10 / 41
9.2 菜单应用示例设计
菜单设计的基本步骤
创建菜单主要工作在菜单设计器中完成 。
每个弹出式菜单也有各自的内部名。
如文件的弹出式菜单内部名为_Mfile, 编辑的弹出式菜单内部名为_Medit。
4 / 41
菜单结构
每个菜单项也有内部名,内部名是供系统识 别,可以在编程代码中引用。
如文件菜单中打开菜单项内部名_Mfi_Open
可以为每个菜单项设置快捷键,快捷键通 常是Ctrl键与一个字符键的组合。
快捷菜单的特点
与程序菜单相比,快捷菜单只有弹出式菜 单,没有条形菜单。
快捷菜单一般从属于某个对象,通常只列 出与对象有关的一些操作命令。
38 / 41
2. 建立快捷菜单
方法:文件菜单→新建→选择菜单→新建 文件→快捷菜单。
设计快捷菜单的具体方法与设计下拉式菜单 相似,快捷菜单文件扩展名及快捷菜单程序 文件的生成过程与下拉式菜单都相同。
命令
Accept "表文件主名:" To x If File(x+".dbf")
表操作
打开表
过程
Use &x Else Wait ’表文件’+x+’.dbf不存在!’ Endif
浏览
命令 Brows
修改表结构 命令 Modify Structure
输 入 完 毕关,闭表按 Ctr命l+令S 保Use存 , 文 件 主 名 为
如果不指定,系统将为主菜单或子菜单项随机 地分配一个内部名或序号。具有相同的内部名 或内部号的菜单项,具有相同功能(覆盖菜单 名称)。
25 / 41
9.3.2 定义菜单项
插入按钮
单击该按钮,在当前菜单项行之前插入 一个新的空白菜单项行。
插入栏按钮
单击该按钮,打开插入系统菜单栏对话框, 选定所需要的菜单项,再单击插入按钮。则在 当前菜单项行之前插入一个标准的VFP系统菜 单项。并得到系统子菜单项名称和内部名称。
输入逻辑表达式,若值为.T.,则对应菜单项不 可用(灰色表示);若值为.F.,则对应菜单项可 用;若没写,则系统默认该菜单项可用。
24 / 41
3. “选项”列
信息:定义菜单项说明信息。在信息文本框输 入字符表达式,运行菜单,当鼠标指向菜单项, 该表达式的值将显示在VFP状态栏中。
主菜单名或菜单项#:指定主菜单项的内部名 字或子菜单项的内部编号。
39 / 41
#3. 调用与清除快捷菜单
表M输出enuex输输1出出。表表结 内构 容
命令 List Structure 命令 List
14 / 41
菜单样例
4. 生成可执行菜单程序文件。 方法: 菜单菜单→生成。
5. 运行菜单程序 方法:在命令窗口或程序中执行
Do Menuex1.mpr
15 / 41
9.3 菜单设计与应用 启动菜单设计器
例如:在命令窗口中键入
Creat Menu Mymenu
17 / 41
2. 修改菜单 方法一:文件菜单→打开→文件类型为 菜单(*.MNX)→选择菜单文件。
方法二:命令方式。
Modify Menu [<菜单文件名>]
命令说明:系统默认菜单文件名扩展名 为MNX。执行该命令时,若菜单文件存
在,则打开菜单,否则建立菜单。
2 / 41
9.1 设置VFP系统菜单
菜单结构
典型的菜单系统是 下主菜拉单式或菜条单形,菜它单 由 一个条形菜单和一组弹出式菜单组成。
条形菜单是主菜单,菜而单弹项出式菜单作 为子菜单。当单击条形菜单的一个菜 单项时,激活其相弹应出的式弹菜出单式菜单。
3 / 41
菜单结构
每个条形菜单都有内部名和一组菜单项。 如文件菜单的内部名为_Msm_File, 编辑菜单的内部名为_Msm_Edit。
30 / 41
菜单样例
1. 启动菜单设计器
方法:文件菜单→新建→选择菜单→新建文件 →菜单
2. 设置菜单栏的主菜单项
*菜单名称填入表操作、表输出和退出 *结果选择子菜单、子菜单和命令 *命令后文本框中输入Set Sysmenu To Default
13 / 41
菜单样例
3. 设置下拉子菜单
菜单栏菜单项 子菜单菜单项 结果列
33 / 41
设置程序菜单与VFP系统菜单相对位置
替换:是VFP系统的默认选项,用程序菜单 替换系统菜单,即仅显示程序菜单项和与当 前操作有关的VFP系统菜单项。
追加:将程序菜单插入到系统菜单中指定的 菜单项之后。
在…之前:将程序菜单插入到系统菜单中指 定的菜单项之前。在右侧下拉列表框中选择 用于定位的VFP系统菜单项。
1. 新建菜单 方法一:文件菜单→新建→选择菜单→新建 文件→菜单按钮。
方法二:常用工具栏上新建→选择菜单→ 新建文件→菜单按钮。
方法三:在项目管理器中其他选项卡→菜 单→新建→菜单按钮。
16 / 41
1. 新建菜单 方法四:命令方式。 Create |Modify Menu [<菜单文件名>] 命令说明:执行此命令后,系统生成扩 展名为MNX和MNT的菜单文件。
21 / 41
2. “结果”列
命令:表示此菜单项执行一个命令。
过程:用于输入菜单项要执行程序 。
填充名称或菜单项#:若定义主菜单项,则选 项为填充名称;用于填写有效的主菜单项内部 名,运行时用当前菜单名称代替原菜单名称显 示。
若定义子菜单项,则选项为菜单项#。可在 右侧文本框内输入子菜单项的内部名或序号。 可指定系统菜单中某个菜单项的内部名。
Create Menu
打开菜单设计器 设计菜单
菜单文件
(MNX , MNT)
Do <文件 主名>.MPR
生成菜单程序 执行菜单程序
菜单程序文件
(MPR)
11 / 41
9.2.2 菜单样例
菜单:是一系列选项,每一个菜单项都有名称, 方便用户识别,而当用户选择某一菜单项时将 会执行相应操作。
样例:设计一个简单的管理表文件的菜单。 菜单中包括3个主菜单选项:表操作、表输出 和退出。表操作的子菜单包含4个选项:打开 表、浏览、修改表结构和关闭表。表输出的 子菜单包含2个选项:输出表结构和输出表内 容。退出是恢复VFP系统菜单。 样例
36 / 41
2. 设置表单与调用菜单
在表单的Destroy事件中清除菜单。 格式:Release Menu <菜单内部名表> 说明:从内存中清除菜单,菜单内部名是 调用菜单时为菜单所起的名称。
例题:在Mainform表单中调用菜单。
37 / 41
9.5 快捷菜单设计与应用
在程序运行过程中,右击对象弹出的菜单是 快捷菜单,也称对象的右击菜单。快捷菜单 由一个弹出式菜单组成,或者由一系列有上 下级关联的弹出式菜单组成。
在…之后:将程序菜单添加到系统菜单之后。
34 / 41
9.4.2 设置表单中的程序菜单
要使程序菜单显示在表单中,在设计程序菜 单和表单时,必须设置相关属性。
1. 设置菜单
方法:菜单设计器下,单击显示菜单中的常 规选项,在常规选项对话框中,选定顶层表 单复选框,使当前程序菜单成为表单中调用 的菜单。
例题
8 / 41
2. 指定系统菜单的默认配置
命令格式:Set Sysmenu Save | Nosave 命令说明:用于指定系统菜单的默认配置。
Save:指定当前系统菜单为默认配置。
Nosave:指定VFP系统菜单的最初配置为默认 配置。
例题
9 / 41
3. 设置是否显示系统菜单项
命令格式: Set Sysmenu On| Off
35 / 41
2. 设置表单与调用菜单
在表单设计器中,将表单的ShowWindow 属性的值设为2-作为顶层表单。
在表单的Load、Init事件中调用菜单程序。
格式:Do <菜单程序文件名> With This[Form] [,”<菜单内部名>”]
说明:扩展名MPR不能省略。This表示在当前 表单中调用菜单程序。为了在程序中其他位置 能引用菜单名,调用菜单程序时要为菜单规定 菜单内部名。
18 / 41
9.3.2 定义菜单项
菜单设计器
菜单名称
结果
选项 菜单级
19 / 41
1. “菜单名称”列
菜单名称列内输入菜单项的名称,也称菜单 标题,仅用于显示。
可以设置菜单项的访问键,也称热键。
方法:在访问键的字符前加上\<。 例如:输入菜单名称为“表(\<T)”,则可 以用Alt键和字母T组合访问该菜单项。
在VFP中运行菜单程序文件时,菜单也可 显示在表单中作为应用程序的主菜单。
对于同一个程序菜单来说,其位置只能有 一个,不能二者兼得。
32 / 41
设置程序菜单与VFP系统菜单相对位置
方法:在菜单设计器下,显示菜单→常规选项 →进入常规选项对话框→ 位置选项中,选定 当前程序菜单与系统菜单的位置关系。
第9章 程序菜单设计及应用(3学时)
吉林大学计算机教学与研究中心
9.1 设置VFP系统菜单
常见的菜单:下拉式菜单和快捷菜单
一个应用程序通常采用下拉式菜单的 形式列出其功能,供用户使用。
快捷菜单一般从属于某个对象,列出有 关对象的常用操作。也称右击菜单。
命令说明:用于设置程序中执行到具有交互 性命令时是否显示系统菜单项。 常用交互性命令: Wait、Browse、Edit等。
On:程序中执行交互命令时显示系统菜单。
Off:程序中执行交互命令时不显示系统菜单。
例题 程序效果
10 / 41
9.2 菜单应用示例设计
菜单设计的基本步骤
创建菜单主要工作在菜单设计器中完成 。
每个弹出式菜单也有各自的内部名。
如文件的弹出式菜单内部名为_Mfile, 编辑的弹出式菜单内部名为_Medit。
4 / 41
菜单结构
每个菜单项也有内部名,内部名是供系统识 别,可以在编程代码中引用。
如文件菜单中打开菜单项内部名_Mfi_Open
可以为每个菜单项设置快捷键,快捷键通 常是Ctrl键与一个字符键的组合。
快捷菜单的特点
与程序菜单相比,快捷菜单只有弹出式菜 单,没有条形菜单。
快捷菜单一般从属于某个对象,通常只列 出与对象有关的一些操作命令。
38 / 41
2. 建立快捷菜单
方法:文件菜单→新建→选择菜单→新建 文件→快捷菜单。
设计快捷菜单的具体方法与设计下拉式菜单 相似,快捷菜单文件扩展名及快捷菜单程序 文件的生成过程与下拉式菜单都相同。
命令
Accept "表文件主名:" To x If File(x+".dbf")
表操作
打开表
过程
Use &x Else Wait ’表文件’+x+’.dbf不存在!’ Endif
浏览
命令 Brows
修改表结构 命令 Modify Structure
输 入 完 毕关,闭表按 Ctr命l+令S 保Use存 , 文 件 主 名 为
如果不指定,系统将为主菜单或子菜单项随机 地分配一个内部名或序号。具有相同的内部名 或内部号的菜单项,具有相同功能(覆盖菜单 名称)。
25 / 41
9.3.2 定义菜单项
插入按钮
单击该按钮,在当前菜单项行之前插入 一个新的空白菜单项行。
插入栏按钮
单击该按钮,打开插入系统菜单栏对话框, 选定所需要的菜单项,再单击插入按钮。则在 当前菜单项行之前插入一个标准的VFP系统菜 单项。并得到系统子菜单项名称和内部名称。
输入逻辑表达式,若值为.T.,则对应菜单项不 可用(灰色表示);若值为.F.,则对应菜单项可 用;若没写,则系统默认该菜单项可用。
24 / 41
3. “选项”列
信息:定义菜单项说明信息。在信息文本框输 入字符表达式,运行菜单,当鼠标指向菜单项, 该表达式的值将显示在VFP状态栏中。
主菜单名或菜单项#:指定主菜单项的内部名 字或子菜单项的内部编号。
39 / 41
#3. 调用与清除快捷菜单
表M输出enuex输输1出出。表表结 内构 容
命令 List Structure 命令 List
14 / 41
菜单样例
4. 生成可执行菜单程序文件。 方法: 菜单菜单→生成。
5. 运行菜单程序 方法:在命令窗口或程序中执行
Do Menuex1.mpr
15 / 41
9.3 菜单设计与应用 启动菜单设计器
例如:在命令窗口中键入
Creat Menu Mymenu
17 / 41
2. 修改菜单 方法一:文件菜单→打开→文件类型为 菜单(*.MNX)→选择菜单文件。
方法二:命令方式。
Modify Menu [<菜单文件名>]
命令说明:系统默认菜单文件名扩展名 为MNX。执行该命令时,若菜单文件存
在,则打开菜单,否则建立菜单。
2 / 41
9.1 设置VFP系统菜单
菜单结构
典型的菜单系统是 下主菜拉单式或菜条单形,菜它单 由 一个条形菜单和一组弹出式菜单组成。
条形菜单是主菜单,菜而单弹项出式菜单作 为子菜单。当单击条形菜单的一个菜 单项时,激活其相弹应出的式弹菜出单式菜单。
3 / 41
菜单结构
每个条形菜单都有内部名和一组菜单项。 如文件菜单的内部名为_Msm_File, 编辑菜单的内部名为_Msm_Edit。
30 / 41