ImageVerifierCode 换一换
格式:DOCX , 页数:28 ,大小:380.98KB ,
资源ID:9584442      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/9584442.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(技术资料综合管理系统应用开发项目.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

技术资料综合管理系统应用开发项目.docx

1、技术资料综合管理系统应用开发项目金航数码科技有限责任公司技术资料综合管理系统技术方案书一、系统概述 (一)系统开发及应用背景 随着社会经济的发展,社会的信息化程度越来越高,企业在信息化的过程中担任了很重要的角色,其信息化速度也较快。随着企业的发展,其对信息化的要求也越来越高,因此有必要使用一个完整的系统来管理企业的各种信息数据通过开发一个完整的技术资料管理系统来帮助企业制定和开发一份企业管理信息系统,技术资料管理系统的总体任务是实现与技术资料相关的各种信息的系统化、规范化和自动化。(二)、系统设计思想 设计“技术资料管理系统”的主要目的是实现对技术资料信息的管理,然而规划技术资料管理必然会涉及

2、下技术资料的客户,以及技术资料中所涉及的产品,因此在系统中需要添加客户信息滚利和产品信息管理的功能。 一个信息管理系统必然由一定的用户来操作,要保证信息管理系统中信息正确,需要对能够操作信息的用户进行管理,因此在操作中添加了用户管理的功能。 信息管理系统中管理各种信息的目的是在于日后能够对系统中的信息进行浏览、查询和输出,因此在系统中添加了信息浏览的功能。 因此,一个简单而完整的技术资料管理系统至少应该包含本系统中设计的信息管理、信息浏览和用户管理3类功能。二、系统调查(一)系统目标及功能 1. 系统登录控制,必须使用特定的用户名和密码登录系统才能使用系统。 2. 产品信息管理,管理技术资料所

3、使用的产品信息,可以浏览、增加、修改和删除产品信息。3. 客户信息管理,管理下技术资料时客户的的信息,可以浏览、增加、修改和删除客户信息。4. 技术资料信息管理,管理技术资料的信息,可以浏览、增加、修改和删除技术资料信息,在增加技术资料时需要使用的产品信息和客户信息必须首先通过产品信息管理和客户信息管理功能添加。5 . 客户信息浏览,浏览系统中所有的客户信息,可以使用制定的关键字来查询相应的客户,并且可以使用报表的形式将查询结果输出。6 产品信息浏览,浏览系统中所有的产品信息,可以使用制定的关键字查询相应的产品,并且可以使用报表的形式将查询结果输出。7. 用户权限管理,本系统中是吸纳了简单的用

4、户权限管理,普通用户仅能修改密码,而管理员则可以添加、修改、删除用户。(二)系统功能模块划分根据上述的系统功能分析,可以得出如图1-1所示的系统功能模块图三、系统分析与设计(一)数据库设计 数据库在一个信息管理系统中占有非常重要的地位,数据库结构设计的好坏直接对应用系统的效率,以及实现的效果产生影响。合理的数据库结构设计可以提高数据存储的效率,保证数据的完整和一致。 设计数据库系统时应该充分了解用户各个方面的需要,包括现有的及将来可能增加的需求。数据库设计一般包括如下几个步骤。 数据库需求分析 数据库概念结构设计 数据库逻辑结构设计(二)数据库需求分析 用户的需求具体体现在各种信息的提供、保存

5、、更新和查询,这要求数据库结构能充分满足各种信息的输出和输入。收集基本数据、数据结构,以及数据处理的流程,组成一份详尽的数据字典,为后面的设计打下基础。 通过上述系统功能分析,正对一般客户管理信息系统的需求,总结出如下的需求信息。 技术资料信息涉及产品信息和客户信息。 产品信息和客户信息中需要存在唯一字段。 产品信息和客户信息可以按几种常用的信息查询。 产品信息、客户信息、技术资料信息应该可以增加、修改、删除和打印输出。 用户信息中的用户名必须是唯一的。 用户信息中必须包含权限信息。经过上述系统功能分析和需求总结,我们考虑到将来功能上的扩展,涉及如下面所示的数据项和数据结构。 产品信息,包含编

6、号、品名、单位、单价、类别、产地以及说明等。 客户信息,包含编号、名称、联系人、电话、地址、邮编等。 技术资料信息,包含技术资料编号、产品编号、产品数量、客户编号、联系人、联系电话、送货地址、下单日期以及说明等。 用户信息,包含账号、密码、姓名、部门以及管理等。(三)数据库概念结构设计得到上面的数据项和数据结构以后,就可以设计出能够满足用户需求的各种实体,以及它们之间的关系,为后面的逻辑结构设计打下基础,这些实体包含各种具体信息,通过相互之间的作用形成数据的流动。本项目中,根据上面的设计规划处的实体有:技术资料信息实体、客户信息实体、产品信息实体,以及用户信息实体,各实体具体的描述E-R图如下

7、。“技术资料信息”、“客户信息”和“产品信息”实体之间的E-R图如图1-2“技术资料信息”实体的E-R图如图1-3所示 “产品信息”实体的E-R图如图1-4所示“客户信息”实体的E-R图如图1-5所示“用户信息”实体的E-R图如图1.6所示(四)数据库逻辑结构设计数据库的概念结构设计完毕后,就可以将上面的数据库概念结构转化为实际数据模型,也就是数据库的逻辑结构。使用Visual FoxPro 开发直接使用其自带的数据库,技术资料管理系统中使用的各个数据表的字段设置如下。用户信息表(UserInfo)的字段设置如表1-1所示。产品信息表(ProductInfo)的字段设置如表1-2所示客户信息表

8、(ClientInfo)的字段设置如表1-3所示技术资料信息表(OrderInfo)的字段设置如表1-4所示(五)创建技术资料管理信息系统项目在Visual FoxPro项目主窗口中选择【文件】中新建命令,选择新建项目OFA。项目创建后即可打开项目管理器,如表单1-1所示。四、程序设计(一)创建可视化类信息管理模块中所使用的表单中都使用到了移动记录工具栏和命令按钮工具栏,若分别添加,其属性和代码将是一件很繁琐的事,因此在本项目中将首先创建可视类,然后在表单中添加创建的可视化类,就减少了工作量,又保证了组员间风格的一致。在本次试验中共需创建“移动记录工具栏”类和“命令按钮工具栏”这两个类。 1、

9、创建“移动记录工具栏”类 (1)创建可视类打开项目管理器,切换到“类”选项卡,单击该选项卡的新建,在“新建类”对话框的“类名”文本框中输入可视化类的名称“MOVERECORD”,在“派生于”下拉列表框中选择要新建的基类“COMMANDGROUP”,单击“存储于”文本框右侧的按钮,打开“另存为”对话框,选择存储位置,以及可视类库的名称,并将可视类库命名为“ADMINBUTTON”设置完毕后,单击“确定”就完成了可视类的创建,打开了类设计器。在可视化类中设置类的“BUTTONCOUNT属性值为4,并修改类及类中按钮的属性如表1-5所示。 “移动记录工具栏”类的属性设置控件名称属性属性取值mover

10、ecordButton4Height40Width320按钮Frontbold.T.Forecolor0,0,255Height30Width65cmdtopCaption首记录tooltiptext到第一条记录cmdpreCaption上一个tooltiptext到上一条记录CmdnxtCaption下一个tooltiptext到下一条记录cmdbtmCaption末记录tooltiptext到最后一条记录可视化类“移动记录工具栏”及其中的控件后,可视类的效果如下图1-7 (2)添加代码在本次实例中当鼠标移动到按钮上方时鼠标指针变为自定义形状,这需要在按钮的“MOUSEMOVE”事件中添加代

11、码来指定鼠标的指针形状,代码如程1.1所示LPARAMETERS nButton, nShift, nXCoord, nYCoordThis.MousePointer = 99 &鼠标指针为自定义形状This.MouseIcon = SYS(5)+h_point.cur &指定鼠标的指针“首记录”按钮的click 代码GO TOP &到首记录THISFORM.REFRESH &刷新表单“移动记录工具栏”类中的“上一个”按钮的click 代码如程1.2所示*如果到了数据表首部IF BOF() .OR. RECNO() = 1 MessageBox(已到首记录,48,移动记录)ELSE*如果数据指

12、针不位于数据表首部 SKIP-1ENDIF*刷新表单THISFORM.REFRESH“移动记录工具栏”类中的“下一个”按钮的click 代码如程1.3所示*如果记录指针位于数据表末尾IF EOF() or RecNO() = RecCount() MessageBox(已到末记录,48,移动记录)*如果记录指针不位于数据表末尾ELSE &记录指针下移 SKIPENDIF*刷新表单THISFORM.REFRESH()“末记录”按钮的click 代码如程1.4所示GO BUTTOM &到数据末尾THISFORM.REFRESH &刷新表单“移动记录工具栏”类中的4个按钮设定是,根据表单中数据记录指

13、针的位置不同,禁用或者启用不同的按钮,所以需将判断及操作代码添加到“移动记录工具栏”类的“refresh”事件中,具体代码如程1.5所示*如果数据表为空或者只有一条记录IF BOF() .AND. EOF() .OR. RECCOUNT()=1 THIS.Cmdtop.ENABLED=.F. THIS.Cmdpre.ENABLED=.F. THIS.Cmdnxt.ENABLED=.F. THIS.Cmdbtm.ENABLED=.F.ENDIF*如果在记录指针在数据表的末尾IF RECNO()=RECCOUNT() .OR. EOF() THIS.Cmdtop.ENABLED=.T. THIS.

14、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. THIS.Cmdnxt.ENABLED=.T. THIS.Cmdbtm.ENABLED=.T. ELSE*如果记录指针不在数据表的首部也不在尾部 THIS.Cmdtop.ENABLED=.T. THIS.Cmdpre.ENABLED=.T. THIS.Cmdnxt.ENABLED=.T

15、. THIS.Cmdbtm.ENABLED=.T. ENDIFENDIF这样,“移动记录工具栏”类就创建完毕!2、创建“命令按钮工具栏”类由于前面已详细介绍了“移动记录工具栏”类的创建,这里就不再一一介绍了,按照之前我们设想设置好类及按钮的属性后,“命令按钮工具栏”类的效果如图1-8与“移动记录工具栏”类相同,当鼠标移动到按钮上方时,鼠标指针要使用自定义鼠标指针,所以也要添加该类中的按钮的“mousemove”事件代码如上。由于“命令按钮工具栏”类在各个表单中的效果相同,即可首先弹出一个确认话框,如果确认则退出当前表单,所以退出按钮的“click”事件代码如程1.6所示LOCAL YN &声明

16、本地变量*确认对话框YN=MESSAGEBOX(确定退出,4+32,技术资料管理系统)IF YN=6 &如果确认 THIS.PARENT.PARENT.RELEASEENDIF 至此,“命令按钮工具栏”类创建完成。(二)创建系统主表单本项目中,使用.PRG程序作为主程序,由该程序设置运行的环境,并调用系统登录表单,系统通过后显示系统LOGO表单,然后再试系统主表单,再由系统主表单调用其他表单完成系统提供的各个功能。1、创建系统主程序主程序是所编写的程序的入口,其作用是设置程序的运行环境,定义变量、常量,然后调用其他的表单,其代码如程1.7所示*系统环境设置CLEARCLEAR ALLSET E

17、SCAPE OFF & 禁止运行的程序在按ESC键被中断SET TALK OFF & 关闭命令显示SET SAFETY OFF & 覆盖时不要确认SET STAT BAR OFF & 将状态栏关闭SET SYSMENU OFF & 可关掉VFP系统菜单区域SET SYSMENU TO & 关闭系统菜单SET CENTURY ON & 显示四位年代SET DATE ANSI & 指定日期表达式的显示格式为yy.mm.dd*避免多次运行程序*声明API函数“FindWindow”DECLARE Integer FindWindow IN USER32.DLL String lpClassName,

18、String lpWindowNamelpWindowName=技术资料管理系统IF .NOT. FindWindow(0,lpWindowName)=0 &寻找窗口标题 =MESSAGEBOX(程序已经运行了,48,技术资料管理系统) QUIT ENDIF_Screen.Caption=lpWindowName*声明全局变量PUBLIC cUser,IsAdmin & 声明全局变量,用来保存系统中的登录用户*调用登录表单DO FORM Logon & 显示登录表单*进入事物处理READ EVENTS 2、创建系统主菜单打开项目管理器,切换到“其他”选项卡,在选项卡的类表框中选择“菜单”选项,

19、新建菜单如下:由于菜单不是单独运行,而是内置在系统主表单中运行,所以还需要设置菜单的常规选项。打开菜单设计器,选择显示中常规选项命令,打开“常规选项”对话框,在此对话框中选中“顶层表单”复选框,这样菜单就可以与顶层表单一起运行了。菜单设计完成后,还需要生成可执行的菜单文件(.mpr文件),在菜单设计器中选择菜单生成命令,打开“生成菜单”对话框,在此对话框中的“输出文件”文本框中输入生成的可执行的菜单文件位置,单击确定按钮即可。3、 创建用户管理模块“技术资料管理系统”中设计的用户管理模块包括系统登录、密码修改、添加用户、修改用户和删除用户5项功能,其中修改和删除用户功能在集成在一个表单中,下面

20、分别介绍:(1) 创建“系统登录”表单 设置表单一些基本属性之后,创建好的表单效果如下把用户信息表(userinfo)添加到数据环境中,之后便添加代码。“确定”按钮的“click”事件代码如程1.8所示*改为精确比较SET EXACT ON * 试图登录次数自动加1 THISFORM.i=THISFORM.i+1 IF EMPTY(ALLTRIM(账号) MESSAGEBOX(请输入账号名称,48,技术资料管理系统) THISFORM.txt账号.SetFocusELSE SELECT UserInfo LOCATE FOR ALLTRIM(账号)=ALLTRIM(THISFORM.txt账号

21、.VALUE) &查找用户 *用户名和密码正确 IF FOUND() .AND. ALLTRIM(密码)=ALLTRIM(THISFORM.txt密码.VALUE) CUser=账号 &将登录用户的姓名存储到全局变量中 IsAdmin=管理 THISFORM.RELEASE() DO FORM LOGO &执行Logo表单 ELSE *用户名和密码错误 IF THISFORM.i3 &如果次数小于3 MESSAGEBOX(账号或密码错误,请重新输入,48,技术资料管理系统) THISFORM.txt账号.VALUE= THISFORM.txt密码.VALUE= THISFORM.txt账号.S

22、ETFOCUS ELSE &如果已登录3次 MESSAGEBOX(密码错误三次,系统无法启动,48,技术资料管理系统) THISFORM.RELEASE &退出表单 CLEAR EVENTS &结束事件循环 QUIT &退出Visual FoxPro ENDIF ENDIFENDIF*改为模糊比较SET EXACT OFF“取消”按钮的“click”事件代码如程1.9所示*声明本地变量LOCAL YN*确认对话框YN=MESSAGEBOX(确定退出,4+32,技术资料管理系统)*如果确认IF YN=6 THISFORM.RELEASE &退出当前表单 CLEAR EVENTS &结束事务处理

23、QUIT &退出Visual FoxProENDIF(2) 创建“修改密码”表单将“用户信息表”添加到表单数据环境中,其代码添加介于篇幅就不详细介绍了。同上“修改用户表单与删除用户表单”也不一一介绍了。(3) 创建“修改密码”表单将“用户信息表”添加到表单数据环境中,其代码添加介于篇幅就不详细了。4、 创建信息浏览表单(1)创建“产品信息浏览”表单 命名为“proselect”将“产品信息”表添加到表单的数据环境中,IF .NOT. EMPTY(ALLTRIM(THISFORM.txt产品编号.Value) SelTJ=SelTJ + AND + ALLTRIM(THISFORM.txt产品编

24、号.Value) + $ 编号ENDIFIF .NOT. EMPTY(ALLTRIM(THISFORM.txt产品名称.VALUE) SelTJ=SelTJ + AND + ALLTRIM(THISFORM.txt产品名称.Value)+ $ 品名ENDIFSELECT ProductInfoSET FILTER TOSET FILTER TO &SelTJ添加“产品信息浏览”表单的“init”事件代码如程2.1所示PARAMETERS cFormModeTHISFORM.FormMode=cFormModePUBLIC SelTJSelTJ=.T.SELECT ProductInfoSET

25、FILTER TOIF THISFORM.FormMode=cBrowse THISFORM.Grid1.Column1.Header1.Caption=编号 THISFORM.CmdPrint.Visible=.T. THISFORM.CAPTION=产品信息浏览ELSE IF THISFORM.FormMode=cSelect THISFORM.Grid1.Column1.Header1.Caption=编号(双击选择) THISFORM.CmdPrint.Visible=.F. THISFORM.CmdExit.Left=THISFORM.CmdExit.Left-35 THISFORM

26、.CAPTION=产品信息选择 ENDIFENDIFTHISFORM.Refresh当“产品信息浏览”表单作为“产品信息选择”表单时在表单推出是要向调用的该表单的表单返回值,即添加一个“return”语句,添加“产品信息浏览”表单的“unload”事件代码如程2.2所示IF THISFORM.FormMode=cSelect Return THISFORM.SelectedPro ENDIF当“产品信息浏览”表单作为“产品信息选择”表单时,在表格控件的第一列中双击时即可选择该条记录,并将该记录的“编号”字段值返回给调用表单,添加“产品信息浏览”表单的表格控件的第一列文本框的“dblclick”

27、事件,代码如程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 &SelTJ“退出”按钮的“click”代码如程2.6所示YN=MESSAGEBOX(确定退出,4+32,技术资料管理系统)IF YN=6 IF THISFORM.FormMo

28、de=cSelect THISFORM.SelectedPro=0000000000 ENDIF THISFORM.ReleaseENDIF 至此,“产品信息管理”表单创建完毕。(2)创建“产品信息浏览”表单由于它与上“产品信息管理”相似,这里就不再介绍了。5、 创建信息管理模块(1)创建产品信息管理表单将“产品信息”表添加到表单数据环境中,把之前创立的两个类控件添加到表单中,由于在这里还使用了一个自定义方法“modecontrol”,其代码如程2.7Local BeModify,BeBrowseBeModify=THISFORM.bModifyBeBrowse=THISFORM.bBrows

29、eTHISFORM.txt编号.ReadOnly=.NOT. BeModifyTHISFORM.txt品名.ReadOnly=.NOT. BeModifyTHISFORM.txt单位.ReadOnly=.NOT. BeModifyTHISFORM.txt单价.ReadOnly=.NOT. BeModifyTHISFORM.txt类别.ReadOnly=.NOT. BeModifyTHISFORM.txt产地.ReadOnly=.NOT. BeModifyTHISFORM.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.Enable

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

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