仓库管理系统设计

目录

摘要

Abstract

第一章 概述

1.1仓库管理系统研究背景及意义

1.1.1开发伊犁州移动分公司仓库设备管理系统的目的

1.1.2开发伊犁州移动分公司仓库设备管理系统的技术性意义

1.1.3系统开发具有的优越性

1.2 VB语言的基本特点及VB应用程序的基本特点

1.2.1可视化设计

1.2.2事件驱动编辑

1.2.3实现菜单选项

1.2.4实现工具栏

1.3 Access2000数据库

1.4 VB6Access的连接

1.4.1 ODBC连接数据库

1.4.2 ADO连接数据库

第二章 系统分析

2.1系统的可行性分析

2.2要求分析

2.3详细资料的收集

第三章 系统设计

3.1系统总体设计

3.1.1系统目标设计

3.1.3系统功能需求分析

3.1.4系统功能模块设计

3.2数据库设计

3.2.1数据库需求分析

3.2.2数据库概念结构设计

3.2.3数据库逻辑结构设计

第四章 系统实现

4.1登陆窗体

4.2系统主窗体设计

4.2.1创建工程项目-伊犁州移动分公司仓库设备管理系统

4.2.2创建主窗体工具栏

4.2.3创建主窗体菜单

4.2.4创建主窗体工具栏

4.2.5设置主窗体状态栏

4.3系统模块

4.3.1基础资料模块

4.3.2仓库管理模块

4.3.3仓库查询模块

4.3.4数据操作模块

4.4系统设置

4.4.1密码修改

4.4.2用户管理

4.5仓库管理系统通用模块代码设置

第五章 系统测试

5.1测试项目

5.1.1用户登录模块测试

5.1.2基础资料模块测试

5.1.3仓库管理模块测试

5.1.4仓库查询模块测试

5.1.5系统设置模块测试

5.2测试结论

结论

致谢语

参考文献

摘要

本文采用面向对象的程序设计方法来分析、设计和实现软件系统,使系统更加稳定、易理解和易修改,因而提高软件开发的效率,降低软件的成本。

仓库管理系统是为了实现企业产品管理的系统化、规范化和自动化,从而提高企业管理效率而设计的。它完全取代了原来一直用人工管理的工作方式,避免了由于管理人员的工作疏忽以及管理质量问题所造成的各种错误,为及时、准确、高效的完成仓库管理提供了强有力的工具和管理手段。仓库管理系统是一个中小型数据库管理系统,它界面美观、操作简单、安全性高,基本满足了仓库管理的要求。整个系统由基本管理、查询统计、报表打印、维护设置、帮助等模块组成。

本系统是在以ACCESS2000作为后台数据库,以Visual Basic为编程语言来开发的。仓库管理系统在运行阶段,效果好,数据准确性高,提高了工作效率,同时也实现了仓库管理计算机化。

关键字 :仓库,管理系统,数据库

                        Abstract

In this paper, the design and implementation of software system using object oriented programming method, which make the system more stable, easy to understand and easy to modify, so as to improve the efficiency of software development, reduce the cost of software.

The administrative system of the warehouse is designed for realizing the systematization , standardization and automization of enterprise's products management and improving efficiency of enterprises management. It completely replaces the working way of artificial management originally , prevents from various kinds of mistakes because of  administrative staff neglect and the quality problem of management and offeres powerful tool and management way to complet storehouse management for prompt , accurate , high-efficient . The administrative system of the warehouse is a medium and small-scale database management system,it has not only beautiful interface, but also the high security and the simply operation , and meet the demand for storehouse management basically. Whole system is made up by basic information, inquire statistics , report form type ,set up to maintain and module of helping etc.

The Warehouse administrative system is designed with regarding  ACCESS2000 as the backstage  database and regarding  Visual Basic as programming language . The administrative system  is effectual, the high data accuracy  during the course of operating , improves working efficiency and realizes computerization for storehouse management at the same time .

Key word: The Warehouse , Administrative System, The Database

 伊犁州移动分公司仓库设备管理系统

                            第一章 概述

1.1仓库管理系统研究背景及意义

随着我国经济的飞速发展,各种类型规模的公司企业迅速崛起,许多从事生产和经营管理的企业都有自己生产和销售的产品,而这些产品都需要储存在仓库中,对于每个企业来说,随着企业规模的不断扩大,产品数量的急剧增加,所生产产品的种类也会不断地更新与发展,有关产品的各种信息量也会成倍增长。面对庞大的产品信息量,如何有效地管理仓库产品,对这些企业来说是非常重要的,仓库管理的重点是销售信息能否及时反馈,从而确保企业运行效益。而仓库管理又涉及入库、出库的产品、经办人员及客户等方方面面的因素,如何管理这些信息数据,是一项复杂的系统工程,充分考验着仓库管理员的工作能力,工作量的繁重是可想而知的,所以这就需要由仓库管理系统来提高仓库管理工作的效率,这对信息的规范管理、科学统计和快速查询,减少管理方面的工作量,同时对于调动广大员工的工作积极性,提高企业的生产效率,都具有十分重要的现实意义。

毕业设计是本科专业学生完成教学计划,实现专业培养目标的一个重要环节,是教学计划中综合性最强的实践性环节,它对提高学生综合运用专业知识分析和解决实际问题的能力以及培养学生的严肃认真的科学态度、严谨求实的工作作风和处理问题的能力等方面具有重要的意义。

根据学院的安排以及结合自身的情况,本人选择伊犁州移动分公司仓库设备管理系统为此次毕业设计的研究课题,主要因为近几年随着移动公司的快速发展,库房等待建设的移动机房设备管理工作量越来越大,在公司实习期间,发现公司的仓库管理工作都是人工操作的,纸笔记账,库存、销量不能一目了然,历史数据很难保存和利用,而且基站设备产品到货的种类比较多,比较杂,无形中增加了工作量。人工管理方式已经越来越不能满足需求,因此有必要以这样规模的企业为素材开发一套仓库管理系统。在对该公司采购货物到货种类和数量进行全面调查和分析的基础上,收集二次发货运做中遇到的实际问题。以帮助该企业早日实现信息化管理。

通过对此课题的研究可以使本人在毕业设计过程中系统回顾和总结以前所学的各种知识,并将与毕业设计课题相关的知识融会贯通,提高综合运用的能力。在毕业设计过程中,针对课题要求,可以不断学习新的知识和方法,解决之前未曾遇到的一些实际问题,并逐步完善知识结构。同时可以培养从理论知识到实践应用的能力,提高自己发现问题、提出问题,并以更具体、更细致的方法去解决问题的能力。

目前,随着计算机技术的飞速发展,仓库管理信息系统在仓库管理中得到了越来越广泛的应用。作为伊犁通信信息行业领班人之一的移动公司,前期采用的仍是手工操作,那么面临公司的快速发展,开始暴露出了种种缺陷和不足。现今数据库技术和面向对象的软件开发技术也发展得比较成熟,设计和开发一个现代化的实用性、人机界面友好性的仓库管理系统是可行的。且应为移动公司的快速发展,需要一个日益成熟、快捷方便的管理系统来管理仓库的设备。

1.1.3系统开发具有的优越性

本仓库管理系统是在以Visual Basic为编程语言,以ACCESS 2000作为后台数据库而开发的一个数据库管理系统。下面简要介绍一下中文Visual Basic 6.0和Access 2000。根据用户和密码登陆到系统,并可以查看到自己想要的信息或直接办公,不会因为采购入库量较多,翻阅较繁琐的关系耽误工作,而且提高了系统工作的可维护性、重用性和适应性。

1.2 VB语言的基本特点及VB应用程序的基本特点

VB程序语言具有许多优秀的特性,用其设计应用程序时有两个基本特点:可视化设计和事件驱动编程。

Visual Basic 系统除了一般高级语言所具有的一些名词术语外,还有几个系统常用的名词。其基本含义如下:

1)视窗(Form)

视窗是进行人机交互的界面或接口,也叫窗体。VB系统的人机交互界面或接口,无论是在设计时或是在运行时,都是Windows 系统的标准视窗。

2)对象 (Object)

对象是VB系统内部提供给设计者可以直接使用的处理输出的控制工具。本程序所应用到的对象类型有标签框 (Label Box),文本框 (Text Box),命令按扭 (Command Button),网格 (Data Grid),ADO控件 (Adodc1)等。当把这些工具放置到用户界面对应的窗体上时,被称为对象或控件。用户可以通过设置对象的“属性”和“方法”,便于对象适应自己所设计应用程序的输入输出内容,对象的生成过程及结构都被封装起来。正确使用对象可以减少程序和开发时间,提高程序设计者的工作效率。

3)属性 (Properties)

属性是VB系统提供的有关对象的参数或数据接口。用户通过适当地设置或改变对象的属性来确定对象的外观及性能特征,从而有效地使用系统提供的对象。比如,对象的名称、在屏幕上显示的位置、大小、颜色、接收或容纳的数据内容及数据的表现格式等。

4)事件 (Events)

事件是指用户或操作者对计算机进行的某一操作(如击键、单击或移动鼠标等)的行为或系统状态发生的变化。VB系统常用事件来引导计算机执行一段程序。程序所用的键盘事件有KeyPress(按键)事件,KeyDown事件和KeyUp事件;鼠标事件有Click(单击鼠标)事件,DbDlicd(双击鼠标)。

5)方法 (Method)

方法主要是指对一个对象使用某种作用的过程。它是在程序执行的过程中要计算机执行的某种操作。其程序的方法有Show(显示)方法,Hide(隐藏)方法,Refresh(刷新)方法。

6)过程 (Procedure)

过程是指经过定义或说明的,或基于某一对象对应的事件所引发的程序段。

7)模块 (Module)

模块是指一些运算量或过程进行声明或定义的一个集合。系统程序大体可分成四个模块:数据输入、根据查询、数据打印和通讯。

1.2.1可视化设计

Visual意为“可视化的”,指的是一种开发图形用户界面的方法,所以Visual Basic是基于Basic的可视化的程序设计语言。在Visual Basic中,一方面继承了Basic所具有的程序设计语言简单易用的特点,另一方面在其编程系统中采用了面向对象、事件驱动的编程机制,用一种巧妙的方法把Windows的编程复杂性封装起来,提供了一种所见即所得的可视化程序设计方法。VB6是指Visual Basic 6.0的版本。

1.2.2事件驱动编辑

Windows操作系统出现以来,图形化的用户界面和多任务多进程的应用程序要求程序设计不能是单一性的,在使用VB设计应用程序时,必须首先确定应用程序如何同用户进行交互.例如发生鼠标单击、键盘输入等事件时,由用户编写的代码控制这些事件的响应,这就是所谓的事件驱动编程。

1.2.3实现菜单选项

菜单是程序最重要的特性之一,大多数程序都依赖一个定义良好的菜单使程序易于使用和维护,Visual Basic 也提供了强大的创建菜单功能是程序更加标准。

本系统使用 Visual Basic 的菜单编辑器建立菜单或者修改已经存在的菜单,您也可以使用Visual Basic 的Application Wizard 来操作。

1.2.4实现工具栏

CoolBar控件与Office2000 中看到的CoolBar是类似的。CoolBar就是一个可以在窗体上浮动的工具,同时也是其他ActiveX的容器。通过在CoolBar中迁入其他空间你也可以向用户提供更好的灵活性和义用性。

选择“工程”下拉菜单中的“部件”选项,显示“部件”对话框。在“控件”选项卡列表中选择“Microsoft Windows Common Controls 6.0”后工具相中增加改控件。

本系统就用了Cool工具中的Statubar控件,在系统这一界面中,添加了状态栏,在第一个栏中,在样式这一栏中选择了文本,在第二个栏中,选择了系统日期,第三个栏中选择了系统时间,这样,任何时候操作本系统,都可以看到当前的时间和日期。

1.3 Access2000数据库

数据库是一种存储数据并对数据进行操作的工具。数据库的作用在于组织和表达信息,简而言之,数据库就是信息的集合。计算机的数据库可以分为两类:非关系数据库(flat-file)和关系数据库(relational)。关系数据库中包含了多个数据表的信息,数据库含有各个不同部分的术语,对象记录、域等。

  1. 新建一个数据库

创建任何一个数据库的第一步是仔细的规划数据库,设计必须是灵活的、有逻辑的。创建一个数据库结构的过程被认为是数据模型设计。

  1. 标识需要的数据;
  2. 收集被标识的字段到表中;
  3. 标识主关键字字段;
  4. 绘制一个简单的数据图表;
  5. 规范数据;
  6. 标识指定字段的信息;
  7. 创建物理表。
  1. 修改已建的数据库

数据库的修改分为:添加、编辑和删除记录。这三种操作均可由Visual Basic 创建的程序来完成,下面的章节将详细描述实现的具体方法。

  1. 实现数据库之间的联系

数据库之间的关系指明两个库之间共享一个共同的关键字值。一个连接是指一种虚拟的表,这种表是在当用户要求从相互关联的各个不同的表中获取信息时建立的,关键字段用于在相互连接的不同表中查找匹配的记录。一个更高级的连接形式称为自连接。这种连接是指一个表被连接到它自己的一个字段,或在不同的记录中由重复数据的组合字段。数据库中有三种不同类型的关键字:主关键字、组合关键字和外关键字。在表中使用的关键字类型用于描述库表示什么以及在数据库中如何与其它的库建立关系。

1.4 VB6和Access的连接

在进行系统开发时,一个很重要的步骤就是建立数据库的连接,即访问数据库。VB6提供了多种方式访问数据库,其中以ODBC与ADO应用最多。早期还有RDO,DAO等。

1.4.1 ODBC连接数据库

ODBC(Open Database Connectivity,开放数据库连接)是微软开放服务结构中有关数据库的一个组成部分。它建立了一组规范,并提供了一组应用程序调用接口。用这样一组接口建立的应用程序,对数据库的操作不依赖于任何数据库管理系统,不直接与任何DBMS打交道,由此可实现应用程序对不同DBMS的共享。数据库操作的“数据源”对应用程序是透明的,所有的数据库操作由对应DBMS的ODBC驱动程序(ODBC Driver)完成。有了ODBC驱动程序,数据源就变得十分广泛,它可以是本机的某种数据库格式的文件(如本机DOS目录下的Access文件*.mdb),也可以是远程数据库文件(如Microsoft SQL Server);它可以是目前已知的某种DBMS格式,也可以是一种全新的数据库格式。

在ODBC方式中,不管底层网络环境如何,也无论采用何种DBMS,用户在程序中都使用同一套标准代码,源程序可以不因底层的变化而重新编建或修改,从而减轻了开发维护的工作量,缩短了开发周期。但ODBC访问数据库的速度较慢,而且需为每个客户端配置ODBC数据源。

1.4.2 ADO连接数据库

微软公司的ADO (ActiveX Data Objects) 是一个用于存取数据源的COM组件。它提供了编程语言和统一数据访问方式OLE DB的一个中间层。允许开发人员编写访问数据的代码而不用关心数据库是如何实现的,而只用关心到数据库的连接。访问数据库的时候,关于SQL的知识不是必要的,但是特定数据库支持的SQL命令仍可以通过ADO中的命令对象来执行。

ADO包含一些顶层的对象:

连接,代表到数据库的连接

记录集,代表数据库记录的一个集合

命令,代表一个SQL命令

记录,代表数据的一个集合

流,代表数据的顺序集合

错误,代表数据库访问中产生的意外

字段,代表一个数据库字段

参数,代表一个SQL参数

属性,保存对象的信息

ADO向VB程序员提供了很多好处。包括易于使用,熟悉的界面,高速度以及较低的内存占用。同传统的数据对象层次(DAO和RDO)不同,ADO可以独立创建。因此你可以只创建一个"Connection"对象,但是可以有多个,独立的"Recordset"对象来使用它。ADO针对客户/服务器以及WEB应用程序作了优化。

ADO 是基于OLE DB的访问接口,它是面向对象的OLE DB技术,继承了OLE DB的优点。属于数据库访问的高层接口。开发人员在使用ADO时,其实就是在使用OLE DB,不过OLE DB更加接近底层。ADO向我们提供了一个熟悉的,高层的对OLE DB的Automation封装接口。

             

         图1.1 VB应用程序与数据库的连接

                          第二章 系统分析

2.1系统的可行性分析

可行性分析的任务,并不是所有问题都有简单明显的解决办法,事实上,许多问题不可能在预定的系统规模之内解决。如果问题没有可行的解,那么花费这项开发工程上的任何时间、资源、人力和经费都是无谓的浪费。

可行性研究的目的就是用最小的代价在尽可能短的时间内确定问题是否能够解决。必须记住,可行性研究的目的不是解决问题,而是确定问题是否值得去解。怎样达到这个目的呢?当然不能靠主观猜想,而只能靠客观分析。必须分析几种主要的可能解法的利弊,从而判断原定的系统目标和规模是否现实,系统完成后所能带来的效益是否大到值得投资开发这个系统的程度。

因此,可行性研究实质上是要进行一次大大压缩简化了的系统分析和设计的过程,也就是在较高层次上以较抽象的方式进行的系统分析和设计的过程。所以从以上的分析原则来看,我所设计的仓库信息管理系统是一个规模不太大的系统,但是目标明确,清晰的描述了对目标系统的一切限制和约束。本系统几乎在所有的企业、公司使用,当然它需要进一步的完善和更新。在使用过程中,要看它能不能带来效益,毕竟在现今社会效率是第一位的。从现实看,这还是有一定的实用价值的,从另一个角度看,现实社会发展飞速,尊重科技势在必行,因此这也是开发本系统的一个非常重要的原因。21世纪是计算机的时代,它必然取代一部分人的工作,高科技的监控系统进入社会生活的方方面面是发展的趋势。

本设计从以下三个方面进行可行性研究:

1)技术可行性。本设计“仓库管理系统”是为企业仓库管理人员开发的。鉴于本人在上学期数据库课程设计中已用Visual Basic6.0+Access2000开发过网上图书销售管理信息系统,而且通过三个月毕业实习中的学习和实践,对开发管理信息系统又有了新的认识和提高,使自己在开发管理信息系统方面的技术更加成熟。由于本设计最重要体现的是实用性,所以,通过大量的社会调查和分析,结合自己现有的技术水平加上导师的指导,还是能按期完成本毕业设计。

2)经济可行性。成本方面:由于本毕业设计属于计算机科学(本科)教学的最后一个环节,所以人力消耗免费,资源学校提供,指导老师义务指导。所以成本计算只需计算开发期间开发者的生活消费,学校资源的消耗,所以开发本软件的成本是非常低的。效益方面:为企业开发一个完整、合理的仓库管理系统,可大大节余人力,以前需要多人干的工作,使用本系统只需一个人或几个人就能完成,且工作量和劳动强度大大降低。所以开发本软件可以为社会带来很好的经济效益。

从以上分析看开发本软件在经济上是可行的。

3)操作可行性。本软件是为企业仓库的管理者开发的,所有本软件的用户对象是企业仓库的工作人员,由于本软件要设计成友好的界面,写出详细的使用说明,用户只需懂得简单的计算机操作知识,就能自由应用本软件。

所以从以上几个方面的分析来看,开发本软件是完全可行的。

2.2要求分析

软件需求分析是软件开发周期的第一个阶段,也是关系到软件开始成败的关键步骤。准确、完整和规范化的软件需求是软件开发成功的关键。

在研究了公司的原始资料及要求后,画出了系统的数据流程图如下2-1图所示。

图2-1 仓库管理系统数据流程图

2.3详细资料的收集 

进过对仓库管理系统的了解,在该业务的范围内共包括供应商名称、部门管理、货品类型、货品管理、单位名称、采购入库、采购退库、生产出库、生产退库、仓库借还、仓库报损等表格内容。具体的表格如下:

表2-1供应商名称:

单位

…….

表2-2部门管理:

部门

…….

表2-3货品类型:

编号

类型

……

……

表2-4货品管理:

编号

类型

单位

规格

价格

上限

下限

备注

……

……

……

……

……

……

表2-5单位名称

单位

……

表2-6采购入库

入库编号

日期

货品编号

货品类别

单位

规格

单价

数量

金额

备注

……

……

……

……

……

……

……

……

……

……

表2-7采购退库

退库编号

日期

部门

货品编号

货品类别

单位

规格

单价

数量

金额

备注

……

……

……

……

……

……

……

……

……

……

……

表2-8生产出库

出库编号

日期

部门

货品编号

货品类别

单位

规格

单价

数量

金额

备注

……

……

……

……

……

……

……

……

……

……

……

表2-9生产退库

退库编号

日期

部门

货品编号

货品类别

单位

规格

单价

数量

金额

备注

……

……

……

……

……

……

……

……

……

……

……

表2-10仓库借还

借出编号

日期

部门

货品编号

货品类别

单位

规格

单价

数量

金额

备注

……

……

……

……

……

……

……

……

……

……

……

表2-11仓库报损

报损编号

日期

部门

货品编号

货品类别

单位

规格

单价

数量

金额

备注

……

……

……

……

……

……

……

……

……

……

……

                         第三章 系统设计

3.1系统总体设计

3.1.1系统目标设计

系统开发的总体任务是实现企业产品管理的系统化、规范化和自动化,从而达到提高企业管理效率的目的。

3.1.2开发设计思想

仓库管理主要是企业各种商品的管理。进货时经检查合同确认为有效托收后,进行验收入库,填写入库单,进行入库登记。企业各个部门根据需要提出产品请求,计划员根据整个企业的需求开出产品出库单,仓库管理人员根据出库单核对发放产品。根据需要按照月进行统计分析,产生相应报表。

仓库管理的特点是信息处理量比较大,所管理的产品种类繁多,而且由于入库单、出库单、盘点单等单据发生量特别大,关联信息多,查询和统计的方式各不相同。因此在管理上实现起来有一定的困难。在管理的过程中经常会出现信息的重复传递;单据、报表种类繁多,各个部门管理规格不统一等问题。

在本系统的设计过程中,为了克服这些困难,满足计算机管理工作的需要,我们采取了下面的一些原则。

  1. 统一各种原始单据的格式,统一报表的格式。
  2. 删除不必要的管理冗余,实现管理规范化、科学化。
  3. 程序代码标准化,软件统一化,确保软件的可维护性和实用性。
  4. 界面尽量简单化,做到实用、方便,尽量满足企业中不同层次员工的需要。
  5. 建立操作日志,系统自动记录所进行和各种操作。

3.1.3系统功能需求分析

系统开发的总体任务是实现各种信息的系统化、规范化和自动化。系统功能分析是在系统开发的总体任务的基础上完成。本仓库管理系统需要完成功能主要有:

  1. 仓库管理各种信息的输入,包括货物、供应商、客户、仓库信息的输入等。
  2. 仓库管理各种信息的查询、统计、修改和维护,包括货物、单据查询,货物出入、职员操作统计,各种信息的修改和维护等。
  3. 打印报表的生成。
  4. 在货物管理中加入最高储备和最低储备字段,对仓库中的产品实现监控和报警。
  5. 操作日志的管理。
  6. 仓库管理系统的使用帮助。

3.1.4系统功能模块设计

在系统功能分析的基础上,考虑到Visual Basic程序编制的特点,得到如图3-1所示的系统功能模块图。

                    图3-1 系统功能模块图。

3.2数据库设计

3.2.1数据库需求分析

用户的需求具体体现在各种信息的提供、保存、更新和查询,这就要求数据库结构能充分满足各种信息的输出和输入。收集基本数据、数据结构以及数据处理的流程,组成一份详尽的数据字典,为后面的具体设计打下基础。

仔细分析调查有关仓库管理信息需求的基础上,得到如图3-1所示的本系统所处理的数据流程。

图3-1 仓库管理系统数据流程图

通过对企业仓库管理的内容和数据流程分析,设计数据项和数据结构如下:

  1. 基本资料,包括的供应商名称、部门管理、货品类别、货品管理、单位名称等。
  2. 采购入库,包括的数据项有入库编号、日期、货品编号、货品类别、单位、规格、单价、数量、金额、备注等。
  3. 采购退库,包括的数据项有退库编号、日期、货品编号、货品类别、单位、规格、单价、数量、金额、备注等。
  4. 生产出库,包括的数据项有出库编号、日期、货品编号、货品类别、单位、规格、单价、数量、金额、备注等。
  5. 生产退库,包括的数据项有退库编号、日期、货品编号、货品类别、单位、规格、单价、数量、金额、备注等。
  6. 进行月盘点信息,包括的数据项有货品编号、货品名称、单位、规格、用量、库存等。
  7. 用户管理信息,包括的数据项有用户名、用户密码、用户权限等。

另外,还有仓库借还、仓库报损信息等。它们与入库、出库信息基本类似,这里不再一一例举。

3.2.2数据库概念结构设计

得到上面的数据项和数据结构以后,就可以设计出能够满足用户需求的各种实体结构,以及他们之间的关系,为以后的逻辑结构设计打下基础。

根据上面的设计规划出的实体有:现有库存信息实体、入库信息实体、出库信息实体、借入信息实体、借出信息实体、调拨信息实体图和报损信息实体图。各个实体具体的描述E-R图如下:

供应商名称信息实体E-R图如图3-2所示。

             图3-2 供应商名称信息实体E-R图

部门管理信息实体E-R图如图3-3所示。

              图3-3 部门管理息实体E-R图

货品类别信息实体E-R图如图3-4所示。

              图3-4 货品类别实体E-R图

货品管理信息实体E-R图如图3-5所示。

                  图3-5 货品管理实体E-R图

采购入库信息实体E-R图如图3-6所示。

                  图3-6 采购入库信息实体E-R

采购退库信息实体E-R图如图3-7所示。

                图3-7 采购退库信息实体E-R

仓库报损信息实体E-R图如图3-8所示。

                图3-8 报损信息实体E-R

实体和实体之间的关系E-R图如图3-9所示。

图3-9  实体之间关系E-R图

3.2.3数据库逻辑结构设计

现在需要将在上面的数据库概念结构转化为ACCESS 2000 数据库系统所支持的实际数据模型,也就是数据库的逻辑结构。

仓库管理信息系统数据库中各个表格的设计结果如下面表格所示。每个表格所示在数据库中的一个表。

表3-1为部门管理信息表。

表3-1                 部门管理信息表

字段名称

数据类型

字段大小

可否为空

部门

文本

50

不可

 表3-2为采购入库信息表

表3-2                  采购入库信息表

字段名称

数据类型

字段大小

可否为空

入库编号

文本

50

不可

日期

文本

50

不可

货品编号

文本

50

不可

货品类别

文本

50

不可

单位

文本

50

不可

规格

文本

50

不可

单价

文本

50

数量

数字

长整型

金额

货币

备注

备注

    表3-3为采购退库状况信息表

表3-3               采购退库状况信息表

字段名称

数据类型

字段大小

可否为空

退库编号

文本

50

不可

日期

文本

50

不可

部门

文本

50

不可

货品编号

文本

50

不可

货品类别

文本

50

不可

单位

文本

50

不可

规格

文本

50

不可

单价

文本

50

数量

数字

长整型

金额

货币

备注

备注

表3-4为生产出库状况信息表

表3-4                   生产出库状况信息表

字段名称

数据类型

字段大小

可否为空

出库编号

文本

50

不可

日期

文本

50

不可

部门

文本

50

不可

货品编号

文本

50

不可

货品类别

文本

50

不可

单位

文本

50

不可

规格

文本

50

不可

单价

文本

50

数量

数字

长整型

金额

货币

备注

备注

表3-5为生产退库状况信息表

表3-5                   生产退库状况信息表

字段名称

数据类型

字段大小

可否为空

退库编号

文本

50

不可

日期

文本

50

不可

部门

文本

50

不可

货品编号

文本

50

不可

货品类别

文本

50

不可

单位

文本

50

不可

规格

文本

50

不可

单价

文本

50

数量

数字

长整型

金额

货币

备注

备注

表3-6为仓库借还状况信息表

表3-6                仓库借还状况信息表

字段名称

数据类型

字段大小

可否为空

借出编号

文本

50

不可

日期

文本

50

不可

部门

文本

50

不可

货品编号

文本

50

不可

货品类别

文本

50

不可

单位

文本

50

不可

规格

文本

50

不可

单价

文本

50

数量

数字

长整型

金额

货币

备注

备注

表3-7为仓库报损情况信息表

表3-7            仓库报损情况信息表

字段名称

数据类型

字段大小

可否为空

报损编号

文本

50

不可

日期

文本

50

不可

部门

文本

50

不可

货品编号

文本

50

不可

货品类别

文本

50

不可

单位

文本

50

不可

规格

文本

50

不可

单价

文本

50

数量

数字

长整型

金额

货币

备注

备注

表3-8为权限情况信息表

 表3-8              权限情况信息表

字段名称

数据类型

字段大小

可否为空

编号

文本

50

不可

用户名

文本

50

不可

表3-9为用户管理信息表

表3-9               用户登陆管理信息表

字段名称

数据类型

字段大小

可否为空

用户名

文本

64

不可

用户密码

文本

50

不可

                    

                          第四章 系统实现

4.1登陆窗体

登陆窗体的设计主要是实现用户权限登陆仓库管理系统,起到对系统的安全保密作用。

               

登陆窗体代码如下:

Private Sub Command1_Click()

Dim Sql As String

Dim UintRs As ADODB.Recordset

Dim UintSql As String

Dim MightRs As ADODB.Recordset

Dim MightSql As String

If Trim(Text1.Text) = "" Then

    MsgBox "用户名不能为空!", vbInformation, "系统登陆提示"

    Text1.SetFocus

    Exit Sub

End If

If Trim(Text2.Text) = "" Then

    MsgBox "密码不能为空!", vbInformation, "系统登陆提示"

    Text2.SetFocus

    Exit Sub

End If

Sql = "select * from username where 用户名='" & Trim(Text1.Text) & "'"

Set Rs = ExeSQL(Sql)

 If Rs.Fields(1) = Trim(Text2.Text) Then

     StockName = Rs.Fields(0)                    '保存用户名

     '保存用户权限

     For i = 0 To 24

        UserMight(i) = ""

     Next i

     MightSql = "select * from might where 用户名='" & StockName & "'"

     Set MightRs = ExeSQL(MightSql)

     While Not MightRs.EOF

            UserMight(Val(MightRs.Fields(0))) = MightRs.Fields(0)

            MightRs.MoveNext

     Wend

    MightRs.Close

     '保存单位名称

     UintSql = "select * from 单位名称"

     Set UintRs = ExeSQL(UintSql)

     If UintRs.EOF = False Then

        UintName = UintRs.Fields(0)

     Else

        UintName = ""

     End If

     UintRs.Close

     '显示主程序

     Rs.Close

     Unload Me

     FrmMain.Show 1

 Else

     MsgBox "用户名或密码有误!", vbInformation, "系统登陆提示"

     Text1.SetFocus

End If

End Sub

Private Sub Command2_Click()

End

End Sub

Private Sub Form_Load()

  Text1.Text = ""

  Text2.Text = ""

  If App.PrevInstance = True Then

    End

    MsgBox "程序已经运行.", vbOKOnly + vbInformation, "系统提示"

  End If

End Sub

4.2系统主窗体设计

4.2.1创建工程项目-伊犁州移动分公司仓库设备管理系统

打开Visual Basic 后,单击File -> New Project 菜单,在工程模板中选择Standard ExE,Visual Basic将自动产生一个Form窗体,属性都是缺省设置。这里我们删除这个窗体,单击File->Save Projiect菜单,将这个工程项目命名为伊犁州移动分公司仓库设备管理系统。

4.2.2创建主窗体工具栏

Visual Basic 创建的应用程序可以是SDI(单文档界面)和MDI(多文档界面)。在SDI的程序中,每个窗体之间是独立的。而MDI的程序中,有一个窗体是主窗体,可以包含其他窗体,他的类型是MDI Form 。本设计采用多文档界面,这样可以使程序更加美观、整齐有序。单击工具栏中的ADD MDI Form 按钮,生成一个窗体。窗体的属性设置见表4-1。

表4-1 主窗体属性设置

       属性

     属性取值

Name

FrmMain

Caption

伊犁移动仓库管理系统

StartUpPosition

屏幕中心

WindowState

Normal

主窗体界面设计如图4-1所示:            

4.2.3创建主窗体菜单

熟悉Windows下应用程序的用户对菜单一定有比较深的印象。所谓菜单,即是指应用程序中为用户提供的一组命令,这些命令出现在应用程序界面的顶部。每项菜单有多项子菜单,具有一定的专门功能,用户容易通过主菜单来访问其下的子菜单。增加菜单可以增强应用程序的功能。下面将介绍菜单及菜单的编辑和使用。

1)菜单简介

    菜单栏在窗体栏的标题栏下面,包含一个或多个菜单标题。当单击一个菜单标题,包含菜单项目的列表就被拉下来。菜单项可以包含命令、分隔条和子菜单标题。用户看到的每个菜单项和在“Menu Editor”中定义的一个菜单控件相对应。

    为了使应用程序简单好用,应该将菜单相按功能进行分组。菜单控件使一个对象,与其他对象一样,它具有定义它的外观与行为的属性。在设计或运行时可以设置Caption 属性、Enabled和Visible属性、Checked属性以及其他属性。菜单控件只包含一个事件,即Click事件,当用鼠标或键盘选中该菜单控件时,将调用该事件。

2) Visual Basic菜单编辑器

    菜单编辑器可以创建新的菜单和菜单栏,也可以向现存的菜单中增加新的命令、用自己的命令替代现存的菜单命令、产生新的菜单和菜单栏,改变和删除现存菜单和菜单栏。

   要打开菜单编辑器,在“Tools”菜单中选择“Menu Editor”选项。或击鼠标右键,选择弹出式菜单中的“Menu Editor”。弹出菜单编辑器窗口如图4-2所示。

图4-2菜单编辑器

菜单编辑器的基本属性如下:

Caption—出现在控件上的文本。

   Name—代码中用来引用菜单控件的名字。

   shortcut—可以访问菜单的键盘按键组合。

以上介绍了菜单编辑器的基本情况和属性,接下来将来介绍利用菜单编辑器创建菜单的过程。

  1. 选取待创建菜单的窗体,激活该窗体。
  2. 从菜单栏的“Tools”菜单中,选取“Menu Editor”并单击(或在“工具栏”上单击“Menu Editor”按钮)。
  3. 在菜单编辑器的“Caption”文本框中,为第一个菜单标题键入希望在菜单栏上显示的文本。如果希望某一字符成为该菜单项的访问键,也可以在该字符前加上一个(&)字符。在菜单中,这一字符会自动加上一条下划线。
  4. 在菜单编辑器的“Name”文本框中,键入将用来在代码中引用该菜单控件的名字。命名菜单控件的规则如下:
  5. 菜单中项目名称应当唯一,但不同菜单中相似动作项目可以重名。
  6. 每一个项目名称应当有一个用键盘选取命令的唯一的记忆访问字符。访问字符通常是菜单标题的第一个字母;每个菜单标题不能用同一个字符。
  7. 如果命令在完成之前还需要附加信息,则在其名称后面应当有一个省略号(…)。
  8. 单击向左或向右箭头按钮,可以改变该控件的缩进级。
  9. 如果需要,还可以设置控件的其他属性。
  10. 创建新的菜单控件时,选取“Next”命令。
  11. 单击“Insert”可以在现有的控件之间增加一个菜单控件。
  12. 单击向上与向下的箭头按钮,可以在现有菜单控件之中移动控件。
  13. 菜单控件创建好后,选取“OK”可关闭菜单编辑器。

创建的菜单标题将显示在窗体上。在设计时,单击一个菜单标题可下拉其相应的菜项。

创建分隔符,如果在设计的菜单中创建分隔符条,只需在想要分隔开来的菜单项之间插入一个菜单控件。单击左、右箭头按钮使新菜单项缩进到与它要隔开的菜单项同级。然后在“Caption”文本框中键入一个连字符(-)。设置“Name”属性。“OK”,关闭菜单编辑器。

创建赋值访问键和快捷键

    为了提高应用程序的性能,为用户提供最方便、快捷的操作,可以定义菜单的访问键和快捷键,改进键盘对菜单命令的访问。

根据以上介绍的方法创建本设计的菜单结构如图4-3所示

图4-3 仓库管理系统菜单结构

系统初始化菜单的代码如下:

Dim Admin As String         '返回权限

Private Sub base1_Click()

Admin = AdminGo(UserMight(0))

If Admin <> "" Then

    computation.Show 1

End If

End Sub

Private Sub base2_Click()

Admin = AdminGo(UserMight(1))

If Admin <> "" Then

    department.Show 1

End If

End Sub

Private Sub base3_Click()

Admin = AdminGo(UserMight(2))

If Admin <> "" Then

    sort.Show 1

End If

End Sub

Private Sub base4_Click()

Admin = AdminGo(UserMight(3))

If Admin > "" Then

    manage.Show 1

End If

End Sub

Private Sub base5_Click()

Unit.Show 1

End Sub

Private Sub base6_Click()

Admin = AdminGo(UserMight(4))

If Admin <> "" Then

Unit.Show 1

End If

End Sub

Private Sub base7_Click()

Admin = AdminGo(UserMight(5))

If Admin <> "" Then

    stockbalance.Show 1

End If

End Sub

Private Sub dbhandle1_Click()

Admin = AdminGo(UserMight(20))

If Admin <> "" Then

    OKBackup   '数据备份

End If

End Sub

Private Sub dbhandle2_Click()

Admin = AdminGo(UserMight(21))

If Admin <> "" Then

    Back                    '数据恢复

End If

End Sub

Private Sub dbhandle3_Click()

Admin = AdminGo(UserMight(22))

If Admin <> "" Then

    dataclear.Show 1

End If

End Sub

Private Sub help2_Click()

about.Show 1

End Sub

Private Sub report1_Click()

Admin = AdminGo(UserMight(13))

If Admin <> "" Then

    FormName = "采购入库"

    stockfind.Show 1

End If

End Sub

Private Sub report2_Click()

Admin = AdminGo(UserMight(14))

If Admin <> "" Then

    FormName = "采购退库"

    fullfind.Show 1

End If

End Sub

Private Sub report3_Click()

Admin = AdminGo(UserMight(15))

If Admin <> "" Then

    FormName = "生产出库"

    fullfind.Show 1

End If

End Sub

Private Sub report4_Click()