第一章 库存信息管理系统的基本问题 1.1 库存信息管理系统的简介 本系统是为了提高腾达公司自动化办公的水平、经过详细的调查分析初步制定了腾达公司库存信息管理系统。基于WINDOWS 98 平台,使用Microsoft Access97, 在Visual Basic 6.0编程环境下开发的库存信息管理系统。该系统采用交互是人机对话和模块化设计方式,实现对系统管理,其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两方面。对于前者要求建立起资料一致性和完整性强、资料安全性好的库。而对于后者则要求应用程序功能完备,易使用等特点此管理系统的开发主要为了满足管理者的需求,使他们的工作量减少,工作难度降低,风险性减小。同时使用这个系统还有利用数据的查询和保存。这个系统的5个主菜单以及若干个子菜单可以满足管理者的所有需求,使其工作满足现代化管理的要求。 1.2管理者对库存信息管理系统的需求 库房的管理的工作非常复杂烦琐,而且销售情况和库存档案要记载楚,销售的工作情况及库存情况管理者要了如指掌,并且进货前还有一个准确的记录,销售后还要返回一些资料妥善保存。这些工作如果要手工操作的话,不仅困难大,还费时费力。所以需要一个专门的程序来进行这些工作。这就需要更好的库存信息系统满足其经营管理的需要。 第二章 编程工具Visual Basic 简介 2.1 VISUAL BASIC 6.0 功能简介 VISUAL BASIC 是在原有的basic 语言基础上的进一步的发展,它包含了数百条语句,函数及关键词,其中很多与 window有直接的关系。VISUAL BASIC 语言简单易学,只要稍有语言基础就可以很快掌握并进而精通。可视化的用户界面设计功能,把程序设计人员从繁琐复杂的界面设计中解脱出来:可视化编程化环境的“所见即所得”(WYSIWYG)功能,是界面设计如积木游戏一般,编程变成了一种享受,强大的多媒体功能可轻易地开发出集声音,动画,影像和图片于一体的多媒体应用程序,新增的网络功能提供了编写Internet程序的能力。VISUAL BASIC 6.0 中文版还支持用户自己开发Activex 控件和制作Activex 文档。 作为高质量的开发软件,VISUAL BASIC 6.0中文版有如下优点: 完全的中文化的环境使用户更易于操作,用户在几分钟内,就可以熟悉VISUAL BASIC 6.0的开发环境。 语句生成器和快速提示帮助使用用户不用记忆成千上万的属性和方法,在较短的时间内就可能开发出功能强大的应用程序。 在VISUALBASIC 6.0中,Internet或Intranet访问其他的计算机中的文档和应用程序,可以创建Internet服务器应用程序,包括IIS应用程序,支持动态HTML技术(DHTML)的应用程序,具有Web应用程序发布功能等。 种类繁多,功能强大的多媒体控件,能帮助用户在很短的时间内用较少的语言编写出声像并茂的多媒体程序。 VISUAL BASIC 6.0在数据库处理功能上有较大的增强,能对多种数据库进行读写操作。另外它所提供的可视化数据管理器能帮助用户构造多种类型的数据库,同时提供了能自动生成SQL语句的功能和新的Activex数据对象ADO。 新的语言特性包括:用户自定义类型可以作为参数或可以作为公共属性和方法的返回值,函数可以返回数组变量,动态数组可以赋值,文件系统对象,按名调用(CallByName),增强的创建对象函数(CreatObject Function Enhancdments),增强的StrConv函数。 应用程序向导能帮助用户自动生成具有一定功能的应用程序,大大加快了程序的开发速度。增强的向导有:安装程序向导,数据窗体向导,应用程序向导和类生成工具。新的向导有:数据对象生成向导和工具条向导。 2.2 VISUAL BASIC 6.0 版本简介 VISUALBASIC 有三种发行版本,可以满足不同的开发需求。 VISUAL BASIC 学习版使编程人员可以轻松的开发Windows 95/98和WindowsNT 4.0的应用程序。该版本包括所有的内部控件以及网格,选项卡和数据绑定控件。学习版提供的文档有LearnVB Now CD和包括全部联机文档的Microsoft Developer Network CD。 专业版为专业编程人员提供了一整套的开发工具。该版本包括学习版的全部功能以及ActiveX 控件 Internet InformationSeverApplication Designer 集成的Visual Dataenvironment,ActiveXData Objects 和 Dynamic HTML PageDesigner。专业版提供的文档有Visual Studio Professional Features手册和全部联机文档的MicroSoft Developer NetWork CD 企业版为专业编程人员能够开发功能强大的组内分布式应用程序。该版本包括全部功能以及 Backoffice工具,如:SQL Server,MicroSoft Transacation Server,InterNetInformationServer,Visual Sourcesafe ,SNAServer等。企业版提供的文档有Visual StudioEnterpriseFeatures手册和包含全部联机文档的MicroSoftDeveloperNetWorkCD。 2.3VisualBasic6.0 的运行要求 作为32位的应用开发工具,ViualBasic6.0能够高效运行的条件如下: 1:Windows95/Windows Nt4.0 或更高版本的操作系统。 2:MicroSoft InterNet Explorer4.01或更高的版本。 3:至少有150M左右的硬盘空间。 4:奔腾 90MHZ或更高的处理器。 5:Microsoft Windows 95 支持的CD-Rom。 6:MicroSoftWindows95 支持VGA或分辨率更高的监视器。 7:Windows95/98 下要求24M的内存,WindowsNT下要求的32M以上的内存。 符合以上条件,VisualBasic 6.0 的强大功能才能完全体现。 2.4 VisualBasic 数据库的基本理论 我们已经迈向二十一世纪,我们不是预言家,但是有一点可以肯定,那就是它是一个信息爆炸的时代。即使是今天,我们也已经面临被信息淹没的危险,每周的《计算机世界》已经高达200多版,每天的报纸,电视,广播更是生怕有遗忘的角落,还有那面积越来越多的书店,书城,以及触角越来越长的Internet全球信息网络,无一不在提醒你,我们除了不得不呼吸越来越浑浊的空气之外,还不得不呼吸越来越漫无头绪的信息。 这么多的信息,数据,我们不可能一下子完全消化,有些还需要保存待以后处理,所以对于数据的管理一直是我们多年来研究的问题,而解决这一问题的最好手段就是利用数据库管理系统(DBMS)。 在数据库管理系统(DBMS)出现以前,开发者必须既要控制用户(输入和输出)和程序计算部分,还要开发者存储和检索顺序文件,二进制文件,随机文件中数据的方法。开发者还必须编写程序代码来控制程序所需要进行的搜索,或是生成必要的索引来控制记录的顺序。 有了DBMS,这一过程就变得容易多了。创建DBMS时的主要任务是对所需存储的书的类型进行初始化。然后,当需要检索和存储时,程序向DBMS发出请求,DBMS自动地控制数据管理的繁琐细节。DBMS也能按用户的指令搜索和创建索引而不需要很多的代码。 DBMS把开发人员从定义数据存储和检索机制的任务中解放出来,这种解放带来了以下几种优势。 首先,程序的初始化设计更方便了,因为不必编写搜索算法程序或是读写语句来处理当前记录。这样可以加速程序的初始化。 第二,在必要的时候(这种情况经常出现),DBMS使改变数据的格式十分必要。有了DBMS,程序原只需改变存储在数据库中的数据定义,DBMS会做好余下的工作,程序中的单独数据部分的例行程序通常保持不变。如果没有DBMS,必须为把文件移植到新格式编写例程,然后在受到影响程序中修改输入输出语句来反映出数据格式。 最后 ,它能使用户和其他开发者很容易创建附加程序来访问数据库的数据。这是因为他们不必知道数据是以什么格式存储的,而需知道数据域和他们所包含的数据类型。这种信息很容易找到,因为大多数DBMS系统包含报告数据结构的方法。 DBMS主要由两部分组成:编程接口(由用户接口和数据检索请求组成)和数据引擎。 A.编程接口的功能: 数据定义语言(DLL),它告知数据库引擎数据对象(表,记录,索引)的格式,DLL也定义数据棵的数据有效性验证和数据完整性 规则。 数据操作语言(DML),它告知数据库引擎对数据执行的功能(检索,修改,删除和存储)。数据控制语言(DCL),它告知数据库引擎不同的用户所允许访问的数据类型。 B.数据库引擎的功能 最简单的数据库引擎能提供数据物理的存储结构,数据检索和更新,数据搜索和索引功能。数据库引擎也能提供保证数据有效性验证,数据完整性和数据安全性的方法。数据库引擎的设计也能确定什么样的数据操作功能被支持。 利用VB6.0中文版技术实现数据的动态处理。JETDAO是一种OLE Autimation进程内服务程序,为构成JET数据库引擎的DLL提供面向对象的过程。OLE Automation 通过预先定义的接口提供对可编程对象的属性和犯法的直接访问。为了访问OLE Automation 服务程序,用户要通过TOOLS/References(已有的引用)例表框中的每一项都对应一个在Windows96/98或WindowsNT Registry 中,或在Windows3.1 数据库(reg.dat)中登陆过的OLE Automation 服务程序。 OLEAutimation服务对于哪个可编程对象及其成员函数可提供其他应用程序访问这一点上有选择性的。使OLE Autimation 服务程序可以北OLE Autimation 容器应用程序服务访问的过程称为“暴光”成员函数。OLE Autimation服务程序有两类函数:public’和private,只有public 函数可以提供象VB这样的OLE Autimation 服务程序对象的引用,VB的object browser(对象浏览器)就会在例表中显示该服务程序可供调用的集合和对象,以及每个对象的成员函数。 ViualBasic6.0的数据访问对象对描述Dbengine Workspace Database Tabledef Querydef Recordset Field Index relation 此对象指JET 数据库引擎。可供用户使用一个或多个数据的区域,workspace包括建立和打开数据库以及处理事务的方法。是一个信息的集合,其信息组织成表,并包含表的索引及相关信息。Database 对象包含创建,修改和删除数据库元素的方法。是数据表的物理结构的定义。是数据库中存储SQL查询信息。有关某一主题的信息记录的集合,recordset 对象包含浏览器对象库中的信息和修改信息的方法。数据表中的一列基于已定义键标域的记录的有序表。存储的有关表间关系的信息。 第三章、系统分析与概要设计3.1 系统分析系统分析的根本目的是,分析出合理的信息流动、处理存储的过程。系统分析的主要活动有,系统初步调查、可行性研究、系统详细调查、新系统逻辑方案的提出。下面就各个方面分别说明: ⑴系统初步调查 系统初步调查的主要目标就是,从系统分析人员的角度看新项目的开发有无必要和可能。初步调查的内容包括: ① 系统的基本情况,包括它的外部环境、规模、历史、管理目标、主要任务、当前面临的主要问题。 ② 系统中信息处理情况,包括现有系统的组织机构、工作方式、工作效率、可靠性、人员素质和技术手段。 ③ 系统的资源情况人、财、物等资源。 ④ 系统各类人员对系统的态度,包括领导和有关管理人员对现有信息系统的看法、支持和关心程度等。 库存管理需要有:产品相关信息设置,产品入库信息和出库信息以及打印输出等功能。应有入库信息的输入窗口,出库信息输入窗口,产品相关信息设置的输入窗口。,并且当输入库存基本信息时,界面要自然、简便,要有充分的提示和帮助,以便于操作人员学习使用和掌握。对输入的错误又有好的措施,并随时掌握任务的进展情况,输出的形式要易于理解,结果要正确。当然了,对于用户来说,界面就是系统本身。用户特别关心能否有效地使用软件来解决问题,用户对软件功能的理解都在界面上表现出来。人机界面体现了系统的功能,以及操作的方便程度是否符合使用的要求与工作习惯。 总之,应使管理部门及时掌握产品库存全面情况,并通过这样的系统,做到信息的规范管理,科学统计和快速查询,从而减少管理方面的工作量。 根据用户提出的建议,为了开发出有效的库存管理系统,遵循以下原则: ① 满足用户需要。之所以开发新系统是因为旧系统存在问题,束缚着组织的发展,不能适应用户的需要。作威信系统必须其最终系统能被用户接受,实现用户的初衷。 ② 功能更完善。功能是否完整,是指能否覆盖组织的主要业务管理范围。同时,还表现在各部分接口是否完备,数据采集和存储格式是否统一,各部分是否协调一致。管理信息系统的功能主要有:数据处理功能、控制功能、预测功能、决策功能、公用信息服务功能。 ③ 技术更先进。正确认识各种先进技术的优劣长短,从而根据组织的实际情况和未来得发展将其合理的运用到管理信息系统的开发中去。要努力发挥其高速度、高精度、高密度的优点,也要避免其缺乏灵活性,不便于处理意外情况的缺点。同时,不要为了一味的先进,而忽视了技术本身的成熟性。 ④ 实现辅助决策。许多组织的决策任务非常复杂、耗时,而决策关系到组织的兴衰。因此,所有的组织都需要能够帮助他们做出最佳的决策支持系统。 ⑵ 可行性分析 可行性研究的主要任务是在系统初步调查的基础上,对新系统是否能够实现和值得实现等问题作出判断,避免在花费了大量的人力和物力之后才发现系统不能实现或新系统投入使用后没有实际意义,而引起的浪费,对新系统可行性分析,要求用最小的代价在尽量短的时间内确定系统是否可行。内容包括:技术可行性、经济可行性、营运可行性。 ① 技术可行性 计算机管理信息系统的开发是一项复杂的系统工程,从70年代开始,人们逐渐认识到,为了保证MIS开发成功,必须采用工程化的系统开发方法,并研究出一些符合工程化标准的开发方法。 这些方法旨在指导开发者进行工程化的系统开发,从而加快MIS开发的速度,保证质量,以降低开发成本。工程的系统开发方法确实在开发软件中取得了一定的效果。此次开发的库存管理系统使用Visual Basic作为前台开发工具。 为了很好的实现系统的功能,后台选用了 Microsoft Access 开发学籍管理所需要得数据库。 ② 经济可行性分析 腾达公司有多台计算机和打印机,各台微机已通过局域网互联,因此新系统使用后,不需要购置新的硬件,硬件的升级费用也是非常低,系统完成后,一些报表可由系统自动处理,不再需要人工干预,提高公司管理的规范化、系统化、制度化、减轻了管理人员的工作量。公司有微机操作人员若干,对本系统的运行界面很容易熟练掌握,不需要进行特殊的培训工作。 ③ 运行可行性分析 随着计算机知识的普及和推广,越来越多的人掌握了计算机的基本使用方法和基本。目前,公司的管理人员已经具备了一定的计算机基础知识和实际操作经验。对于局域网、WINDOWS等环境下的软件使用比较熟悉,对于新系统的开发,用户表现出极大的兴趣和热情,提出了各种很好的建议和要求。 通过以上的分析,开发库存管理系统是完全必要并且是完全可行的。 3.2 系统设计⑴系统设计原则 ① 实用性:系统的设计从公司的需求出发,满足了公司管理活动的一系列要求和需要,而且力求操作员操作方便、简单易懂、界面友好。 ② 安全性:系统采用了用户输入编号和密码的登录界面,从而防止了非法用户的入侵;通过对用户权限的设置实现了系统维护人员与操作员相分离,充分保证了系统的安全性。 ③ 可维护性和可扩展性:系统具有良好的可扩展性和可维护性。系统中各个模块的独立性可以完全保证各个模块的适当扩展和修改不会影响到其他模块的运行。 ④ 标准性:软件设计严格执行国家有关软件工程的标准,保证系统质量,提供完整、准确、详细的开发文档。 ⑵ 系统设计方法 结构化方法是系统在设计时采用的主要方法。结构化方法的基本思路就是把整个系统开发过程分为若干阶段,每个阶段进行若干活动,每项活动应用一系列标准、规范、方法和技术,完成一个或多个任务,形成符合给定规范的产品。 结构化系统开发方法的特点是: ① 用“自上而下”的开发策略,进行系统分析和系统设计,然后,“自下而上”地开发和调试各个模块,最后实现模块联调和整个系统的联调。 ② 工作文件的标准化与文档化。即每一阶段、每一步骤都有详细的文档记录,并有完整的管理制度。 ③ 强调面向用户的观点。即将用户的参与程度和满意与否作为系统开发能否成功的关键。 ④ 结构化开发方法在大多数情况下是信息系统工程开发的有效方法。它首先用结构化分析(SA)对软件进行需求分析,然后用结构化设计(SD)方法进行总体设计,最后是结构化编程(SP)。 结构化方法又可以分为自顶向下和自底向上底开发方法。两者结合是实际开发过程中常用的方法。 结构化方法的主要原则是: ① 用户参与的原则; ②“先逻辑,后物理”的原则 ③“自顶向下”的原则; ④ 工作成果描述标准化的原则。 ⑶ 总体设计 腾达公司库存管理信息系统功能设计目标如下: ① 实用性强:符合实际操作流程的习惯,易学易用的友好的用户界面,适合各层次工作人员的使用需求,实现计算机与多年积累起来的经验相结合科学化管理; ② 先进的程序结构:使用当代前卫的软件编程,能延长其生命周期,易于维护与管理; ③ 安全可靠性高:登录密码口令,实现系统的可靠性; ④ 使用模块化设计的方法:使系统具有良好的可扩充性,以适应其不同阶段的发展需要; ⑤ 操作简单,维护方便:每个系统都具有系统维护功能,对可变化的项目可自行维护; ⑥打印功能强大:可以对当次产品入库信息、当次产品出库信息打印而且还可查询检索到哪一日入库及出库信息的打印。 第四章 系统功能模块设计4.1 腾达公司库存管理功能模块设计目标⑴ 实用性强:符合实际操作流程的习惯,易学易用的友好的用户界面,适合各层次工作人员的使用需求,实现计算机与多年积累起来的经验相结合科学化管理; ⑵ 先进的程序结构:使用当代前卫的软件编程,能延长其生命周期,易于维护与管理; ⑶ 安全可靠性高:登录密码口令,实现系统的可靠性; ⑷ 使用模块化设计的方法:使系统具有良好的可扩充性,以适应其不同阶段的发展需要; ⑸ 操作简单,维护方便:每个系统都具有系统维护功能,对可变化的项目可自行维护; ⑹ 查询功能强大:可以对文件按日期、部门、文件名和文件的编号等方式查询,使管理人员能及时准确地掌握腾达公司库存的基本情况。 4.2 腾达公司库存管理信息系统功能模块划分根据需求分析与系统功能设计目标,结合实际情况本系统功能模块设计分为如下几个模块: ①系统管理模块 ②项目设置管理模块 ③入库操作管理模块 ④出库操作管理模块 ⑤报表输出管理模块 4.3腾达公司库存管理信息系功能模块明细该库存管理系统分为五个功能模块,每个功能模块由若干子项组成,该系统的功能结构图如图4.1所示。 file:///C:/Users/Administrator/AppData/Local/Temp/msohtmlclip1/01/clip_image001.gif
file:///C:/Users/Administrator/AppData/Local/Temp/msohtmlclip1/01/clip_image003.jpg 图4.1系统功能结构图 ⑴ 系统管理模块 这一模块的主要功能是,对使用腾达公司库存管理信息系统的用户进行管理,包括:密码登录和退出系统等。 本系统的系统用户可对该软件实行全方位、一体化的管理,可对五大模块所有功能进行管理。用户可对系统的系统管理模块、项目设置管理模块、入库操作管理模块、出库操作管理模块、报表输出管理模块进行操作。 设置了密码可以保证系统的安全:避免其他无关人员随意修改信息造成系统内容丢失密秘泄露等问题发生。 系统管理的功能结构图如图4.2所示: file:///C:/Users/Administrator/AppData/Local/Temp/msohtmlclip1/01/clip_image005.jpg 图4.2 系统管理模块图 下面就系统管理的各个模块详细的作以介绍: ①登录模块 登录模块,主要功能是用户输入合法的用户名和密码方可进入系统进行各种操作,否则就不能进入系统。 ④ 退出系统模块 用于退出系统,只要在下拉菜单中点击退出就可退出系统。 ⑵项目设置管理模块 这一模块的主要功能是完成员工管理、客户管理、供应管理、材料分类和材料管理。对其分别进行增加、删除、修改等操作。 项目设置管理功能模块图如下图4.3所示 file:///C:/Users/Administrator/AppData/Local/Temp/msohtmlclip1/01/clip_image007.jpg 图4.3项目设置管理模块 项目设置管理模块中各子模块的说明如下: 在进行具体的项目设置管理界面设计之前,我们先把收(发)文件数据概念结构转化为Access 2000数据库系统所能够支持的实际数据模型,也就是数据库的逻辑结构,建立起了能够保障系统顺利正确运行的后台。 ①员工管理模块 主要功能是员工各种信息的管理。在员工管理模块中,对员工信息(包括员工姓名、职务、电话和密码)进行增加、修改、和删除等操。 ②供应管理模块 主要功能是对供应方面的信息进行管理。在供应管理中,对公司名称、公司地址、联系人姓名、联系电话等情况进行增加、修改、和删除等操。 ③ 客户管理模块 这一模块是对客户方面的信息进行管理,对公司名称、公司地址、联系人姓名、联系电话以及产品和数量进行记载增加、修改、和删除等操 ④材料分类管理模块 这一模块是对各种材料进行分类编号。 ⑤材料管理模块 这一模块是对各种材料进行分类编号,按不同的产品编号对产品进行增加、修改、和删除等操。 ⑶入库操作管理模块 主要用于产品入库信息的管理按产品的分类、产品的名称、入库数量、产品单价 供应商的姓名、经手人以及金额和产品入库信息的打印等操作。入库管理模块的功能如下图4.4入库操作管理模块。 file:///C:/Users/Administrator/AppData/Local/Temp/msohtmlclip1/01/clip_image009.jpg 图4.4 入库操作管理模块 入库操作管理模块中各子模块的说明如下: ①入库产品信息添加模块 主要是实现入库产品信息的管理,按产品的分类、产品的名称、入库数量、产品单价等入库信息添加到库存表中。 ②入库产品信息打印模块 本模块的主要功能是在入库产品信息添加完成以后,利用打印报表管理器把当次入库产品信息打印出来。 ⑷ 出库操作管理模块 主要用于产品出库信息的管理按产品的分类、产品的名称、出库数量、经手人以及服务客户和产品出库信息的打印等操作。同时自动显示库存量,出库数量不能大于库存量,如果大于则弹出对话框提示。 出库操作管理模块功能结构图如下4.5所示: file:///C:/Users/Administrator/AppData/Local/Temp/msohtmlclip1/01/clip_image011.jpg 图4.5 产品出库管理模块 出库操作管理模块中各子模块的说明如下: ① 出库产品信息模块 用于产品的分类、产品的名称、出库数量、经手人以及服务客户和产品出库信息 ②出库产品信息打印模块 本模块的主要功能是在出库产品信息添加完成以后,利用打印报表管理器把当次出库产品信息打印出来。 ⑸报表输出管理模块 报表输出管理模块的功能结构图 如图4.6所示: file:///C:/Users/Administrator/AppData/Local/Temp/msohtmlclip1/01/clip_image013.jpg 图4.6报表输出管理模块 报表输出管理模块中各子模块的说明如下: ① 日入库产品信息检索模块 日入库产品信息检索主要功能是从入库信息表中查询某一天的产品入库信息。 ②日入库产品信息打印模块 日入库产品信息打印主要是打印查询出的某一天的产品入库信息。 ③日出库产品信息检索模块 日出库产品信息检索主要功能是从出库信息表中查询某一天的产品出库信息。 ④日出库产品信息打印模块 日出库产品信息打印主要是打印查询出的某一天的产品出库信息。 第五章 数据库设计5.1数据设计概述数据库系统是在文件系统的基础上发展而来的,经历了层次数据库、网状数据库、关系数据库三个阶段。由于关系数据库采用人们比较容易理解和接受的二维表格来组织数据,发展迅速,已成为数据库产品的主流。 计算机信息系统以数据库为核心,在数据库管理系统的支持下,进行信息的收集、整理、存储、检索、更新、加工、统计和传播等操作。确切地说,数据库设计是指对于一个给定的应用环境,提供一个确定最优数据模型与处理模式的逻辑设计,以及一个确定数据库存储结构与存取方法的物理设计,建立起既能反映现实世界信息和信息联系,满足用户数据要求和加工要求,又能被某个数据管理系统所接受,同时能实现系统目标,并有效存取数据的数据库。 数据库设计的核心问题时如何从系统的观点出发建立一个数据模式,应满足下列条件: ① 符合用户的要求。 ② 与所选用的DBMS所支持的数据模式相匹配。 ③ 数据组织合理,易操作,易维护,易理解。 为符合上述条件而且还要遵守其基本原则,做到尽可能提高数据组织的相对独立性,简化其结构,以降低数据的维护成本,并提高数据的可维护性、完整性和一致性,且使用了E.F.Codd 的关系规范化理论来指导,应用MICROSOFT ACCESS 2000数据库,根据系统的需求,需要建立如下数据库表: ① 员工信息表(员工表) ② 客户信息表(客户信息表) ③ 供应商信息表(供应商表) ④ 材料分类表(材料分类表) ⑤ 库存材料表(库存材料表) ⑥ 入库信息表(入库表) ⑦ 出库信息表(出库表) 5.2 系统数据库表 (1) 员工信息表,表名为员工表,用于对员工信息的姓名、职务、电话、密码进行定义,如表5.1所示。 表5.1 员工信息表 ⑵客户信息表,表名为客户表,用于对客户信息的名称、电话、地址、联系人、产品、单位、数量等进行定义,如表5.2所示。 表5.2 客户信息表 ⑶供应商信息表,表名为供应商表,用于与供应商有关的各种信息。如表5.3所示。 ①名称:供应商的名称 ②电话:供应商的电话 ③地址:供应商的地址 ④联系人:供应商方联系人 ⑤级别:等级 ⑥单位:单位 表5.3 供应商信息表 ⑷材料分类表,表名为材料分类表用于说明材料分类相关信息的表。如表5.4所示。 分类:按材料的性质进行分类 表5.4 材料分类表 ⑸库存材料表,表名库存材料表用于记录库存材料的相关信息。如表5.5所示。 名称:库存材料的名称 分类:库存材料的分类 单位:单位 数量:数量 表5.5 库存材料表 ⑹入库信息表,表名入库表 用于记录材料入库信息。如表5.6所示。 名称:入库材料的名称 供应商:材料的供应商 数量: 材料数量 单价: 材料单价 经手: 经手人姓名 日期:入库日期 时间:入库时间 表5.6 入库信息表 ⑺出库信息表 表名出库表,用于记载材料出库有关的信息 如表5.7所示。 名称:出库材料的名称 数量:出库材料的数量 经手人:经手人姓名 用途:出库材料用途 日期:出库日期 时间:出库时间 表5.7 出库信息表 第六章 程序设计6.1设计的关键技术及应用⑴ ADO技术 ADO (ACTIVE DATA OBJECTS) 即ActiveX数据对象,它实际是一种提供访问各种数据类型的连接机制。ADO的设计为一种极简单的格式,通过ODBC的方法同数据库接口相连。用户可以使用任何一种ODBC数据源,即不仅适合于SQL Server、Oracle、Access等数据库应用程序,也适合于Excel表格、文本文件、图形文件和无格式的数据文件。ADO是基于OLE-DB之上的技术,因此ADO通过其内部的属性和方法提供统一的数据访问接口方法。 ⑵ ADO技术 ADO虽然集成在VISUAL BASIC 6.0中,但只是可选项。因此在创建项目后,需要为项目添加ADO。单击[工程]菜单中的[引用]菜单项,打开“引用“对话框。在“引用”选项卡中向下滚动列表项,找到“Microsoft ActiveX Data Objects 2.0 Library” 列表项,单击该列表项左边的复选框。单击“确定”按钮,这样在程序中使用ADO时就不会出现编译错误了。 Connection对象:通过Connection对象指定程序中要用到的数据库。 Recordset对象:表示查询结果集。Recordset对象将一个查询字符串传递给由Connection对象指定的数据库,该数据库执行此查询,然后将查询结果返回给Recordset对象。 ⑶ 应用ADO连库方法 ① 使用Connection : 声明变量Public Conn AS ADODB.Connection 使用Set Connection 对象的一个实例, 并赋给变量。 Conn:SetConn=New ADODB.Connection 使用Connection 对象的Open方法连接到指定的数据库。 Conn.Open"driver={Microsoft Access Driver (*.mdb)};dbq=" & DbPath,"sa", "Liu Yang” ② 使用Recordset 对象: 先声明变量 Dim RS AS ADODB.Recordset 使用Set 语句生成Recordset对象的一个实例,并赋值给变量RS: Set RS=New ADODB.Recordset 使用Recordset 对象的Open 方法,将查询字符串传递给Connection对象指定的数据库。数据库服务器接收到这个查询字符串后,将查询结果返回到RS对象。 6.2系统主要功能的具体设计 库存信息管理系统共有1个界面,5个窗体,包括5个主菜单。现具体介绍如下; ①系统主界面如下图所示: file:///C:/Users/Administrator/AppData/Local/Temp/msohtmlclip1/01/clip_image015.jpg 图6-1 系统主界面 ②项目设置窗体如下: file:///C:/Users/Administrator/AppData/Local/Temp/msohtmlclip1/01/clip_image017.jpg 图6-2 项目设置窗体 项目设置代码设计: Private SubToolbar5_ButtonClick(ByVal Button As MSComctlLib.Button) Select Case Button.Index Case 1 ''前进 Data5.Recordset.MovePrevious If Data5.Recordset.BOF = TrueThen Data5.Recordset.MoveFirst End If Case 2 ''后退 Data5.Recordset.MoveNext If Data5.Recordset.EOF = TrueThen Data5.Recordset.MoveLast End If Case 4 ''增加 On Error GoTo add_error Data5.Recordset.AddNew 'Data1.Recordset("建户时间") =Date add_error: If Err.Number = 3426 Then MsgBox "已经使用过添加记录! 错误:" & Err& "," & Err.Description, 0, "提示" Unload Me End If Text21.Visible = False Toolbar5.Buttons(1).Visible =False Toolbar5.Buttons(2).Visible =False Toolbar5.Buttons(4).Visible =False Toolbar5.Buttons(5).Visible =True Toolbar5.Buttons(6).Visible =True Toolbar5.Buttons(7).Visible =False Case 5 ''确定 On Error GoTo update_error If Text3.Text = ""Then MsgBox "必须填写售电员!",0, "提示" Exit Sub End If Data5.Recordset("分类") =DBCombo1.Text Data5.UpdateRecord Data5.Recordset.Bookmark =Data1.Recordset.LastModified update_error: If Err.Number = 3020 Then MsgBox "请先添加记录! 错误:" & Err& "," & Err.Description, 0, "提示" Unload Me End If Text21.Visible = True Toolbar5.Buttons(1).Visible =True Toolbar5.Buttons(2).Visible =True Toolbar5.Buttons(4).Visible =True Toolbar5.Buttons(5).Visible =False Toolbar5.Buttons(6).Visible =False Toolbar5.Buttons(7).Visible =True Case 6 ''取消 On Error GoTo CanceErr Data5.Recordset.Edit Data5.Recordset.CancelUpdate Text21.Visible = True Toolbar5.Buttons(1).Visible =True Toolbar5.Buttons(2).Visible =True Toolbar5.Buttons(4).Visible =True Toolbar5.Buttons(5).Visible =False Toolbar5.Buttons(6).Visible =False Toolbar5.Buttons(7).Visible =True CanceErr: If Err.Number = 3021 Then MsgBox "没有记录! 错误:" & Err & "," & Err.Description, 0, "提示" End If Case 7 ''删除 On Error GoTo del_error a = MsgBox("真的删除吗?",vbExclamation + vbOKCancel + vbApplicationModal, "删除记录") If a = 1 Then Data5.Recordset.Delete Data5.Recordset.MoveLast End If If a = 2 Then Exit Sub del_error: If Err.Number = 3426 Then MsgBox "已经全部删除! 错误:" & Err& "," & Err.Description, 0, "提示" Unload Me End If End Select End Sub ③产品入库窗体如下: file:///C:/Users/Administrator/AppData/Local/Temp/msohtmlclip1/01/clip_image019.jpg 图6-3 产品入库窗体 产品入库代码设计: Private Sub Command1_Click() If Val(Text1.Text) <= 0Then MsgBox "请输入入库数量!" Exit Sub End If If DBCombo2.Text ="" Then MsgBox "请选择入库材料名称!" Exit Sub End If If DBCombo4.Text ="" Then MsgBox "请选择经手人!" Exit Sub End If Dim a As Integer a = MsgBox("********你确定此操作吗?**********"& vbCrLf _ & "材料名称:"& DBCombo2.Text & vbCrLf _ & "原库存量:"& Label4.Caption & Label5.Caption & vbCrLf _ & "本次入库:"& Text1.Text & Label5.Caption & " 单价:" &Text2.Text & "元" & vbCrLf _ & "供应商:"& DBCombo3.Text & vbCrLf _ & "经手人:"& DBCombo4.Text & vbCrLf _ , vbExclamation + vbOKCancel +vbApplicationModal, "提示") If a = 1 Then Data5.Recordset.AddNew Data5.Recordset("名称") =DBCombo2.Text Data5.Recordset("供应商") =DBCombo3.Text Data5.Recordset("数量") =Text1.Text Data5.Recordset("单价") =Text2.Text Data5.Recordset("经手") =DBCombo4.Text Data5.Recordset("日期") =Date Data5.Recordset("时间") =Time Data5.UpdateRecord Data5.Recordset.Bookmark =Data5.Recordset.LastModified '************************ Data2.Recordset.Edit Data2.Recordset("数量") =Val(Label4.Caption) + Val(Text1.Text) Data2.Recordset.Update MsgBox "入库成功!" 'asPopup4.Enabled = True End If If a = 2 Then Exit Sub End Sub ④查询打印窗体如下: file:///C:/Users/Administrator/AppData/Local/Temp/msohtmlclip1/01/clip_image021.jpg 图6-4 查询打印窗体 查询打印代码设计: 查询部分: Private SubasPopup1_Click(Cancel As Boolean) IfDataEnvironment1.rsCommand2.State <> adStateClosed Then DataEnvironment1.rsCommand2.Close End If DataEnvironment1.Commands("Command2").Parameters(0) =CStr(DTPicker1.Value) DataEnvironment1.Commands("Command2").Parameters(1) =CStr(DTPicker2.Value) DataGrid1.DataMember = "Command2" Set DataGrid1.DataSource = DataEnvironment1 End Sub 打印部分: Private SubasPopup11_Click(Cancel As Boolean) IfDataEnvironment1.rsCommand2.State <> adStateClosed Then DataEnvironment1.rsCommand2.Close End If DataEnvironment1.Commands("Command2").Parameters(0) =CStr(DTPicker1.Value) DataEnvironment1.Commands("Command2").Parameters(1) =CStr(DTPicker2.Value) DataGrid1.DataMember = "Command2" Set DataGrid1.DataSource = DataEnvironment1 DataReport3.Show DataReport3.Sections(2).Controls("Label13").Caption= "开始时间:" & CStr(DTPicker1.Value) DataReport3.Sections(2).Controls("Label14").Caption= "结束时间:" & CStr(DTPicker2.Value) End Sub 第七章 程序安装与调试7.1 调试系统调试的目的是发现程序和系统中的错误并及时予以纠正。在一个系统中调试应该包括程序调试、功能调试(分调)、总调,在库存管理系统中用的调试方法也包括这些: 1. 程序调试 包括语法调试和逻辑检查,测试数据除采用正常数据外,还应用一些异常资料,用来考验程序的正确性。 ① 用正常资料调试。 ② 用异常资料调试。 ③ 用错误资料调试。 2.分调 即将一个功能内所有程序按次序串联起来调试。 3.总调 将主控制调度程序和功能模块联结起来调试。 7.2测试测试是系统开发周期中一个十分重要的阶段,其重要性体现在它是保证系统质量与可靠性的最后关口,是对整个系统开发过程的最终审查,如果错误不能在测试阶段被发现并纠正,就会造成不堪设想的后果。在库存管理系统中测试的对象不仅仅是源程序,而是整个软件。系统测试是以找错误为目的,不是要证明程序无错,而是要精心选取那些易于发生错误的测试数据,以十分挑剔的态度,证明程序有错。 在开发库存管理系统中,所用到的测试方法有人工测试和机器测试。在人工测试中用的是个人复查,即当源程序编完以后,由自己进行检查,但这种测试方法存在不足之处:由于心理上对自己程序的偏爱,因此有些习惯性的错误不易发现,如果对功能理解有误,自己也不易纠正,所以在个人复查的基础上又用了机器测试中的白盒测试和黑盒测试。 (1) 白盒测试:也称结构测试,将软件看作一个透明的白盒子,按照程序的内部结构和处理逻辑来选定测试用例,对软件的逻辑路径及过程进行测试,检查它与设计是否符。在进行白盒测试时,开发者对其软件进行测试,在完全了解系统功能、内部结构的前提下对系统进行测试,看实现的功能与想要实现的设计有什么冲突不符,并及时改正。 (2) 黑盒测试:也称功能测试,将软件看作黑盒子,在完全不考虑程序的内部结构和特性的情况下,测试软件的外部特性,根据软件的需求规格说明书设计测试用例,从程序的输入和输出特性上测试是否满足设定的功能。在进行黑盒测试时,开发者以使用者的身份对其软件进行测试,多次输入符合条件的数据,看结果是否与预期相符,如果相符则说明程序对输入的条件反映正确,如果不符则说明程序有错,所以这种黑盒测试只能证明程序有错而不能证明程序无错。 结束语通过这次毕业设计,我掌握了Accesss数据库的编程方法,掌握了Visual Basic企业版视化面向对象的编程语言的使用方法。对目前流行的软件开发方法和手段,有了一定的认识,丰富了软件开发的经验,提高了编制程序的水平,加深理解了许多课程中、书本上学到的知识和理论。同时通过编写毕业设计论文,我还掌握了软件文档的书写方法和书写格式。 因为初次开发一个系统,所以此系统还有许多不完善的地方。由于时间有限,和本人的编程水平和经验不足,有些功能并没有完全实现,有些功能实现的并不理想。在已经完成的程序中,也存在许多不尽人意的算法和数据结构。而这也让我充分认识到了软件编制的困难程度。对软件的编制速度,复杂程度有了充分的认识。 在这次毕业设计中,我要特别感谢XXXXX大学教师,在他们的大力帮助下不仅仅是完成了此系统的开发而且学会了一门编程语言,使我的能力得到了提高。 参考文献1.王福成. Visual Basic 6.0数据库开发指南. 北京:清华大学出版社, 2000 2.美E.Winemiller,J.Roff,B.Heyman,R.Gromm.Visual Basic6.0 数据库开发 清华大学出版社 ,1999 3.美 David Sceppa.ADO 编程技术.清华大学出版社,2001 4.甘仞初.信息系统开发.经济科学出版社,2000 5.黄梯云.管理信息系统.经济科学出版社,2000 6.同志工作室.Visual Basic 6.0数据库开发实例.人民邮电出版社,2001 7.美Eric Brierley,AnthonyPrince,David Rinaldi.Visual Basic 6 开发人员指南.机械工业出版社,1999 8.李廷文.中文版Visual Basic 6.0 控件高级编程.人民邮电出版社,2002 9.张树兵.Visual Basic 6.0入门与提高.清华大学出版社,2001 10.美David G.Jung,Jeff Kent.Visual Basic 程序调试实用手册.电子工业出版社,2002 11.马仁洪.长途客运微机售票综合管理系统的开发和应用.交通部计算机应用信息网十周年网庆征文P40~P46 12.吴业福.一个轮船微机售票系统的开发.交通与计算机,1996年12月刊第6期第14卷
|