系统菜单设计和数据库与表的设计.docx

上传人:b****5 文档编号:5632586 上传时间:2022-12-29 格式:DOCX 页数:23 大小:288.93KB
下载 相关 举报
系统菜单设计和数据库与表的设计.docx_第1页
第1页 / 共23页
系统菜单设计和数据库与表的设计.docx_第2页
第2页 / 共23页
系统菜单设计和数据库与表的设计.docx_第3页
第3页 / 共23页
系统菜单设计和数据库与表的设计.docx_第4页
第4页 / 共23页
系统菜单设计和数据库与表的设计.docx_第5页
第5页 / 共23页
点击查看更多>>
下载资源
资源描述

系统菜单设计和数据库与表的设计.docx

《系统菜单设计和数据库与表的设计.docx》由会员分享,可在线阅读,更多相关《系统菜单设计和数据库与表的设计.docx(23页珍藏版)》请在冰豆网上搜索。

系统菜单设计和数据库与表的设计.docx

系统菜单设计和数据库与表的设计

实验二 系统菜单设计和数据库与表的设计

【实验目的和要求】

通过本次实验,学习系统菜单设计的基本过程和方法,通过数据库及表的设计学习系统开发中对数据库及表的规划和设计。

【建议实验学时】

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”,这表明在此窗口中设计的菜单是菜单栏中“系统管理”菜单名称的下级子菜单。

在“菜单名称”栏中分别输入“数据备份(\

菜单项名称如是“\-”,则当菜单运行时,会在相应的菜单项位置,显示一条将相邻两菜单项隔开的分隔横线。

在一般的菜单设计中,其作用往往是按功能相近的原则把菜单选项进行分组显示),并在其对应的“结果”栏中分别选择“命令”、“命令”、“子菜单”、“子菜单”、“子菜单”、“过程”、“子菜单”、“过程”,在“数据备份”和“数据恢复”菜单项的“结果”栏右边的输入框中分别输入命令“doformdatabak”和“doformdatarstore”(此两条命令就是让系统在当用户分别选择该菜单项时,分别调用名为“databak”和“datarstore”的表单来完成对应的功能)。

选中“代码管理”菜单项,单击“结果”栏右边的“创建”按钮,就进入“代码管理”的下级子菜单设计窗口,如图1.23所示。

图1.23菜单设计器窗口

在图1.23所示的窗口中,在“菜单名称”栏中分别输入“地区代码管理”、“产品代码管理”、“客户代码管理”,将其“结果”都设置为“过程”。

单击“过程”右边的“创建”按钮(如过程已经创建,则是“编辑”按钮)就会弹出过程代码编辑窗口,如图1.24所示。

图1.24过程编辑窗口

用户可在窗口中输入菜单项对应的过程代码以完成与该菜单项相应的任务。

代码编辑完成后,关闭窗口即可。

虽然这里输入的程序代码是菜单文件中的一个过程,但不必书写procedure,因为系统会自动添加。

◆“地区代码管理”菜单项的过程代码为:

usediqudaima&&打开地区代码表

pack

use

doformdqdm&&执行表单文件

◆“产品代码管理”菜单项的过程代码为:

usechpdaima&&打开产品代码表

pack

use

doformcpdm&&执行表单文件

◆“客户代码管理”菜单项的过程代码为:

usekehu&&打开客户信息表

pack

use

doformkehugl&&执行表单文件

在“代码管理”的子菜单设计完成后,在图1.23所示的窗口的“菜单级”选择框中选择“系统管理”项,则又返回图1.22所示的“系统管理”菜单的子菜单设计窗口。

再按同样方法分别为“密码管理”和“退出系统”菜单项编写过程代码。

◆“密码管理”菜单项的过程代码为:

setdeleon

usepass

deleallforlen(alltrim(yhm))=0

pack

locaallforalltrim(yhm)=alltrim(yhname)

ifalltrim(yhlx)="系统管理员"

use

doformmmgl.scx

else

nAnswer=messagebox('很抱歉!

您不是系统管理员无权查阅和更改用户名;

和密码!

',0,'警告!

')

use

return

endif

◆“退出系统”菜单项的过程代码为:

ans=messagebox("确信要退出系统吗?

",4,"确认信息")

ifans=6

closeall

clearevent

quit

else

return

endif

当“系统管理”菜单的子菜单设计完成后,在“菜单级”选择框中选择“菜单栏”项,则又返回如图1.21所示的菜单设计器窗口。

在图1.21所示的菜单设计器窗口中,选中“销售管理”菜单名称,单击其“结果”栏右边的“创建”按钮,则进入如图1.25所示的其下级子菜单的设计窗口。

图1.25菜单设计器窗口

“销售管理”的子菜单设计如图1.25所示。

再按前述方法分别设计各菜单项的下级子菜单,并为相应的菜单项添加命令代码或过程代码。

“销售信息”、“往来账款”、“收账政策”菜单项的子菜单设计分别如图1.26、1.27和1.28所示。

图1.26“销售信息”菜单项的子菜单设计

图1.27“往来账款”菜单项的子菜单设计

图1.28“收账政策”菜单项的子菜单设计

◆“销售统计”菜单项的命令代码为:

doformxshtj&&执行名为xshtj的表单

◆“销售信息编辑”子菜单项的过程代码为:

usexiaoshou

pack

use

doformxiaoshlr

◆“销售信息查询打印”子菜单项的命令代码为:

doformxshcx

◆“往来账款编辑”子菜单项的过程代码为:

usezhangk

pack

use

doformzhangklr

◆“往来账款查询打印”子菜单项的命令代码为:

doformzhangkcx

◆“收账政策编辑”子菜单项的过程代码为:

useshouzh

pack

use

doformshouzhlr

◆“收账政策查询打印”子菜单项的命令代码为:

doformshouzhcx

本例系统中其他菜单的设计,可参考上述方法进行。

5.为菜单选项定义快捷键

在系统菜单中,往往可以看到有的菜单选项右侧有Ctrl+<字母>或Alt+<字母>的字样,例如“文件”菜单中的“新建…Ctrl+N”等,这就是菜单的快捷键。

不必层层激活菜单,只要按下快捷键,就能执行快捷键所对应的菜单选项命令。

在此以图1.25所示的菜单设计器窗口中的“销售统计”菜单项为例加以说明。

单击选中“销售统计”菜单项,单击其对应的“选项”栏下方的按钮,将出现如图1.29所示的“提示选项”对话框。

图1.29“提示选项”对话框

鼠标单击“键标签”文本框(这是必须的),再通过键盘输入组合键Alt+<字符>(字母、数字、符号),或组合键Ctrl+<字母>、Alt+F1~F12、Ctrl+F1~F12,或直接通过键盘敲击F1~F12功能键,则在“键标签”框中自动记录并显示键盘输入的快捷键。

如图1.30所示(此例中按下的Ctrl+S键)。

图1.30“提示选项”对话框

最后单击“确定”按钮,就设置好了“销售统计”菜单项的快捷键(注意:

所有快捷键是不能重名的)。

其他菜单项的快捷键的设置,请参照此方法自己完成。

6.进一步完善菜单程序

⑴常规选项的主要操作。

在菜单设计器窗口打开的情况下,选择系统“显示”菜单中的“常规选项”,会出现如图1.31所示的“常规选项”对话框。

图1.31“常规选项”对话框

①为菜单栏中不曾编写程序代码或子菜单项的菜单名称编写统一的代码。

其方法是:

在“常规选项”对话框的“过程”编辑框中输入需要执行的程序代码,或者是单击“编辑”按钮,再单击“常规选项”对话框的“确定”按钮,激活“编辑”窗口,在“编辑”窗口中输入需要执行的过程代码。

这个过程是对整个菜单系统都有效的全局代码。

如果菜单栏中有若干个菜单名称不曾添加子菜单或编写程序代码,而在运行菜单时又被选中了,那么就会执行在这里编写的过程代码。

这往往用于调试菜单系统。

本例中该过程代码如下:

=messagebox("对不起,该选项还未完工,暂时还不能使用!

",0,"系统提示")

return

②设置主菜单的显示位置。

设计的主菜单在运行时显示的位置可以在“常规选项”对话框中指定。

在图1.31所示的“常规选项”对话框的“位置”框中,设计者可通过单选框的选择来设置主菜单的显示位置。

现说明如下:

“替换”:

程序运行时将用设计的主菜单取代VFP6系统菜单。

“追加”:

程序运行时将把所设计的主菜单追加到VFP6系统菜单的后面。

“在…之前”:

程序运行时将把所设计的主菜单插入到指定的VFP6系统菜单标题的前面。

“在…之后”:

程序运行时将把所设计的主菜单插入到指定的VFP6系统菜单标题的后面。

上面后3种位置都将使得VFP6菜单成为应用程序菜单的一部分。

在本例中选择“替换”。

③“顶层表单”检查框的设置。

如果不选择“顶层表单”检查框,只允许设计的菜单在VFP6页框中使用;如果选择,则允许菜单在顶层表单中使用,从而成为一个SDI菜单。

本例中不选择“顶层表单”检查框。

⑵菜单选项操作。

在菜单设计器窗口打开的情况下,在“菜单级”选择框中选择“菜单栏”,再选择系统“显示”菜单中的“菜单选项”,会出现如图1.32所示的“菜单选项”对话框。

图1.32“菜单选项”对话框

在图1.32所示的“菜单选项”对话框的“过程”编辑框中可以输入任何程序代码。

本程序代码的用途是作为对话框中“名称”文本框所指定菜单级的各选项的公用执行代码,也就是当运行菜单时如果选择了不曾为之编写代码的该级菜单的菜单项,则执行本过程代码。

这些代码只是局部于本级菜单的过程,只在调用本级菜单时才起作用。

本例中为该过程指定的菜单级是菜单栏,则意味着当主菜单在运行时,只要用户选择了任一菜单名称下的任一不曾编写代码的菜单项,都会执行该代码,这为调试菜单程序提供了很大的方便。

该过程代码内容为:

=messagebox("对不起,工程还未完工,暂时还不能使用!

",0,"系统提示")

return

当然,如果在选择执行“菜单选项”之前,先在菜单设计器窗口中的“菜单级”选择框中选择其他子菜单,则在“菜单选项”对话框中的“名称”文本框中相应显示出所选择的菜单级的名称,在其“过程”编辑框中编辑的过程代码只对该级菜单有效。

当上述操作都完成后,执行存盘操作或关闭菜单设计器,系统都会出现对话框询问是否保存,如选择“是”,则会出现“另存为”对话框,保存到自建的文件夹中,文件名取名为mainmenu,单击“保存”按钮即可。

㈢生成菜单程序

用菜单设计器生成的菜单文件扩展名是.mnx,这种文件是不能直接执行的,设计者必须把它转换成扩展名为.mpr的菜单程序文件。

可用下面的两种方法生成菜单程序文件:

⑴首先在项目管理器中选择上述设计好的菜单名称mainmenu,然后单击项目管理器的“修改”按钮,进入菜单设计器,选取VFP6系统菜单“菜单”下的“生成”选项,弹出如图1.34所示的“生成菜单”对话框。

在“生成菜单”对话框中指定输出的菜单程序文件名为mainmenu.mpr(存放在自建的文件夹中),再单击“生成”按钮就行了。

⑵在项目管理器中选择上述设计好的的菜单名称mainmenu,然后单击项目管理器的“运行”按钮,也将自动生成一个.mpr文件。

在生成菜单程序文件过程中,如果发现错误,将会出现警告选择框,设计者可根据错误情况自由处理。

[说明]如果设计者想把程序编译成.exe文件,脱离VFP6环境成为独立运行的应用程序,而且菜单是主文件,则必须注意两个问题:

必须在菜单的“清理”过程代码中加入命令行readevents,而在退出菜单系统的菜单选项的过程或程序代码中必须包括命令行clearevents,否则菜单在屏幕上一晃即逝而不能应用。

二、数据库及表的设计

在营销管理信息系统中,系统管理和销售管理两个子系统的功能结构已经体现在设计好的主菜单中。

在本实验中要设计两个子系统使用的数据库和表,作为各菜单功能实现的设计基础。

㈠两个子系统使用的表单、数据库及表

1.系统管理子系统使用的表单、数据库和表

在系统管理子系统中,又包含了“数据备份”、“数据恢复”、“代码管理”、“密码管理”和“退出系统”子模块。

该子系统使用的表单、数据库及表的关系如表1.4所示。

表1.4系统管理子系统各子模块使用的表单、数据库和表

子模块名称

包含的子菜单

调用的表单

表单使用的表

表所归属的数据库

数据备份

databak.scx

数据恢复

datarstore.scx

代码管理

地区代码管理

dqdm.scx

diqudaima.dbf

daima

产品代码管理

cpdm.scx

chpdaima.dbf

daima

客户代码管理

kehugl.scx

kehu.dbf

xshgl

密码管理

mmgl.scx

pass.dbf

daima

退出系统

从表1.4可以看出,系统管理子系统共调用了6个表单,使用了4张表,其中diqudaima.dbf(地区代码)、chpdaima.dbf(产品代码)和pass.dbf(用户密码表)属于daima(代码)数据库,kehu.dbf(客户基本信息表)属于xshgl(销售管理)数据库。

2.销售管理子系统使用的表单、数据库和表

销售管理子系统的功能结构参见主菜单的各功能选项。

该子系统使用的表单、数据库及表的关系如表1.5所示。

表1.5销售管理子系统各子模块使用的表单、数据库和表

子模块名称

包含的子菜单

调用的表单

表单使用的表

表所归属的数据库

销售信息

销售信息编辑

xiaoshlr.scx

chpdaima.dbf

daima

jsfs.dbf

xiaoshou.dbf

xshgl

kehu.dbf

销售信息查询打印

xshcx.scx

xiaoshou.dbf

xshgl

jsfs.dbf

daima

xshcxjg.scx

xiaoshoucx.dbf

自由表

往来账款

往来账款编辑

zhangklr.scx

kxxz.dbf

daima

jzbb.dbf

kehu.dbf

xshgl

zhangk.dbf

zhkwl

往来账款查询打印

zhangkcx.scx

zhangk.dbf

zhkwl

kxxz.dbf

daima

zhangkcxjg.scx

zhankcx.dbf

自由表

收账政策

收账政策编辑

shouzhlr.scx

kehu.dbf

xshgl

shouzh.dbf

zhkwl

收账政策查询打印

shouzhcx.scx

shouzh.dbf

zhkwl

shouzhcxjg.scx

shouzhcx.dbf

自由表

销售统计

xshtj.scx

xiaoshou.dbf

xshgl

xshtjjg.scx

xiaoshoutj.dbf

自由表

从表1.5可以看出,销售管理子系统直接或间接共调用了11个表单,使用了12张表,其中chpdaima.dbf(产品代码)、jsfs.dbf(结算方式)、kxxz.dbf(款项性质)、jzbb.dbf(记账币别)属于daima(代码)数据库,kehu.dbf(客户基本信息表)和xiaoshou.dbf(销售基本信息表)属于xshgl(销售管理)数据库,Zhangk.dbf(往来账款信息)和shouzh.dbf(收账政策信息)表属于Zhkwl数据库,Xiaoshoucx.dbf(销售查询结果表)、Zhankcx.dbf(往来账款查询结果表)、Shouzhcx.dbf(收账政策查询结果表)和Xiaoshoutj.dbf(销售统计结果表)是自由表。

上述4个自由表是程序在运行期间自动创建的,并作为信息输出的依据,是不需要设计者创建的。

其余各表均需在设计表单及程序代码之前先行创建好,以备使用。

综合起来,系统管理和销售管理两个子系统设计中,需要创建3个数据库共10个表。

㈡两个子系统使用的表的结构

两个子系统使用的表的结构及字段说明分别见表1.6~1.15。

表1.6chpdaima(产品代码)表的字段说明

字段名称

数据类型

数据长度

产品代码

C

12

产品名称

C

40

产品规格

C

16

计量单位

C

6

表1.7diqudaima(地区代码)表的字段说明

字段名称

数据类型

数据长度

地区名称

C

30

地区代码

C

6

表1.8jsfs(结算方式)表的字段说明

字段名称

数据类型

数据长度

结算方式

C

8

表1.9jzbb(记账币别)表的字段说明

字段名称

数据类型

数据长度

记账币别

C

10

表1.10kxxz(款项性质)表的字段说明

字段名称

数据类型

数据长度

款项性质

C

10

表1.11pass(用户密码)表的字段说明

字段名称

数据类型

数据长度

字段含义

Yhm

C

20

用户名

Yhmm

C

20

用户密码

Yhlx

C

14

用户类型

表1.12kehu(客户基本信息)表的字段说明

字段名称

数据类型

数据长度

客户名称

C

40

客户代码

C

15

客户地址

C

60

地区代码

C

6

客户级别

C

4

行业类别

C

10

客户电话

C

20

联系人

C

8

客户传真

C

20

客户邮编

C

6

开户银行

C

20

备注

M

4

表1.13xiaoshou(销售基本信息)表的字段说明

字段名称

数据类型

数据长度

合同编号

C

11

产品代码

C

12

销售数量

N

12,2

销售单价

N

10,2

折扣率

N

6,4

销售金额

N

16,2

结算方式

C

6

未结算金额

N

16,2

结算期限

D

8

发货单号

C

16

发货日期

D

8

客户代码

C

15

备注

M

4

表1.14shouzh(收账政策信息)表的字段说明

字段名称

数据类型

数据长度

客户代码

C

15

客户名称

C

40

信用等级

C

6

信用标准

C

20

标准数量

N

12,2

折扣率

N

6,4

信用金额

N

12,2

备注

M

4

表1.15zhangk(往来账款信息)表的字段说明

字段名称

数据类型

数据长度

客户代码

C

15

客户名称

C

40

合同期限

D

8

款项性质

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1