版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、精选优质文档-倾情为你奉上订单管理信息系统一、系统概述 (一)系统开发及应用背景 随着社会经济的发展,社会的信息化程度越来越高,中小企业在信息化的过程中担任了很重要的角色,其信息化速度也较快。随着企业的发展,其对信息化的要求也越来越高,因此有必要使用一个完整的系统来管理企业的各种信息数据本次课程设计中我们小组通过开发一个完整的小型订单管理系统来帮助企业制定和开发一份企业管理信息系统,订单管理系统的总体任务是实现与订单相关的各种信息的系统化、规范化和自动化。(二)、系统设计思想 设计中创建“订单管理系统”的主要目的是实现对订单信息的管理,然而规划订单管理必然会涉及下订单的客户,以及订单中所涉及的
2、产品,因此在系统中需要添加客户信息滚利和产品信息管理的功能。一个信息管理系统必然由一定的用户来操作,要保证信息管理系统中信息正确,需要对能够操作信息的用户进行管理,因此在操作中添加了用户管理的功能。 信息管理系统中管理各种信息的目的是在于日后能够对系统中的信息进行浏览、查询和输出,因此在系统中添加了信息浏览的功能。 因此,一个简单而完整的订单管理系统至少应该包含本系统中设计的信息管理、信息浏览和用户管理3类功能。二、系统调查(一)系统目标及功能 在本次课程设计中,我们小组确定开发的订单管理信息所要完成的的功能有:1. 系统登录控制,必须使用特定的用户名和密码登录系统才能使用系统。 2. 产品信
3、息管理,管理订单所使用的产品信息,可以浏览、增加、修改和删除产品信息。3. 客户信息管理,管理下订单时客户的的信息,可以浏览、增加、修改和删除客户信息4. 订单信息管理,管理订单的信息,可以浏览、增加、修改和删除订单信息,在增加订单时需要使用的产品信息和客户信息必须首先通过产品信息管理和客户信息管理功能添加。5 . 客户信息浏览,浏览系统中所有的客户信息,可以使用制定的关键字来查询相应的客户,并且可以使用报表的形式将查询结果输出。6 产品信息浏览,浏览系统中所有的产品信息,可以使用制定的关键字查询相应的产品,并且可以使用报表的形式将查询结果输出。7. 用户权限管理,本系统中是吸纳了简单的用户权
4、限管理,普通用户仅能修改密码,而管理员则可以添加、修改、删除用户。(二)系统功能模块划分根据上述的系统功能分析,可以得出如图1-1所示的系统功能模块图订单管理系统信息管理模块用户管理模块信息浏览模块产品信息管理客户信息管理订单信息管理添加用户修改用户修改密码删除用户用户登录产品信息浏览客户浏览三、系统分析与设计(一)数据库设计 数据库在一个信息管理系统中占有非常重要的地位,数据库结构设计的好坏直接对应用系统的效率,以及实现的效果产生影响。合理的数据库结构设计可以提高数据存储的效率,保证数据的完整和一致。 设计数据库系统时应该充分了解用户各个方面的需要,包括现有的及将来可能增加的需求。数据库设计
5、一般包括如下几个步骤。l 数据库需求分析l 数据库概念结构设计l 数据库逻辑结构设计(二)数据库需求分析 用户的需求具体体现在各种信息的提供、保存、更新和查询,这要求数据库结构能充分满足各种信息的输出和输入。收集基本数据、数据结构,以及数据处理的流程,组成一份详尽的数据字典,为后面的设计打下基础。 通过上述系统功能分析,正对一般客户管理信息系统的需求,总结出如下的需求信息。l 订单信息涉及产品信息和客户信息。l 产品信息和客户信息中需要存在唯一字段。l 产品信息和客户信息可以按几种常用的信息查询。l 产品信息、客户信息、订单信息应该可以增加、修改、删除和打印输出。l 用户信息中的用户名必须是唯
6、一的。l 用户信息中必须包含权限信息。经过上述系统功能分析和需求总结,我们考虑到将来功能上的扩展,涉及如下面所示的数据项和数据结构。n 产品信息,包含编号、品名、单位、单价、类别、产地以及说明等。n 客户信息,包含编号、名称、联系人、电话、地址、邮编等。n 订单信息,包含订单编号、产品编号、产品数量、客户编号、联系人、联系电话、送货地址、下单日期以及说明等。n 用户信息,包含账号、密码、姓名、部门以及管理等。(三)数据库概念结构设计得到上面的数据项和数据结构以后,就可以设计出能够满足用户需求的各种实体,以及它们之间的关系,为后面的逻辑结构设计打下基础,这些实体包含各种具体信息,通过相互之间的作
7、用形成数据的流动。本次课程设计中,根据上面的设计规划处的实体有:订单信息实体、客户信息实体、产品信息实体,以及用户信息实体,各实体具体的描述E-R图如下。“订单信息”、“客户信息”和“产品信息”实体之间的E-R图如图1-2客户信息订购产品信息订单信息“订单信息”实体的E-R图如图1-3所示订单信息订单编号订单总额下单日期客户编号产品编号 “产品信息”实体的E-R图如图1-4所示产品信息编号品名单位单价“客户信息”实体的E-R图如图1-5所示客户信息编号名称联系人地址“用户信息”实体的E-R图如图1.6所示用户信息账号密码姓名部门权限(四)数据库逻辑结构设计数据库的概念结构设计完毕后,就可以将上
8、面的数据库概念结构转化为实际数据模型,也就是数据库的逻辑结构。使用Visual FoxPro 开发直接使用其自带的数据库,订单管理系统中使用的各个数据表的字段设置如下。用户信息表(UserInfo)的字段设置如表1-1所示。产品信息表(ProductInfo)的字段设置如表1-2所示客户信息表(ClientInfo)的字段设置如表1-3所示订单信息表(OrderInfo)的字段设置如表1-4所示(五)创建订单管理信息系统项目在Visual FoxPro项目主窗口中选择【文件】中新建命令,选择新建项目OFA。项目创建后即可打开项目管理器,如表单1-1所示。四、程序设计(一)创建可视化类信息管理模
9、块中所使用的表单中都使用到了移动记录工具栏和命令按钮工具栏,若分别添加,其属性和代码将是一件很繁琐的事,因此在本次课程设计中将首先创建可视类,然后在表单中添加创建的可视化类,就减少了工作量,又保证了组员间风格的一致。在本次试验中共需创建“移动记录工具栏”类和“命令按钮工具栏”这两个类。 1、创建“移动记录工具栏”类 (1)创建可视类打开项目管理器,切换到“类”选项卡,单击该选项卡的新建,在“新建类”对话框的“类名”文本框中输入可视化类的名称“MOVERECORD”,在“派生于”下拉列表框中选择要新建的基类“COMMANDGROUP”,单击“存储于”文本框右侧的按钮,打开“另存为”对话框,选择存
10、储位置,以及可视类库的名称,并将可视类库命名为“ADMINBUTTON”设置完毕后,单击“确定”就完成了可视类的创建,打开了类设计器。在可视化类中设置类的“BUTTONCOUNT属性值为4,并修改类及类中按钮的属性如表1-5所示。 “移动记录工具栏”类的属性设置控件名称属性属性取值moverecordbutton4height40width320按钮Frontbold.T.Forecolor0,0,255Height30width65cmdtopCaption首记录tooltiptext到第一条记录cmdpreCaption上一个tooltiptext到上一条记录CmdnxtCaption下一
11、个tooltiptext到下一条记录cmdbtmCaption末记录tooltiptext到最后一条记录可视化类“移动记录工具栏”及其中的控件后,可视类的效果如下图1-7 (2)添加代码在本次实例中当鼠标移动到按钮上方时鼠标指针变为自定义形状,这需要在按钮的“MOUSEMOVE”事件中添加代码来指定鼠标的指针形状,代码如程1.1所示LPARAMETERS nButton, nShift, nXCoord, nYCoordThis.MousePointer = 99&鼠标指针为自定义形状This.MouseIcon = SYS(5)+h_point.cur&指定鼠标的指针“首记录”按钮的clic
12、k 代码GO TOP&到首记录THISFORM.REFRESH&刷新表单“移动记录工具栏”类中的“上一个”按钮的click 代码如程1.2所示*如果到了数据表首部IF BOF() .OR. RECNO() = 1 MessageBox(已到首记录,48,移动记录)ELSE*如果数据指针不位于数据表首部 SKIP-1ENDIF*刷新表单THISFORM.REFRESH“移动记录工具栏”类中的“下一个”按钮的click 代码如程1.3所示*如果记录指针位于数据表末尾IF EOF() or RecNO() = RecCount() MessageBox(已到末记录,48,移动记录)*如果记录指针不位
13、于数据表末尾ELSE &记录指针下移 SKIPENDIF*刷新表单THISFORM.REFRESH()“末记录”按钮的click 代码如程1.4所示GO BUTTOM &到数据末尾THISFORM.REFRESH &刷新表单“移动记录工具栏”类中的4个按钮设定是,根据表单中数据记录指针的位置不同,禁用或者启用不同的按钮,所以需将判断及操作代码添加到“移动记录工具栏”类的“refresh”事件中,具体代码如程1.5所示*如果数据表为空或者只有一条记录IF BOF() .AND. EOF() .OR. RECCOUNT()=1 THIS.Cmdtop.ENABLED=.F. THIS.Cmdpre
14、.ENABLED=.F. THIS.Cmdnxt.ENABLED=.F. THIS.Cmdbtm.ENABLED=.F.ENDIF*如果在记录指针在数据表的末尾IF RECNO()=RECCOUNT() .OR. EOF() THIS.Cmdtop.ENABLED=.T. THIS.Cmdpre.ENABLED=.T. THIS.Cmdnxt.ENABLED=.F. THIS.Cmdbtm.ENABLED=.F.ELSE*如果记录指针在数据表的首部 IF RECNO()=1 .OR. BOF() THIS.Cmdtop.ENABLED=.F. THIS.Cmdpre.ENABLED=.F. T
15、HIS.Cmdnxt.ENABLED=.T. THIS.Cmdbtm.ENABLED=.T. ELSE*如果记录指针不在数据表的首部也不在尾部 THIS.Cmdtop.ENABLED=.T. THIS.Cmdpre.ENABLED=.T. THIS.Cmdnxt.ENABLED=.T. THIS.Cmdbtm.ENABLED=.T. ENDIFENDIF这样,“移动记录工具栏”类就创建完毕!2、创建“命令按钮工具栏”类由于前面已详细介绍了“移动记录工具栏”类的创建,这里就不再一一介绍了,按照之前我们设想设置好类及按钮的属性后,“命令按钮工具栏”类的效果如图1-8与“移动记录工具栏”类相同,当鼠
16、标移动到按钮上方时,鼠标指针要使用自定义鼠标指针,所以也要添加该类中的按钮的“mousemove”事件代码如上。由于“命令按钮工具栏”类在各个表单中的效果相同,即可首先弹出一个确认话框,如果确认则退出当前表单,所以退出按钮的“click”事件代码如程1.6所示LOCAL YN&声明本地变量*确认对话框YN=MESSAGEBOX(确定退出,4+32,订单管理系统)IF YN=6&如果确认THIS.PARENT.PARENT.RELEASEENDIF 至此,“命令按钮工具栏”类创建完成。(二)创建系统主表单本次课程设计中,使用.PRG程序作为主程序,由该程序设置运行的环境,并调用系统登录表单,系统
17、通过后显示系统LOGO表单,然后再试系统主表单,再由系统主表单调用其他表单完成系统提供的各个功能。1、创建系统主程序主程序是所编写的程序的入口,其作用是设置程序的运行环境,定义变量、常量,然后调用其他的表单,其代码如程1.7所示*系统环境设置CLEARCLEAR ALLSET ESCAPE OFF& 禁止运行的程序在按ESC键被中断SET TALK OFF& 关闭命令显示SET SAFETY OFF & 覆盖时不要确认SET STAT BAR OFF & 将状态栏关闭SET SYSMENU OFF & 可关掉VFP系统菜单区域SET SYSMENU TO & 关闭系统菜单SET CENTURY
18、 ON & 显示四位年代SET DATE ANSI& 指定日期表达式的显示格式为yy.mm.dd*避免多次运行程序*声明API函数“FindWindow”DECLARE Integer FindWindow IN USER32.DLL String lpClassName,String lpWindowNamelpWindowName=订单管理系统IF .NOT. FindWindow(0,lpWindowName)=0 &寻找窗口标题 =MESSAGEBOX(程序已经运行了,48,订单管理系统) QUIT ENDIF_Screen.Caption=lpWindowName*声明全局变量PUB
19、LIC cUser,IsAdmin& 声明全局变量,用来保存系统中的登录用户*调用登录表单DO FORM Logon& 显示登录表单*进入事物处理READ EVENTS2、创建系统主菜单打开项目管理器,切换到“其他”选项卡,在选项卡的类表框中选择“菜单”选项,新建菜单如下:由于菜单不是单独运行,而是内置在系统主表单中运行,所以还需要设置菜单的常规选项。打开菜单设计器,选择显示中常规选项命令,打开“常规选项”对话框,在此对话框中选中“顶层表单”复选框,这样菜单就可以与顶层表单一起运行了。菜单设计完成后,还需要生成可执行的菜单文件(.mpr文件),在菜单设计器中选择菜单生成命令,打开“生成菜单”对
20、话框,在此对话框中的“输出文件”文本框中输入生成的可执行的菜单文件位置,单击确定按钮即可。3、 创建用户管理模块“订单管理系统”中设计的用户管理模块包括系统登录、密码修改、添加用户、修改用户和删除用户5项功能,其中修改和删除用户功能在集成在一个表单中,下面分别介绍:(1) 创建“系统登录”表单 设置表单一些基本属性之后,创建好的表单效果如下把用户信息表(userinfo)添加到数据环境中,之后便添加代码。“确定”按钮的“click”事件代码如程1.8所示*改为精确比较SET EXACT ON * 试图登录次数自动加1 THISFORM.i=THISFORM.i+1 IF EMPTY(ALLTR
21、IM(账号)MESSAGEBOX(请输入账号名称,48,订单管理系统)THISFORM.txt账号.SetFocusELSE SELECT UserInfo LOCATE FOR ALLTRIM(账号)=ALLTRIM(THISFORM.txt账号.VALUE) &查找用户*用户名和密码正确IF FOUND() .AND. ALLTRIM(密码)=ALLTRIM(THISFORM.txt密码.VALUE) CUser=账号&将登录用户的姓名存储到全局变量中 IsAdmin=管理 THISFORM.RELEASE() DO FORM LOGO &执行Logo表单ELSE*用户名和密码错误IF T
22、HISFORM.i3 &如果次数小于3MESSAGEBOX(账号或密码错误,请重新输入,48,订单管理系统)THISFORM.txt账号.VALUE=THISFORM.txt密码.VALUE=THISFORM.txt账号.SETFOCUSELSE &如果已登录3次MESSAGEBOX(密码错误三次,系统无法启动,48,订单管理系统) THISFORM.RELEASE &退出表单 CLEAR EVENTS &结束事件循环 QUIT&退出Visual FoxPro ENDIFENDIFENDIF*改为模糊比较SET EXACT OFF“取消”按钮的“click”事件代码如程1.9所示*声明本地变量
23、LOCAL YN*确认对话框YN=MESSAGEBOX(确定退出,4+32,订单管理系统)*如果确认IF YN=6 THISFORM.RELEASE&退出当前表单 CLEAR EVENTS&结束事务处理 QUIT&退出Visual FoxProENDIF(2) 创建“修改密码”表单将“用户信息表”添加到表单数据环境中,其代码添加介于篇幅就不详细介绍了。同上“修改用户表单与删除用户表单”也不一一介绍了。(3) 创建“修改密码”表单将“用户信息表”添加到表单数据环境中,其代码添加介于篇幅就不详细了。4、 创建信息浏览表单(1)创建“产品信息浏览”表单命名为“proselect”将“产品信息”表添加
24、到表单的数据环境中,IF .NOT. EMPTY(ALLTRIM(THISFORM.txt产品编号.Value)SelTJ=SelTJ + AND + ALLTRIM(THISFORM.txt产品编号.Value) + $ 编号ENDIFIF .NOT. EMPTY(ALLTRIM(THISFORM.txt产品名称.VALUE)SelTJ=SelTJ + AND + ALLTRIM(THISFORM.txt产品名称.Value)+ $ 品名ENDIFSELECT ProductInfoSET FILTER TOSET FILTER TO &SelTJ添加“产品信息浏览”表单的“init”事件代
25、码如程2.1所示PARAMETERS cFormModeTHISFORM.FormMode=cFormModePUBLIC SelTJSelTJ=.T.SELECT ProductInfoSET FILTER TOIF THISFORM.FormMode=cBrowseTHISFORM.Grid1.Column1.Header1.Caption=编号THISFORM.CmdPrint.Visible=.T.THISFORM.CAPTION=产品信息浏览ELSEIF THISFORM.FormMode=cSelectTHISFORM.Grid1.Column1.Header1.Caption=编
26、号(双击选择)THISFORM.CmdPrint.Visible=.F.THISFORM.CmdExit.Left=THISFORM.CmdExit.Left-35THISFORM.CAPTION=产品信息选择ENDIFENDIFTHISFORM.Refresh当“产品信息浏览”表单作为“产品信息选择”表单时在表单推出是要向调用的该表单的表单返回值,即添加一个“return”语句,添加“产品信息浏览”表单的“unload”事件代码如程2.2所示IF THISFORM.FormMode=cSelectReturn THISFORM.SelectedProENDIF当“产品信息浏览”表单作为“产品
27、信息选择”表单时,在表格控件的第一列中双击时即可选择该条记录,并将该记录的“编号”字段值返回给调用表单,添加“产品信息浏览”表单的表格控件的第一列文本框的“dblclick”事件,代码如程2.3所示If thisform.formmode=”cselect” thisform.selectedpro=alltrim(this.value) thisform.releaseendif 查看按钮的“click”代码如程2.4所示SelTJ=.T.THISFORM.Refresh“打印”按钮的“click”代码如程2.5所示REPORT FORM ProductInfo Preview FOR &S
28、elTJ“退出”按钮的“click”代码如程2.6所示YN=MESSAGEBOX(确定退出,4+32,订单管理系统)IF YN=6IF THISFORM.FormMode=cSelectTHISFORM.SelectedPro=ENDIFTHISFORM.ReleaseENDIF 至此,“产品信息管理”表单创建完毕。(2)创建“产品信息浏览”表单由于它与上“产品信息管理”相似,这里就不再介绍了。5、 创建信息管理模块(1)创建产品信息管理表单将“产品信息”表添加到表单数据环境中,把之前创立的两个类控件添加到表单中,由于在这里还使用了一个自定义方法“modecontrol”,其代码如程2.7Lo
29、cal BeModify,BeBrowseBeModify=THISFORM.bModifyBeBrowse=THISFORM.bBrowseTHISFORM.txt编号.ReadOnly=.NOT. BeModifyTHISFORM.txt品名.ReadOnly=.NOT. BeModifyTHISFORM.txt单位.ReadOnly=.NOT. BeModifyTHISFORM.txt单价.ReadOnly=.NOT. BeModifyTHISFORM.txt类别.ReadOnly=.NOT. BeModifyTHISFORM.txt产地.ReadOnly=.NOT. BeModifyT
30、HISFORM.txt说明.ReadOnly=.NOT. BeModifyTHISFORM.ProMoveRec.Enabled=.NOT. BeModifyTHISFORM.ProAdminButton.CmdAdd.Enabled=.NOT. BeModifyTHISFORM.ProAdminButton.CmdMod.Enabled=.NOT. BeModifyTHISFORM.ProAdminButton.CmdDel.Enabled=.NOT. BeModifyTHISFORM.ProAdminButton.CmdPri.Enabled=.NOT. BeModifyTHISFORM.
31、ProAdminButton.CmdExit.Enabled=.NOT. BeModifyTHISFORM.ProAdminButton.CmdSave.Enabled=BeBrowseTHISFORM.ProAdminButton.Cmdccl.Enabled=BeBrowse“产品信息管理”表单的“init”事件代码2.8*选择“产品信息”表所在的工作区SELECT ProductInfo*清除工作区中可能存在的过滤条件SET FILTER TO*如果“产品信息”表为空IF EOF() AND BOF() OR RECCOUNT()=0*表单进入“数据表为空”状态THISFORM.bModify=.T.THISFORM.bBrowse=.F.THISFORM.ModeControlTHISFORM.ProAdminButton.CmdAdd.Enabled=.T.THISFORM.ProAdminbutton.CmdExit.Enabled=.T.ELSE*表单进入浏览状态THISFORM.bModify=.F.THISFORM.bBrows
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《黄疸病例讨论》课件
- 《数字电路EDA设计》课件第三章 数字电路EDA工具
- 《基于ARM9的嵌入式Linux系统开发原理与实践》课件第7章
- 《公共工程履约》课件
- 2024年燃料油电商平台分销合作协议汇编3篇
- 《计算机数据恢复技术》课件第1章
- 2024年清洁能源项目合作开发协议
- 2025专利实施许可合同模板
- 2025监理工程师《合同管理》知识点解决合同争议方法
- 2024年新能源汽车电池回收利用合作协议3篇
- 在线网课知道知慧《舞台管理(上戏)》单元测试答案
- 零基础AI日语-初阶篇智慧树知到期末考试答案章节答案2024年重庆对外经贸学院
- 2024医师定期考核临床医学试题
- 2024年辅警招聘考试试题库附答案(巩固)
- 小学劳动知识试题及答案
- 焊工职业技能鉴定考试题库及答案
- 热水袋烫伤RCA分析2022
- 2024年大学试题(宗教学)-道教文化笔试参考题库含答案
- 网络与信息安全管理员-互联网信息审核员理论考试题库(新版)
- 临床医学检验:体液肿瘤标志物考试题库(三)
- 养殖水环境化学全套教学课件
评论
0/150
提交评论