7、管信实验上机指导书(市场营销VFP).doc_第1页
7、管信实验上机指导书(市场营销VFP).doc_第2页
7、管信实验上机指导书(市场营销VFP).doc_第3页
7、管信实验上机指导书(市场营销VFP).doc_第4页
7、管信实验上机指导书(市场营销VFP).doc_第5页
已阅读5页,还剩193页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

管理信息系统上机实验指导手册 第 198页实验一项目文件的建立、系统主程序设计、系统菜单设计和数据库与表的设计【实验目的和要求】通过本次实验,学习通过项目管理器来管理系统开发过程中所设计和创建的各种文件,了解系统主程序及封面设计的常用方法,学习系统菜单设计的基本过程和方法,通过数据库及表的设计学习系统开发中对数据库及表的规划和设计。【建议实验学时】24学时。【实验内容和步骤】在VFP6中,为用户提供了一个极其方便的管理和开发应用程序的工具,这就是项目管理器。用户可用一个项目管理一个应用程序从创建到生成的全部过程。虽然VFP6允许首先建立数据库、表或者其他的项目组件,但是首先建立项目,然后添加其他项目组件是更为规范的步骤。 为开发营销管理信息系统,应首先建立一个项目。此次实验中把该项目名称定为“mis” (实验中也可选用其他名称),使用VFP6的项目管理器创建该项目,然后再分别建立应用程序系统所需要的各种文件。一、建立项目 建立项目使用VFP6的项目管理器完成应用程序开发的第一步是创建应用程序项目,步骤如下:在Windows中通过“我的电脑”或“资源管理器”等,在C(或D、E等,这取决于用户计算机当前可用的硬盘分区)盘上创建如图1.1所示的目录结构,以分别存放程序开发过程中创建的文件。图1.1 管理信息系统的文件目录结构图 启动VFP6,Windows系统显示VFP6主窗口。 单击“文件”功能菜单项,VFP6显示“文件”下拉菜单。 单击“新建”选项,打开如图1.2所示的“新建”对话框。图1.2 “新建”对话框单击“项目”单选按钮,表示将要新建一个项目。单击“新建”按钮,VFP6显示如图1.3所示的“创建”对话框。在“项目文件”框中输入新建项目文件名mis(实验中也可选用其它名称),保存在已创建好的c:mis目录中。图1.3“创建”对话框说明 通过“新建”按钮创建的新项目,只能生成两个项目文件,即一个mis.pjt文件,一个mis.pjx文件,不能生成项目的完整框架,但系统目录及文件系统较简单清楚,只要在开发过程中用户能合理设计及创建文件,也完全能够实现应用程序的开发。通过“向导”创建的项目,能生成项目的完整框架,较有利于项目的管理,但系统自动创建的文件较多,目录结构相对复杂,不便于初学者对文件的管理。为简单起见,在本实验中以通过“新建”建立项目文件为例进行介绍。 7单击“保存”按钮,将出现新的对话框“项目管理器-mis”。如图1.4所示。图1.4 “项目管理器-mis”对话框至此,新的项目文件mis就已创建完成,用户就可以通过项目管理器窗口向该项目中添加或新建应用程序所需要的各种文件,用户也可随时浏览和查阅系统已创建的各种文件,这些文件将由该项目进行统一管理。在生成最终应用程序时,项目管理器会自动将各种所需文件进行集成,编译成可执行文件。 项目管理项目一旦建立,以后就可通过项目的管理,把开发应用程序所建立的所有文件进行系统地集中分类管理,方便程序开发和最终应用程序的生成。项目管理包括:分类、分层次显示、浏览和选择组件。使用“新建”选项启动新建一个任何组件类型的过程。使用“添加”选项从外部文件添加组件。使用“移去”选项移去所属的任意组件。使用“修改”选项修改任一个组件的过程。使用“浏览”或“运行”选项启动浏览数据或执行选定的表单、查询或程序。使用“连编”选项生成应用程序。二、主程序的创建及密码验证设计主程序就是在系统启动时,首先执行的程序。在VFP6中,可以将一个应用程序系统的主程序设置为菜单、表单、PRG程序等。本例中将以一个PRG程序为主程序为例进行介绍。创建主程序步骤如下:打开mis项目文件,在 “项目管理器-mis”窗口中,单击“代码”选项卡,选中“程序”项(也可单击“全部”选项卡,再在列表区中选中“代码”中的“程序”项),如图1.5所示。图1.5 选中代码选项卡中的“程序”项单击项目管理器窗口右边的“新建”按钮(如主程序已经创建,则应单击“添加”按钮),就可在新弹出的程序代码编辑窗口中输入程序的代码内容,如图1.6所示。图1.6 程序代码编辑窗口说明本例中主程序的代码内容如下:public depadepa=substr(alltrim(sys(5)+curdir(),1,len(alltrim(sys(5)+curdir()-1)set default to &depaset path to forms;progs;reports;menus;data;graphics;graphicspic;graphicsicoset exact onset confirm offset escape onset safety onset status offset scoreboard offset decimals to 3set talk offset sysformats onset century onset date to ansizoom window screen maxclose allrelease window 常用set sysmenu to_screen.caption=欢迎使用XXX公司市场营销管理信息系统_screen.icon=face05.ico_screen.picture=p02.jpg_screen.minbutton=.f._screen.maxbutton=.f._screen.controlbox=.f.do form fm.scxread even保存文件。程序代码编辑完成后,关闭编辑窗口,在弹出的询问是否要保存程序文件的窗口中单击“是”按钮,则又弹出“另存为”对话框,如图1.7所示,输入程序文件名,选择程序文件保存的位置:C:misPROGS,单击“保存”按钮,关闭“另存为”对话框,完成新建程序文件的工作。图1.7 “另存为”对话框设置主程序。在项目管理器窗口中,展开“代码”选项卡中“程序”项,就可看到刚建立的程序文件mainprg.prg,选中该文件, 执行VFP6系统“项目”菜单中的“设置主文件”菜单项,则会看到在项目管理器窗口中,mainprg.prg文件名变为粗黑体显示,这表示该文件已被设置成系统的主文件。说明在本例中,系统的设计思路是,主程序先设置系统运行的环境参数,再运行指定表单,进行用户身份确认。当用户身份验证通过后,再执行系统主菜单,进入系统。除了这种方法以外,还可用其他多种方法来设计系统入口。如先设计一个顶层表单,作为系统主程序,在表单的INIT事件中设置系统运行环境,再执行系统主菜单。装入系统菜单后,再进行用户身份验证。如用户身份验证不能通过,则结束系统运行。密码验证表单的设计在系统主程序mainprg.prg中,调用执行了一个表单fm.scx,这是一个对使用系统的用户进行身份验证的表单,其运行结果如图1.8所示。图1.8 表单fm.scx的运行结果表单的总体构成有“欢迎使用”、“营销管理信息系统”、“用户名称”、“用户密码”、“开发设计:* Ver 1.0 2003年08月”五个标签,两个命令按钮和分别用于输入用户名和密码的两个文本框。在表单运行时,“欢迎使用”标签从表单左边向右边连续移动并不停变换颜色,“开发设计:* Ver 1.0 2003年08月”标签则从表单右边向左边连续移动。标签的连续移动是通过在表单中加入计时器控件实现的。下面简单介绍fm.scx表单的设计,基本步骤如下:在项目管理器窗口中,选中“文档”选项卡中的“表单”项,单击窗口右边的“新建”按钮,VFP6系统打开“新建表单”对话框,如图1.9所示。选择“新建表单”按钮,系统打开“表单设计器”窗口,在窗口中显示一默认标题为“form 1”的空白表单,如图1.10所示。 图1.9 “新建表单”对话框 图1.10 “表单设计器”窗口 打开设计表单的相关工具窗口。要对空白表单进行设计,需要使用VFP6系统提供的一些工具,主要是“表单控件工具栏”、“布局工具栏”以及“属性”窗口。当打开表单设计器时,如VFP6系统窗口中没有这些工具,可通过分别执行VFP6系统“显示”菜单下的“表单控件工具栏”、“布局工具栏”、“属性”菜单项来打开相应窗口。这些设计工具窗口分别如图1.11所示。图1.11 设计表单的工具窗口设置表单属性值。更改表单标题。单击空白表单,在其“属性”窗口中将Caption属性的值改为“欢迎使用营销管理信息系统”,如图1.12所示。图1.12 设置表单标题设置表单图标。单击空白表单,在其“属性”窗口中将Icon属性的值设置为合适的图标。在单击“Icon”属性后,可单击图标文件名输入框旁边的按钮,打开“打开”对话框,确定合适的图标文件。如图1.13所示。 图1.13 设置表单图标设置表单填充图片。在表单的“属性”窗口中将Picture属性的值设置为合适的图片。在单击“Picture”属性后,可单击图片文件名输入框旁边的按钮,打开“打开”对话框,确定合适的图片文件。如图1.14所示。图1.14 设置表单填充图片表单其他重要属性设置。参照上述方法,分别设置表单的如下属性:AlwaysOntop=.T.AutoCenter=.T.BorderStyle=2-固定对话框Closable=.T.ControlBox=.T.Desktop=.T.Enabled=.T.Height=300MaxButton=.F.MinButton=.F.Movable=.T.Visible=.T.Width=500WindowStat=0-普通添加表单控件。添加标签控件。单击“表单控件工具栏”中的按钮,然后鼠标在表单中合适位置按下左键拖动到合适位置,松开鼠标,就在表单中出现处于被选中状态的标签。用此方法分别在表单中添加五个标签。系统默认用label1label5分别命名这五个标签。设置标签的属性。标签的常用属性有Caption、AutoSize、BackStyle、FontBold、FontName、FontSize、ForeColor、Top等。各标签的属性设置如表1.1所示。表1.1 各标签主要属性设置Label1Label2Label3Label4Label5Caption营销管理信息系统欢迎使用用户名称:用户密码:开发设计:*Ver 1.0 2003年08月AutoSize.T.T.T.T.T.BackStyle0-透明0-透明0-透明0-透明0-透明FontBold.T.T.T.T.T.FontName华文行楷隶书宋体宋体宋体FontSize3636141414ForeColor0,0,255196,10,00,0,00,0,0248,10,33Top646144178260 说明标签的字体(FontName)、字号(FontSize)、字体颜色(ForeColor)及字体是否加粗(FontBold)等属性,可完全根据个人喜好进行选择设置,标签的BackStyle属性,一般设成0-透明。添加文本框控件。单击“表单控件工具栏”中的按钮,然后鼠标在表单中合适位置按下左键拖动到合适位置,松开鼠标,就在表单中出现处于被选中状态的文本框。用此方法分别在表单中添加两个文本框。系统默认用Text1、Text2分别命名这两个文本框。设置文本框的属性。两个文本框分别用来输入用户名和用户密码,其属性设置如表1.2所示。表1.2 文本框的主要属性设置AlignmentEnabledFontNameFontSizeHeightLeftPasswordCharTopWidthText10-左.T.宋体1226224146145Text20-左.T.宋体1226224*176145说明Text2文本框是用来输入用户密码的,用户输入的密码字符一般不能直接显示在文本框中,所以将其输入的字符用星号“*”代替,当然也可选用其他符号。添加命令按钮。单击“表单控件工具栏”中的按钮,然后鼠标在表单中合适位置按下左键拖动到合适位置,松开鼠标,就在表单中出现处于被选中状态的命令按钮。用此方法分别在表单中添加两个命令按钮,系统默认用Command1、Command2分别命名这两个命令按钮。设置命令按钮的属性。表单中两命令按钮分别用来确认用户输入和取消用户输入的,其属性设置如表1.3所示。表1.3 命令按钮的主要属性设置AutoSizeCancelCaptionDefaultFontNameFontSizeHeightLeftTopWidthCommand1.F.F.确定.T.隶书183015121679Command2.F.T.取消.F.隶书183026921679说明在表单运行时,如果用户按下回车键,一般认为用户是进行确认操作,因此把Command1的Default属性设置为.T.。另外,命令按钮中字体的颜色(ForeColor)以及FontName、FontSize、Height、Left、Top、Width等属性的值设计者也都可根据需要和自己喜好进行自由选择设置。 为命令按钮编写程序代码。在表单运行时,当用户单击命令按钮时,系统执行相应的操作,这些操作就是通过系统执行相应的命令代码来完成的。因此,不仅要为命令按钮设置好属性,还要为命令按钮编写好相应的命令代码。常用方法是鼠标右击添加在表单中的命令按钮,在弹出的快捷菜单中选择“代码”菜单项,如图1.15所示。图1.15 快捷菜单接着就进入程序代码编辑窗口,如图1.16 所示。在编辑窗口中编辑代码时,应注意在“过程”下拉列表框中,选择对应的事件。本例中对对象Command1命令按钮,应选择“Click”事件。编辑完代码后,关闭编辑窗口即可。图1.16 代码编辑窗口在本例中,Command1即“确定”按钮的“Click”事件代码如下:public yhkl,yhname &定义全局变量,记录登录用户的名称和密码,以便系统分配用户权限yhkl=alltrim(thisform.text2.value) &保存用户输入的名称和密码yhname=alltrim(thisform.text1.value)use pass &打开保存已注册用户的用户名和密码的表文件*以下代码是检验用户名称和密码loca all for lower(alltrim(yhm)=lower(alltrim(yhname)if eof() *不是合法注册用户,给出警告 =messagebox(你不是合法注册用户!,0,真遗憾) return thisform.text1.setfocus else *用户名正确,再检验用户密码 lsyhlx=alltrim(yhlx) if lower(alltrim(yhmm)=lower(alltrim(yhkl) use thisform.release set dele on set notify off set cent on set date to ansi close all RELEASE WINDOW 常用 MODIFY WINDOW SCREEN TITLE 公司市场营销管理信息系统 ver; 1.0 软件编制者: 登录; 用户:+yhname+(+lsyhlx+)+ 今天是:+dtoc(date() _SCREEN.ICON=face05.ico _SCREEN.picture=pc1.jpg ZOOM WINDOW SCREEN MAX _SCREEN.controlbox=.f. do mainmenu.mpr &当用户名和密码都正确时,关闭当前表单,运行主菜单进行系统 else *不是合法注册用户,给出警告 =messagebox(密码不正确,请你再好好想想!,0,真遗憾) return thisform.text2.setfocus endif endifCommand2即“取消”按钮的“Click”事件代码如下:thisform.releaseclear evenquit说明对用户身份进行验证的方法有多种多样,本例中是先把用户名、用户密码及用户类型储存在表pass.dbf中,验证用户身份时,把用户输入的用户名和相应的密码与储存在表中的进行比较,以判断用户是否合法。当验证通过时,关闭当前表单,记录下用户名,作为在系统运行时,分配用户使用权限的依据,同时清理系统界面,设置系统主窗口属性,调用系统主菜单进入系统进行工作。添加计时器控件并设置其属性。单击“表单控件工具栏”中的按钮,然后在表单中任意位置单击左键(计时器控件放在表单中任意位置都可以),就在表单中出现处于被选中状态的计时器控件,如图1.17所示。系统默认用Timer1命名此控件。图1.17 在表单中添加计时器控件计时器控件用来在程序运行中在指定的时间间隔内执行某种操作是在后台运行。运行时不可见,定时地反复执行同一操作,与用户的当前操作相互独立。因此其最重要的属性就是指定其运行的时间间隔的Interval属性,其值以毫秒为单位,在本例中,设为100(可调整其大小),其主要作用是定期控制标签的位置移动及颜色变化。为计时器控件添加代码。方法与为命令按钮添加代码相同。在进入编辑窗口后,在“过程”下拉列表框中应选择“Timer”事件。如图1.18所示。编辑完代码后关闭编辑窗口即可。图1.18 计时器代码编辑窗口本例中计时器的“Timer”事件的过程代码为:if ca255 ca=ca+1 else ca=90endifif cb255 cb=cb+1 else cb=180endifif ccthisform.width thisform.label2.forecolor=rgb(ca,cb,cc) Thisform.Label2.left=-199 thisform.label2.left=Thisform.Label2.left+10 Else thisform.label2.forecolor=rgb(ca,cb,cc) Thisform.Label2.left=Thisform.Label2.left+10EndIfIf Thisform.Label5.Left=-394 Thisform.Label5.Left=thisform.width Thisform.Label5.Left = Thisform.Label5.Left -10 Else Thisform.Label5.Left = Thisform.Label5.Left -10EndIfthisform.refresh为表单添加代码。在表单运行时及关闭表单前,需要做一些环境准备及清理工作,这也是通过为表单添加一些程序代码来实现的。方法是在表单设计器窗口中,在表单中单击鼠标右键,在打开的快捷菜单中选择“代码”菜单项,进入代码编辑窗口,如图1.19所示。图1.19 表单代码编辑窗口在编辑窗口的“过程”下拉列表框中选择“Load”事件,为其添加如下代码:public ca,cb,cc &设置全局变量,记录RGB( )函数的自变量的值ca=0cb=0cc=0在“过程”下拉列表框中选择“Unload”事件,为其添加如下代码:release ca,cb,cc &释放全局变量说明至此,系统主程序及用户身份验证的设计就全部完成。需要说明的是,实验中设计的主程序和表单中,使用的表pass.dbf及菜单mainmenu还尚未创建。如要试运行主程序及fm.scx表单,须先创建此两个文件。另外,要试运行,须在Windows的“我的电脑”或“资源管理器”中,双击C:mis下的mis项目文件,自动进入VFP6打开项目管理器后,再在项目管理器中选择“代码”选项卡中“程序”项下的mainprg.prg主文件,再单击项目管理器窗口右边的“运行”按钮。三、菜单系统设计 几乎在所有的应用程序中,都要为用户提供一个菜单系统,菜单系统是用户界面的重要组成部分。菜单反映了程序的基本功能,而掩盖了程序内部复杂的代码细节,用户只需选择菜单项就能方便地完成非常繁杂的任务。这无疑极大地方便了用户,提高了工作效率。因此,系统菜单的设计是一项重要的工作。菜单系统是否完善、功能能否满足用户需要、操作是否简易、系统提示是否友好等就成为评价菜单设计的重要指标。 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”的表单来完成对应的功能)。 选中“代码管理”菜单项,单击“结果”栏右边的“创建”按钮,就进入“代码管理”的下级子菜单设计窗口,如图1.23所示。图1.23 菜单设计器窗口 在图1.23所示的窗口中,在“菜单名称”栏中分别输入“地区代码管理”、“产品代码管理”、“客户代码管理”,将其“结果”都设置为“过程”。单击“过程”右边的“创建”按钮(如过程已经创建,则是“编辑”按钮)就会弹出过程代码编辑窗口,如图1.24所示。图1.24 过程编辑窗口 用户可在窗口中输入菜单项对应的过程代码以完成与该菜单项相应的任务。代码编辑完成后,关闭窗口即可。虽然这里输入的程序代码是菜单文件中的一个过程,但不必书写procedure,因为系统会自动添加。u “地区代码管理”菜单项的过程代码为: use diqudaima &打开地区代码表packusedo form dqdm &执行表单文件 u “产品代码管理”菜单项的过程代码为: use chpdaima &打开产品代码表packusedo form cpdm &执行表单文件u “客户代码管理”菜单项的过程代码为:use kehu &打开客户信息表packusedo form kehugl &执行表单文件 在“代码管理”的子菜单设计完成后,在图1.23所示的窗口的“菜单级”选择框中选择“系统管理”项,则又返回图1.22所示的“系统管理”菜单的子菜单设计窗口。再按同样方法分别为“密码管理”和“退出系统”菜单项编写过程代码。u “密码管理”菜单项的过程代码为:set dele onuse passdele all for len(alltrim(yhm)=0packloca all for alltrim(yhm)=alltrim(yhname)if alltrim(yhlx)=系统管理员 use do form mmgl.scx else nAnswer=messagebox(很抱歉!您不是系统管理员无权查阅和更改用户名;和密码!,0,警告!) use returnendifu “退出系统”菜单项的过程代码为:ans=messagebox(确信要退出系统吗?,4,确认信息)if ans=6 close all clear event quit else returnendif 当“系统管理”菜单的子菜单设计完成后,在“菜单级”选择框中选择“菜单栏”项,则又返回如图1.21所示的菜单设计器窗口。在图1.21所示的菜单设计器窗口中,选中“销售管理”菜单名称,单击其“结果”栏右边的“创建”按钮,则进入如图1.25所示的其下级子菜单的设计窗口。图1.25 菜单设计器窗口 “销售管理”的子菜单设计如图1.25所示。再按前述方法分别设计各菜单项的下级子菜单,并为相应的菜单项添加命令代码或过程代码。 “销售信息”、“往来账款”、“收账政策”菜单项的子菜单设计分别如图1.26、1.27和1.28所示。图1.26 “销售信息”菜单项的子菜单设计图1.27 “往来账款”菜单项的子菜单设计图1.28 “收账政策”菜单项的子菜单设计u “销售统计”菜单项的命令代码为:do form xshtj &执行名为xshtj的表单u “销售信息编辑”子菜单项的过程代码为:use xiaoshoupackusedo form xiaoshlru “销售信息查询打印”子菜单项的命令代码为:do form xshcxu “往来账款编辑”子菜单项的过程代码为:use zhangkpackusedo form zhangklru “往来账款查询打印”子菜单项的命令代码为:do form zhangkcxu “收账政策编辑”子菜单项的过程代码为:use shouzhpackusedo form shouzhlru “收账政策查询打印”子菜单项的命令代码为:do form shouzhcx本例系统中其他菜单的设计,可参考上述方法进行。5为菜单选项定义快捷键在系统菜单中,往往可以看到有的菜单选项右侧有Ctrl+或Alt+的字样,例如“文件”菜单中的“新建Ctrl+N”等,这就是菜单的快捷键。不必层层激活菜单,只要按下快捷键,就能执行快捷键所对应的菜单选项命令。在此以图1.25所示的菜单设计器窗口中的“销售统计”菜单项为例加以说明。单击选中“销售统计”菜单项,单击其对应的“选项”栏下方的按钮,将出现如图1.29所示的“提示选项”对话框。图1.29 “提示选项”对话框 鼠标单击“键标签”文本框(这是必须的),再通过键盘输入组合键Alt+(字母、数字、符号),或组合键Ctrl+、Alt+F1F12、Ctrl+F1F12,或直接通过键盘敲击F1F12功能键,则在“键标签”框中自动记录并显示键盘输入的快捷键。如图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当然,如果在选择执行“菜单选项”之前,先在菜单设计器窗口中的“菜单级”选择框中选择其他子菜单,则在“菜单选项”对话框中的“名称”文本框中相应显示出所选择的菜单级的名称,在其“过程”编辑框中编辑的过程代码只对该级菜单有效。当上述操作都完成后,执行存盘操作或关闭菜单设计器,系统都会出现对话框询问是否保存,如选择“是”,则会出现“另存为”对话框,如图1.33所示。图1.33 “另存为”对话框 在该对话框中,选择保存路径为C:misMENUS,文件名取名为mainmenu,单击“保存”按钮即可。生成菜单程序用菜单设计器生成的菜单文件扩展名是.mnx,这种文件是不能直接执行的,设计者必须把它转换成扩展名为.mpr的菜单程序文件。可用下面的方法生成菜单程序文件:首先在项目管理器中选择上述设计好的的菜单名称mainmenu,然后单击项目管理器的“修改”按钮,进入菜单设计器,选取VFP6系统菜单“菜单”下的“生成”选项,弹出如图1.34所示的“生成菜单”对话框。在“生成菜单”对话框中指定输出的菜单程序文件名为mainmenu.mpr,存放路径为C:misMENUS,再单击“生成”按钮就行了。图1.34 “生成菜单”对话框在项目管理器中选择上述设计好的的菜单名称mainmenu,然后单击项目管理器的“运行”按钮,也将自动生成一个.mpr文件。在生成菜单程序文件过程中,如果发现错误,将会出现警告选择框,设计者可根据错误情况自由处理。说明如果设计者想把程序编译成.exe文件,脱离VFP6环境成为独立运行的应用程序,而且菜单是主文件,则必须注意两个问题:必须在菜单的“清理”过程代码中加入命令行read events,而在退出菜单系统的菜单选项的过程或程序代码中必须包括命令行clear events,否则菜单在屏幕上一晃即逝而不能应用。四、数据库及表的设计 在营销管理信息系统中,系统管理和销售管理两个子系统的功能结构已经体现在设计好的主菜单中。在本实验中要设计两个子系统使用的数据库和表,作为各菜单功能实现的设计基础。 两个子系统使用的表单、数据库及表 1系统管理子系统使用的表单、数据库和表 在系统管理子系统中,又包含了“数据备份”、“数据恢复”、“代码管理”、“密码管理”和“退出系统”子模块。该子系统使用的表单、数据库及表的关系如表1.4所示。表1.4 系统管理子系统各子模块使用的表单、数据库和表子模块名称包含的子菜单调用的表单表单使用的表表所归属的数据库数据备份无databak.scx无无数据恢复无datarstore.scx无无代码管理地区代码管理dqdm.scxdiqudaima.dbfdaima产品代码管理cpdm.scxchpdaima.dbfdaima客户代码管理kehugl.scxkehu.dbfxshgl密码管理无mmgl.scxpass.dbfdaima退出系统无无无无 从表1.4可以看出,系统管理子系统共调用了6个表单,使用了4张表,其中diqudaima.dbf(地区代码)、chpdaima.dbf(产品代码)和pass.dbf(用户密码表)属于daima(代码)数据库,kehu.dbf(客户基本信息表)属于xshgl(销售管理)数据库。 2销售管理子系统使用的表单、数据库和表 销售管理子系统的功能结构参见主菜单的各功能选项。该子系统使用的表单、数据库及表的关系如表1.5所示。表1.5 销售管理子系统各子模块使用的表单、数据库和表子模块名称包含的子菜单调用的表单表单使用的表表所归属的数据库销售信息销售信息编辑xiaoshlr.scxchpdaima.dbfdaimajsfs.dbfxiaoshou.dbfxshglkehu.dbf 销售信息查询打印xshcx.scxxiaoshou.dbfxshgljsfs.dbfdaimaxshcxjg.scxxiaoshoucx.dbf自由表往来账款往来账款编辑zhangklr.scxkxxz.dbfdaimajzbb.dbfkehu.dbfxshglzhangk.dbfzhkwl往来账款查询打印zhangkcx.scxzhangk.dbfzhkwlkxxz.dbfdaimazhangkcxjg.scxzhankcx.dbf自由表收账政策收账政策编辑shouzhlr.scxkehu.dbfxshgl shouzh.dbfzh

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论