实验二   系统菜单设计和数据库与表的设计
【实验目的和要求】
通过本次实验,学习系统菜单设计的基本过程和方法,通过数据库及表的设计学习系统开发中对数据库及表的规划和设计。
【建议实验学时】
4学时。
【实验内容和步骤】
一、菜单系统设计
    几乎在所有的应用程序中,都要为用户提供一个菜单系统,菜单系统是用户界面的重要组成部分。菜单反映了程序的基本功能,而掩盖了程序内部复杂的代码细节,用户只需选择菜单项就能方便地完成非常繁杂的任务。这无疑极大地方便了用户,提高了工作效率。因此,系统菜单的设计是一项重要的工作。菜单系统是否完善、功能能否满足用户需要、操作是否简易、系
统提示是否友好等就成为评价菜单设计的重要指标。
    VFP6中提供了许多菜单命令和函数,可以直接设计下拉式菜单、弹出式菜单、快捷菜单等。创建一个完整、合理的菜单系统应当遵循如下步骤:
    规划菜单系统,也就是根据程序所应具备的功能和用户的要求,确定使用何种类型的菜单、菜单中应当包括哪些菜单标题(菜单名称),在每个菜单标题下包括哪些菜单项以及每个菜单项执行怎样的命令。
    利用菜单设计器创建规划好的菜单系统。在VFP6中有许多命令可以用来创建不同的菜单,菜单设计器因其功能全面、使用方便而最为常用。
    生成菜单程序并运行它。如果存在不足或错误,可以继续使用菜单设计器修改菜单设计,直到满意为止。
    本实验主要以《管理信息系统》教材第八章《MIS开发案例    市场营销子系统开发》的内容为基础,并主要以其中“系统管理”和“销售管理”子系统为例,介绍利用菜单设计器创建系统菜单的设计过程。
    启动菜单设计器
    打开自建的项目mis+学号,在其中的“其他”选项卡中选中“菜单”,然后单击项目管理器窗口中右侧的“新建”按钮,则出现如图1.20所示的“新建菜单”对话框。
1.20  “新建菜单”对话框
单击“新建菜单”对话框中的“菜单”按钮,则进入“菜单设计器”,如图1.21所示,用来设计一个如同VFP6系统主菜单的下拉式菜单系统 (如单击“快捷菜单”则进入“快捷菜单设计器”,用来设计一个单击鼠标右键即可激活的快捷菜单。快捷菜单的菜单选项与被右击的对象有关。从外观看,两种菜单设计器并没有什么不同,操作方法也基本一致,所以以下只重点介绍用
菜单设计器设计应用程序主菜单)
启动菜单设计器后,VFP6的系统菜单将增加一个“菜单”菜单名,并在“显示”系统菜单中增加了“常规选项”和“菜单选项”两个选项。
菜单设计器的使用
1.输入菜单名称
菜单名称是指显现于菜单横向菜单栏上的菜单标题或者出现于下拉菜单中的选项名称。在“菜单设计器”窗口中的“菜单名称”列中依次输入菜单标题:系统管理、合同管理、销售管理、客户信息管理、市场信息管理、销售人员管理、广告管理、售后服务管理、退出系统,如图1.21所示。
1.21  菜单设计器窗口
表单设计器怎么做    2.指定菜单功能
    在菜单设计器窗口中的“结果”列中,可选择指定菜单名称的类型,共有4种类型可供选择,本例中主要用到3种,在此略作介绍。
    子菜单:这是默认类型,该类型使得能够在当前菜单名称下建立下级菜单。本例中除了标题为“退出系统”的菜单外,其他几个菜单都选择设置为“子菜单”。
    过程:过程是以procedure开头的程序段,可以把多个过程集中写在一个源程序文件中。如果菜单选项设置为“过程”类型,那么该菜单选项将执行一个过程代码,过程代码将成为菜单源文件的一部分。这里把菜单标题为“退出系统”的菜单类型设置为“过程”。
    命令:如果菜单类型设置为“命令”,则当前菜单项的功能将只是执行一条VFP6命令。如BROWSE命令,或DO  <子程序文件名>等,而后者可以执行任意复杂的操作。
    本系统的各菜单名称的功能类型设置如图1.21所示。
    3.定义菜单标题的键盘访问键
    在菜单标题名称的左侧、右侧或内部,往往可以看到带有下划线的字母,这就是键盘访问键。在菜单被激活的情况下,只要从键盘输入ALT+菜单名称中带有下划线的字母,就能打开该菜单。
    在菜单设计器中,为菜单标题设置键盘访问键的方法是:在菜单名称左侧、右侧或内部输入“\<字母”即可,该字母就是键盘访问键。本例中,各菜单名称的键盘访问键的设置如图1.21所示,设计者也可根据自己的设计思路自由选择。
4.创建和修改子菜单并为菜单项指定功能代码
    在菜单设计器窗口中,各菜单名称的“结果”列设置为“子菜单”的菜单,右边有一个“创建”按钮。单击该按钮,就出现与刚才进入菜单设计器相同的画面,只是在“菜单级”选择框中的原来显示的“菜单栏”变成菜单标题的名称。这说明进入了菜单标题名称下的子菜单的设计过程。
本例主要以系统管理和销售管理两个子模块为例,介绍营销管理信息系统的开发,因此以后
的设计操作过程,主要介绍这两个菜单及其功能的实现,其他菜单及其功能设计,就不再介绍,可根据教材内容并参考系统管理、销售管理两个模块的设计进行开发。
在如图1.21所示的菜单设计器窗口中,将“系统管理”菜单名称的结果类型设置为“子菜单”,单击右边的“新建”按钮,就进入“系统管理”菜单标题的下级菜单的设计窗口,如图1.22所示。
1.22菜单设计器窗口
    在图1.22所示的菜单设计器窗口中,在“菜单级”选择框中显示为“系统管理S”,这表明在此窗口中设计的菜单是菜单栏中“系统管理”菜单名称的下级子菜单。在“菜单名称”栏中分别输入“数据备份(\<B)”、“数据恢复(\<R)”、“\-”、“代码管理(\<C)”、“\-”、“密码管理(\<P)”、“\-”、“退出系统(\<X)”菜单项名称(菜单名称前的“◇”符号不用输入,该符号只是本手册编写者用来标注在整个系统菜单中,已设计好范例的菜单部分。菜单项名称如是“\-”,则当菜单运行时,会在相应的菜单项位置,显示一条将相邻两菜单项隔开的分隔横线。在一般的菜单设计中,其作用往往是按功能相近的原则把菜单选项进行分组显示),并在其对应的“结果”栏中分别选择“命令”、“命令”、“子菜单”、“子菜单”、“子菜单”、“过程”、“子菜单”、“过程”,在“数据备份”和“数据恢复”菜单项的“结果”栏右边的输入框中分别输入命令“do form databak”和“do form datarstore(此两条命令就是让系统在当用户分别选择该菜单项时,分别调用名为“databak”和“datarstore”的表单来完成对应的功能)