甘肃广播电视大学
题 目:
姓 名:
学 号:
专 业:
指导老师:
设计日期:毕 业 论 文 仓库管理系统 雷伟玲 [1**********]60 计算机信息与管理 任红云 2011年 12 月 10 日
仓库管理系统
[摘要] 仓库管理系统是为了实现企业产品管理的系统化、规范化和自动化,从而提高企业管理效率而设计的。它完全取代了原来一直用人工管理的工作方式,避免了由于管理人员的工作疏忽以及管理质量问题所造成的各种错误,为及时、准确、高效的完成仓库管理提供了强有力的工具和管理手段。仓库管理系统是一个中小型数据库管理系统,它界面美观、操作简单、安全性高,基本满足了仓库管理的要求。整个系统由基本管理、查询统计、报表打印、维护设置、帮助等模块组成。
本系统是在以ACCESS 2000作为后台数据库,以Visual Basic为编程语言来开发的。仓库管理系统在运行阶段,效果好,数据准确性高,提高了工作效率,同时也实现了仓库管理计算机化。
关键字:仓库,管理系统,Access数据库
The administrative system of the warehouse
[Abstract] The administrative system of the warehouse is designed for realizing the systematization , standardization and atomization 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 offers powerful tool and management way to complete 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 ACCESS 2000 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.
Keywords: The Warehouse, Administrative System, the Database of Access
目录
前言 ........................................................................ 1
第一章 绪论 ................................................................. 2
1.1仓库管理系统研究背景及意义 .......................................... 2
1.2 VB语言的基本特点及VB应用程序的基本特点 ............................ 2
1.2.1可视化设计 .................................................... 2
1.2.2事件驱动编程 .................................................. 3
1.2.3实现菜单选项 .................................................. 3
1.2.4实现工具栏 .................................................... 3
第二章 相关理论基础 ......................................................... 4
2.1 Visual Basic 6.0 .................................................... 4
2.1.1 Visual Basic 6.0 的功能特点 ................................... 4
2.1.2 Visual Basic 6.0 中的基本概念 ................................. 5
2.2 Access 2000 数据库 .................................................. 5
2.2.1 Access的总体结构 ............................................. 6
2.2.2 VB 6.0 和Access的连接 ........................................ 6
第三章 系统分析 ............................................................. 8
3.1需求分析 ............................................................ 8
3.1.1系统功能的基本要求 ............................................ 8
3.1.2数据库要求 .................................................... 8
3.1.3系统数据流程图 ................................................ 8
3.1.4功能需求及设计思想 ............................................ 9
3.1.5数据库需求分析 ............................................... 10
3.2可行性分析 ......................................................... 11
第四章 系统设计 ............................................................ 13
4.1系统分析 ........................................................... 13
4.1.1系统功能分析 ................................................. 13
4.2系统总体设计 ....................................................... 13
4.2.1系统目标设计 ................................................. 13
4.2.2开发设计思想 ................................................. 13
4.2.3系统功能设计 ................................................. 14
4.2.4系统各模块说明 ............................................... 14
4.3数据库设计 ......................................................... 15
4.3.1数据库概念结构设计 ........................................... 15
4.3.2数据库逻辑结构设计 ........................................... 16
4.4 系统主窗体设计 ..................................................... 19
4.4.1 创建工程项目——仓库管理系统 ................................. 19
4.4.2创建系统主窗体 ............................................... 19
4.4.3创建主窗体菜单 ............................................... 19
4.4.4创建主窗体工具栏 ............................................. 20
第五章 系统实现 ............................................................ 22
5.1数据库实现 ......................................................... 22
5.1.1连接数据库 ................................................... 22
5.2系统模块 ........................................................... 22
5.2.1基本管理模块 ................................................. 22
5.2.2查询统计模块 ................................................. 25
5.2.3报表打印模块 ................................................. 27
5.2.4维护设置模块 ................................................. 29
5.3输入输出 ........................................................... 30
5.4系统安全设计 ....................................................... 30
第六章 系统测试 ............................................................ 31
总结 ....................................................................... 32
致谢语 ..................................................................... 33
参考文献 ................................................................... 34
前言
随着企业管理信息化的发展,网络及计算机的引入使管理跃上了一个新的发展平台。管理信息系统已成为企业规范化、信息化、自动化管理系统的一部分,为了适应日趋激烈的市场竞争,企业需要对自身的经营状况有充分的了解,并通过有效的管理不断提高效率。因此,对仓库的管理也成为提高生产经营效率的一个重要途径。可见仓库的管理对于企业来说尤为重要,也正是基于这个原因我把毕业设计的方向定在了企业的仓库管理上。
仓库管理系统是一个企业不可缺少的部分,它的内容对于企业的决策者和管理者来说都至关重要,所以仓库管理系统应该能够为用户提供充足的信息和快捷的查询手段。但一直以来人们使用传统人工的方式管理产品,这种管理方式存在着许多缺点,如:效率低、保密性差等。另外,由于时间一长,将产生大量的文件和数据,这对于查找、更新和维护产品都带来了不少的困难。
作为计算机应用的一部分,使用计算机对仓库信息进行管理,有着手工管理所无法比拟的优点。例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高仓库管理的效率。
由于时间紧迫,加之水平有限,设计中的缺点和不足之处在所难免,敬请导师批评指正,不胜感激。
第一章 绪论
1.1仓库管理系统研究背景及意义
随着我国经济的飞速发展,各种类型规模的公司企业迅速崛起,许多从事生产和经营管理的企业都有自己生产和销售的产品,而这些产品都需要储存在仓库中,对于每个企业来说,随着企业规模的不断扩大,产品数量的急剧增加,所生产产品的种类也会不断地更新与发展,有关产品的各种信息量也会成倍增长。面对庞大的产品信息量,如何有效地管理仓库产品,对这些企业来说是非常重要的,仓库管理的重点是销售信息能否及时反馈,从而确保企业运行效益。而仓库管理又涉及入库、出库的产品、经办人员及客户等方方面面的因素,如何管理这些信息数据,是一项复杂的系统工程,充分考验着仓库管理员的工作能力,工作量的繁重是可想而知的,所以这就需要由仓库管理系统来提高仓库管理工作的效率,这对信息的规范管理、科学统计和快速查询,减少管理方面的工作量,同时对于调动广大员工的工作积极性,提高企业的生产效率,都具有十分重要的现实意义。
本仓库管理系统是在以Visual Basic为编程语言,以ACCESS 2000作为后台数据库而开发的一个数据库管理系统。下面简要介绍一下中文Visual Basic 6.0和Access 2000。
1.2 VB语言的基本特点及VB应用程序的基本特点
VB程序语言具有许多优秀的特性,用其设计应用程序时有两个基本特点:可视化设计和事件驱动编程。
1.2.1 可视化设计
同其他的一些可视化程序开发工具一样,VB具有可视化设计的特点,微软的Word在刚刚进入市场时,同WPS竞争的一个重要的功能砝码就是"所见即所得"的字处理功能,VB在设计应用程序界面时也可以说是"所见即所得".在设计时,头脑中所想象的应用程序界面,完全可以通过键盘鼠标以及徒手画出来,而不是编制大量的代码然后再编译生成,如果需要修改,也是利用键盘鼠标和手画,而底层的一些程序代码由VB自动生成或修改。
VB为用户提供大量的界面元素(在VB中称为控件对象),这些控件对象对于熟悉Windows应用程序的用户而言是一点也不陌生,如"窗体"、"菜单"、"命令按钮"、"工具按钮"、"检查框"等等,用户只需要利用鼠标、键盘把这些控件对象拖动到适当的位置,设置它们的大小、形状、属性等,就可以设计出所需的应用程序界面。
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中迁入其他空间你也可以向用户提供更好的灵活性和义用性。
本系统就用了Cool工具中的Statubar控件,在系统这一界面中,添加了状态栏,在第一个栏中,在样式这一栏中选择了文本,在第二个栏中,选择了系统日期,第三个栏中选择了系统时间,这样,任何时候操作本系统,都可以看到当前的时间和日期。
第二章 相关理论基础
本系统主要采用VB6 + Access2000相结合的技术来进行开发,用户界面的设计是用VB6来进行的,后台数据库使用Access2000。与数据库的连接则使用ADO的相关功能来完成的。
在系统需涉及的一些相关技术概述如下。
2.1 Visual Basic 6.0
Visual意为“可视化的”,指的是一种开发图形用户界面的方法,所以Visual Basic是基于Basic的可视化的程序设计语言。在Visual Basic中,一方面继承了Basic所具有的程序设计语言简单易用的特点,另一方面在其编程系统中采用了面向对象、事件驱动的编程机制,用一种巧妙的方法把Windows的编程复杂性封装起来,提供了一种所见即所得的可视化程序设计方法。VB6是指Visual Basic 6.0的版本。
2.1.1 Visual Basic 6.0 的功能特点
A) 具有面向对象的可视化设计工具:在VB中,应用面向对象的程序设计方法(OOP),把程序和数据封装起来视为一个对象,每个对象都是可视的。程序员在设计时只需用现有工具根据界面设计要求,直接在屏幕上“画”出窗口、菜单、按钮、滚动条等不同类型的对象,并为每个对象设置属性。程序员的编程工作仅限于编写相关对象要完成的功能程序,因而程序设计的效率可大大提高。
B) 事件驱动的编程机制:事件驱动是非常适合图形用户界面的编程方式。在图形用户界面的应用程序中,是由用户的动作即事件掌握着程序运行的流向,每个事件都能驱动一段程序的运行。程序员只要编写响应用户动作的代码,而各个动作之间不一定有联系。
C) 提供了易学易用的应用程序集成开发环境:在VB集成开发环境中,用户可设计界面、编写代码、调试程序,直至把应用程序编译成可执行文件在Windows中运行,使用户在友好的开发环境中工作。
D) 结构化的程序设计语言:VB6具有丰富的数据类型和结构化程序结构,作为一种程序设计语言,它还有如下一些特点:强大的数值和字符串处理功能;丰富的图形指令,可方便地绘制各种图形;提供静态和动态数组,有利于简化内存的管理;过程可递归调用,使程序更为简练;支持随机文件和顺序文件的访问;提供了一个可供应用程序调用的包含多种类型的图标库;具有完善的运行出错处理。
E)支持多种数据库系统的访问:利用数据控件可访问的数据库系统有:Microsoft Access、SQL server、DBASE、Microsoft FoxPro和Oracle等,也可以访问Microsoft Excel、Lotus1-2-3等多种电子表格。
F)支持动态数据交换(DDE)、动态链接库(DLL)和对象的链接与嵌入(OLE)技术。
G)完备的HELP联机帮助功能:与Windows环境下的软件一样,在VB中,利用帮助菜单和F1功能键,用户可以随时方便地得到所需要的帮助信息。VB帮助窗口中显示了有关的示例代码,通过复制、粘贴操作可获取大量的示例代码,为用户的学习和使用提供了极大的方便。
VB程序设计的概念就是面向对象的概念,对象就是数据(DATA)和代码(CODE)互相结合的综合体。Windows上面的每一个图标,包括窗口本身都是对象,如果没有任何事情发生,对象处于停顿状态。当存在外来事件时,程序段执行,它的执行是由外来事件决定的。因此是“事件”驱动的。
编写VB程序较为简单,首先将各个对象放在空白窗体上,然后将程序代码分别添加给对象或图标,将它们组合起来就可以随意运行了。
在VB中,窗体实际上是一个对象,VB的窗体含有许多内嵌特性,这使得用户界面部分的建立像是从一个目录中挑选一个个合适的控件,而不是从零开始一步一步地建立控件。这种开发者能亲眼看到的程序设计过程就是“可视化程序设计”(Visual Programming)。
2.1.2 Visual Basic 6.0 中的基本概念
对象:面向对象编程(OOP)的提法大家一定也很耳熟,虽然Visual Basic并不是完全的面向对象编程,但也利用了对象编程技术。对象简单地说就是大家经常看到的各种窗口、按钮、文本框甚至打印机等。
属性:如同电视有黑白、彩色之分一样,作为对象的Windows中的窗口也是有大有小,文本框的位置不可能完全一样,菜单要显示出不同的功能,这些都是由对象的属性决定的。不同对象的属性可能不同。属性一般决定了对象的位置、大小、显示等情况。
方法:就是对象能够做的事,如打印机对象就有打印(Print)方法、窗口对象支持隐藏(Hide)方法、很多对象支持移动(Move)方法等。
事件:就是对象对用户各种操作的反映情况。如用户用鼠标按一下按钮,就会触发按钮的“按”(Click)事件。
控件: Visual Basic中使用控件,简化了Windows中的窗口、按钮等对象的编程设计。每个控件都有各自的属性、事件及方法。只需修改这些特征你就可以随心所欲地编程了。最重要的是,你可以利用成千上万的各种扩充的控件来快速构造几乎能满足你任何要求的程序。例如,如果你不满意Windows简陋的媒体播放器,你就可以使用VB的多媒体控件在1小时以内设计一个完全自己风格的能够播放CD、VCD的多媒体播放器,而功能完全与之相当。
2.2 Access 2000 数据库
数据库是一种存储数据并对数据进行操作的工具。数据库的作用在于组织和表达信息,简而言之,数据库就是信息的集合。计算机的数据库可以分为两类:非关系数据库(flat-file)和关系数据库(relational)。关系数据库中包含了多个数据表的信息,数
据库含有各个不同部分的术语,对象记录、域等。
✧ 新建一个数据库
创建任何一个数据库的第一步是仔细的规划数据库,设计必须是灵活的、有逻辑的。创建一个数据库结构的过程被认为是数据模型设计。
✧ 修改已建的数据库
数据库的修改分为:添加、编辑和删除记录。这三种操作均可由Visual Basic 创建的程序来完成。
✧ 实现数据库之间的联系
作为Microsoft的office套件产品之一,Access已经成为世界上最流行的桌面数据库系统。Access与许多优秀的关系数据库一样,可以让你很容易地连接相关的信息而且还对其他的数据库系统有所补充。
Access还提供windows操作系统的高级应用程序开发系统。Access与其它数据库开发系统之间相当显著的区别就是:您不用写一行代码,就可以在很短的时间里开发出一个功能强大而且相当专业的数据库应用程序,并且这一愉快的过程是完全可视的。
2.2.1 Access的总体结构
Access将所有有名字的东西都成为对象(object),在Access 2000中,最重要的对象有表,查询,窗体,报表,宏和模块。
2.2.2 VB 6.0 和Access的连接
在进行系统开发时,一个很重要的步骤就是建立数据库的连接,即访问数据库。VB6提供了多种方式访问数据库,其中以ODBC与ADO应用最多。早期还有RDO,DAO等。
2.2.2.1 ODBC连接数据库
ODBC(Open Database Connectivity,开放数据库连接)建立了一组规范,并提供了一组应用程序调用接口。用这样一组接口建立的应用程序,对数据库的操作不依赖于任何数据库管理系统,不直接与任何DBMS打交道,由此可实现应用程序对不同DBMS的共享。数据库操作的“数据源”对应用程序是透明的,所有的数据库操作由对应DBMS的ODBC驱动程序(ODBC Driver)完成。有了ODBC驱动程序,数据源就变得十分广泛,它可以是本机的某种数据库格式的文件(如本机DOS目录下的Access文件*.mdb),也可以是远程数据库文件(如Microsoft SQL Server);它可以是目前已知的某种DBMS格式,也可以是一种全新的数据库格式。
在ODBC方式中,不管底层网络环境如何,也无论采用何种DBMS,用户在程序中都使用同一套标准代码,源程序可以不因底层的变化而重新编建或修改,从而减轻了开发维护的工作量,缩短了开发周期。但ODBC访问数据库的速度较慢,而且需为每个客户端配置ODBC数据源。
2.2.2.2 ADO连接数据库
微软公司的ADO (ActiveX Data Objects) 是一个用于存取数据源的COM组件。它提供了编程语言和统一数据访问方式OLE DB的一个中间层。允许开发人员编写访问数据的代码而不用关心数据库是如何实现的,而只用关心到数据库的连接。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封装接口。
图2.1 VB应用程序与数据库的连接
第三章 系统分析
3.1需求分析
需求分析是软件开发周期的第一个阶段,也是关系到软件开始成败的关键步骤。准确、完整和规范化的软件需求是软件开发成功的关键。
3.1.1系统功能的基本要求
产品入库管理,可以填写入库单,确认产品入库;
产品出库管理,可以填写出库单,确认出库;
借出管理,凭借条借出,然后能够还库;
初始库存设置,设置库存的初始值,库存的上下警戒限;
可以进行盘库,反映每月、年的库存情况;
可以查询产品入库情况、出库情况、当前库存情况,可以按出库单、入库单,产品、时间进行查询;
3.1.2数据库要求
在数据库中至少应该包含下列数据表:
库存情况表; 出库单表; 入库单表; 出库台帐; 入库台帐; 借条信息表,反映,借出人,借出时间,借出产品,借出数量,还库时间等。
其基本要求如下:
✧ 必须提交系统分析报告,包括系统的功能分析、系统的功能模块设计、数据库的数据字典,数据库的概念结构( E - R 图),数据库中的表、视图等;
✧ 程序设计的报告:包括程序的运行环境、开发环境、程序的详细设计(包括模块之间的关系,模块的功能、主要功能实现的程序段)
✧ 系统的源程序,包括数据库脚本程序。
3.1.3 系统数据流程图
在研究了用户提供的原始资料及要求后,画出了系统的数据流程图如下所示。
图3-1 数据流程图
3.1.4 功能需求及设计思想
3.1.4.1 总体架构思想
本仓库管理系统是利用Client/Server结构,即客户机/服务器模式。这种CS模式适用于局域网、安全性可以得到可靠的保证。它为数据提供了更安全的存取模式。响应速度快。程序开发具有很强的针对性,因此,操作界面漂亮,形式多样,可以充分满足客户自身的个性化要求。
图3-2 C/S结构示意图
3.1.4.2 物料管理模块
如果当前数量小于最小数量,则需出订单去采购,如果大于最大数量则不允许再出订单。自动订单是根据这个原则产生的。
3.1.4.3 供应商管理模块
供应商管理模块记录公司所有供应商的情况,以保证每个供应商都是经过认证的。并且为每个供应商编制一个统一的代码。以代码来代表供应商,可以减少数据库中的数据量。
供应商管理模块还包括公司的物料在供应商处的代码。就像我们去买东西,我们不但要知道去哪里买,还要知道买什么。供应商代码只提供我们去哪里买,而物料在供应商的代码则是解决了要买什么的问题。
系统为了统一管理,加强控制。将这两个信息结合在一起给出一个综合代码,这样处理有利于更好的分清每个物料及供应商之间的关系。为生产线提供更多的更全的数据。
3.1.4.4 产品管理模块
物料是指公司从供应商处买来的,是半成品。产品是公司生产的。同样,我们也需为公司的每一个产品编制一个代码。方便管理。另一方面,还需建立产品与物料之间的联系。即产品组成表。表示某个产品是由哪些物料组成的。在制作生产计划时,只需给出生产的产品代码,而无需给出每一个物料的代码。
3.1.4.5 订单管理模块
订单管理主要任务是产生订单。人为地去采购某一种物料,并且把这个订单记录到系统中去。手工下单只能一个一个产生订单。
订单是仓库进行收料操作的基础。
3.1.4.6 仓库收料
仓库根据系统发出的订单进行收料。
3.1.4.7 生产计划管理模块
此模块主要是管理生产计划。根据产品及生产数量,日期等不同将生产分为一批一批,利用生产计划号,即工单号来区分。每次计划产生前,系统会根据产品组成表提供的信息来检验当前的物料状况,如果物料不能满足此次生产,则不能成功产生生产计划。 仓库的发料也是根据生产计划来进行的。每个生产计划都会自动产生一个发料清单。
3.1.4.8 仓库发料
仓库根据生产计划给出的工单号来进行发料。发料时,即可以一次性发多个料,即按工单发料;也可以按物料一个一个来发。可自由选择。也可以两种方法结合在一起来发料。
3.1.4.9 生产增料和退料
生产增料代表了生产损耗。为了核算每批产品的生产成本,因此增料操作需按生产计划号来进行。即每个生产增料都需确定到每个计划号,因此增料是以生产计划号为基础的。
生产退料是生产线将好的物料退回给仓库。
3.1.4.10 盘点管理
仓库每月,每季及每年都要进行盘点。盘点时需提供盘点报表及盘点调整。
3.1.4.11 报表与查询
需提供根据各种条件来得到查询结果。条件即可以是单个条件也可以组合条件。查询结果分为三个部分,一部分是基本信息,另一部分是订单信息,以及生产计划信息。
3.1.4.12操作日志
记录系统内主要的数据的操作,以便日后查询所需。
3.1.5数据库需求分析
用户的需求具体体现在各种信息的提供、保存、更新和查询,这就要求数据库结构能充分满足各种信息的输出和输入。收集基本数据、数据结构以及数据处理的流程,组成一份详尽的数据字典,为后面的具体设计打下基础。
仔细分析调查有关仓库管理信息需求的基础上,得到如图4-2所示的本系统所处理的数据流程。
图3-3 仓库管理系统数据流程图
通过对企业仓库管理的内容和数据流程分析,设计数据项和数据结构如下:
✧ 库存状况信息,包括的数据项有品名、规格、导电、硬度、数量、单位等
✧ 入库单信息,包括的数据项有品名、规格、导电、硬度、数量、单位、入库日期、入料人编号、入料人、经手人、入库标识、自动编号、说明等
✧ 出库单信息,包括的数据项有品名、规格、导电、硬度、数量、单位、毛坯尺寸、毛坯数量、成品尺寸、成品数量、余料、报废、出库日期、领料人编号、领料人、经手人、说明等
用户管理信息,包括的数据项有用户名、用户密码、用户权限等。
3.2可行性分析
可行性分析的任务,并不是所有问题都有简单明显的解决办法,事实上,许多问题不可能在预定的系统规模之内解决。如果问题没有可行的解,那么花费这项开发工程上的任何时间、资源、人力和经费都是无谓的浪费。
可行性研究的目的就是用最小的代价在尽可能短的时间内确定问题是否能够解决。必须记住,可行性研究的目的不是解决问题,而是确定问题是否值得去解。怎样达到这个目的呢?当然不能靠主观猜想,而只能靠客观分析。必须分析几种主要的可能解法的利弊,从而判断原定的系统目标和规模是否现实,系统完成后所能带来的效益是否大到值得投资开发这个系统的程度。
因此,可行性研究实质上是要进行一次大大压缩简化了的系统分析和设计的过程,也就是在较高层次上以较抽象的方式进行的系统分析和设计的过程。所以从以上的分析原则来看,我所设计的仓库信息管理系统是一个规模不太大的系统,但是目标明确,清晰的描述了对目标系统的一切限制和约束。本系统几乎在所有的企业、公司使用,当然它需要进一步的完善和更新。在使用过程中,要看它能不能带来效益,毕竟在现今社会效率是第一位的。从现实看,这还是有一定的实用价值的,从另一个角度看,现实社会发展飞速,尊重科技势在必行,因此这也是开发本系统的一个非常重要的原因。21世纪是计算机的时代,它必然取代一部分人的工作,高科技的监控系统进入社会生活的方方面面是发展的趋势。 本设计从一下三个方面进行可行性研究:
1.技术可行性。本设计“仓库管理系统”是为企业仓库管理人员开发的。鉴于本人在上学期数据库课程设计中已用Visual Basic6.0+Access2000开发过网上图书销售管理信息系统,而且通过三个月毕业实习中的学习和实践,对开发管理信息系统又有了新的认识
和提高,使自己在开发管理信息系统方面的技术更加成熟。由于本设计最重要体现的是实用性,所以,通过大量的社会调查和分析,结合自己现有的技术水平加上导师的指导,还是能按期完成本毕业设计。
2.经济可行性。成本方面:由于本毕业设计属于计算机科学(本科)教学的最后一个环节,所以人力消耗免费,资源学校提供,指导老师义务指导。所以成本计算只需计算开发期间开发者的生活消费,学校资源的消耗,所以开发本软件的成本是非常低的。效益方面:为企业开发一个完整、合理的仓库管理系统,可大大节余人力,以前需要多人干的工作,使用本系统只需一个人或几个人就能完成,且工作量和劳动强度大大降低。所以开发本软件可以为社会带来很好的经济效益。
3.操作可行性。本软件是为企业仓库的管理者开发的,所有本软件的用户对象是企业仓库的工作人员,由于本软件要设计成友好的界面,写出详细的使用说明,用户只需懂得简单的计算机操作知识,就能自由应用本软件。
4.工具可行性。
软件方面:
信息时代对于软件的应用已不是人们的难题,人们在日常办公中用的计算机操作的系统等都属于软件部分。
硬件方面:
计算机普及到今天,人们对于它的拥有已不少见,它的硬件设备完全能够满足人们的需求,而价格也能被人们所接受
所以从以上几个方面的分析来看,开发本软件是完全可行的。
第四章 系统设计
4.1系统分析
4.1.1系统功能分析
系统开发的总体任务是实现各种信息的系统化、规范化和自动化。系统功能分析是在系统开发的总体任务的基础上完成。本仓库管理系统需要完成功能主要有:
✧ 仓库管理各种信息的输入,包括货物、领料人、经手人、仓库信息的输入等。 ✧ 仓库管理各种信息的查询、统计、修改和维护,包括货物查询,货物出入、仓管员操作统计,各种信息的修改和维护等。
✧ 打印报表的生成。
✧ 仓库管理系统的使用帮助。
4.2系统总体设计
在进行了需求分析、确定了设计思想之后,就要进行系统的功能设计和数据库的设计。
4.2.1 系统目标设计
系统开发的总体任务是实现企业产品管理的系统化、规范化和自动化,从而达到提高企业管理效率的目的。
4.2.2开发设计思想
仓库管理主要是企业各种商品的管理。进货时经检查合同确认为有效托收后,进行验收入库,填写入库单,进行入库登记。企业各个部门根据需要提出产品请求,计划员根据整个企业的需求开出产品出库单,仓库管理人员根据出库单核对发放产品。根据需要按照月进行统计分析,产生相应报表。
仓库管理的特点是信息处理量比较大,所管理的产品种类繁多,而且由于入库单、出库单等单据发生量特别大,关联信息多,查询和统计的方式各不相同。因此在管理上实现起来有一定的困难。在管理的过程中经常会出现信息的重复传递;报表种类繁多,各个部门管理规格不统一等问题。
在本系统的设计过程中,为了克服这些困难,满足计算机管理工作的需要,我们采取了下面的一些原则。
✧ 统一各种原始单据的格式,统一报表的格式。
✧ 删除不必要的管理冗余,实现管理规范化、科学化。
✧ 程序代码标准化,软件统一化,确保软件的可维护性和实用性。
✧ 界面尽量简单化,做到实用、方便,尽量满足企业中不同层次员工的需要。
4.2.3 系统功能设计
在仔细分析了公司的物料数据图后,决定将整个系统分为四大模块,每个模块又有若干个子模块。整个系统功能模块如下图4-1所示:
图4-1 系统功能模块图
4.2.4 系统各模块说明
(1) 基本管理模块
a) 包括进库管理和出库管理。
b) 管理员可以通过管理界面添加或删除用户,添加新管理员或删除原有管理员,验证
用户的合法性,阻止非法用户登录。
c) 管理员或其他用户可以修改自己的密码。
(2) 查询模块
a) 按入库的日期进行查询,既可以查到这一时段的入库信息,也能查到相应时段的
出库信息。
b) 按人员进行查询,可以根据仓管员的信息查询物品的入库或出库信息。
c) 按物品查询,直接输入物品名进行查询。
(3) 统计模块
按月份对入库、出库、现存物品进行查询。
(4) 报表打印
a)对需要采购的物品进行打印,然后购买。
b)每月打印出入库信息和出库信息。
4.3数据库设计
数据库设计的步骤主要是:
(1) 数据库结构定义:目前的数据库管理系统(DBMS)有的是支持联机事务处理CLTP(负责对事务数据进行采集、处理、存储)的操作型DBMS,有的可支持数据仓库、有联机分析处理CLAP(指为支持决策的制定对数据的一种加工操作)功能的大型DBMS,有的数据库是关系型的、有的可支持面向对象数据库。针对选择的DBMS,进行数据库结构定义。
(2) 数据表定义:数据表定义指定义数据库中数据表的结构,数据表的逻辑结构包括:属性名称、类型、表示形式、缺省值、校验规则、是否关键字、可否为空等。关系型数据库要尽量按关系规范化要求进行数据库设计,但为使效率高,规范化程度应根据应用环境和条件来决定。数据表设计不仅要满足数据存储的要求,还要增加一些如反映有关信息、操作责任、中间数据的字段或临时数据表。
(3) 存储设备和存储空间组织:确定数据的存放地点、存储路径、存储设备等,备份方案,对多版本如何保证一致性和数据的完整性。
(4) 数据使用权限设置:针对用户的不同使用要求,确定数据的用户使用权限,确保数据安全。
(5) 数据字典设计:用数据字典描述数据库的设计,便于维护和修改。
4.3.1 数据库概念结构设计
得到上面的数据项和数据结构以后,就可以设计出能够满足用户需求的各种实体结构,以及他们之间的关系,为以后的逻辑结构设计打下基础。
根据上面的设计规划出的实体有:现有库存信息实体、入库信息实体、出库信息实体图。各个实体具体的描述E-R图如下:
现有库存信息实体E-R图如图4-2所示
图4-2 现有库存信息实体E-R图
入库单信息实体E-R图如图4-3所示
图4-3 入库单信息实体E-R图
出库单信息实体E-R图如图4-4所示。
图4-4 出库信息实体E-R图
实体和实体之间的关系E-R图如图4-5所示
图4-5 实体之间关系E-R图
4.3.2数据库逻辑结构设计
现在需要将在上面的数据库概念结构转化为ACCESS 2000 数据库系统所支持的实际数
据模型,也就是数据库的逻辑结构。
仓库管理信息系统数据库中各个表格的设计结果如下面表格所示。每个表格所示在数据库中的一个表。 表4-1 库存状况信息表
字段名称 数据类型 品名 文本 规格 数字 导电 文本 单位 文本 硬度 数字 数量
数字
表4-2 入库单信息表
字段名称 数据类型 品名 文本 规格 数字 导电 数字 入库日期 日期/时间 入料人编号 数字 入料人 文本 经手人 文本 自动编号 数字 说明 文本 入库标识
文本
字段大小 64 长整型 50 50 长整型 长整型
字段大小 64 长整型 长整型 长整型 64 64 长整型 50 64
可否为空 不可 不可 可 可 可 不可
可否为空 不可 不可 不可 不可 可 不可 不可 不可 可 可
表4-3 出库单信息表
字段名称 品名 规格 导电 硬度 单位 数量 毛坯尺寸 毛坯数量 成品尺寸 成品数量 余料 报废 出库日期 领料人编号 领料人 经手人 说明
表4-4 字段名称 用户名
数据类型 字段大小 文本 64 数字 长整型 文本 50 数字 长整型 文本 64 数字 长整型 数字 长整型 数字 长整型 数字 长整型 数字 长整型 数字 长整型 数字 长整型 日期/时间 数字 长整型 文本 64 文本 64 文本
64
用户管理信息表
数据类型 字段大小 文本
64
可否为空 不可 不可 不可 可 不可 不可 可 不可 不可 可 不可 不可 不可 可 不可 不可 可
可否为空 不可
用户密码 用户权限
文本 数字
50 长整型
不可 不可
4.4 系统主窗体设计
4.4.1 创建工程项目——仓库管理系统
打开Visual Basic 后,单击File → New Project 菜单,在工程模板中选择Standard ExE,Visual Basic将自动产生一个Form窗体,属性都是缺省设置。这里我们删除这个窗体,单击File→Save Project菜单,将这个工程项目命名为金属材料仓库管理系统。 4.4.2创建系统主窗体
Visual Basic 创建的应用程序可以是SDI(单文档界面)和MDI(多文档界面)。在SDI的程序中,每个窗体之间是独立的。而MDI的程序中,有一个窗体是主窗体,可以包含其他窗体,他的类型是MDI Form 。本设计采用多文档界面,这样可以使程序更加美观、整齐有序。单击工具栏中的ADD MDI Form 按钮,生成一个窗体。窗体的属性设置见表5-1
表4-5 主窗体属性设置 属性 Name Caption StartUpPosition WindowState
4.4.3创建主窗体菜单 1.菜单简介
菜单栏在窗体栏的标题栏下面,包含一个或多个菜单标题。当单击一个菜单标题,包含菜单项目的列表就被拉下来。菜单项可以包含命令、分隔条和子菜单标题。用户看到的每个菜单项和在“Menu Editor”中定义的一个菜单控件相对应,如图4-6所示。
属性取值 Mainform 金属材料仓库管理系统
0-手动 0-Normal
图4-6 主窗体菜单
为了使应用程序简单好用,应该将菜单按功能进行分组。菜单控件使一个对象,与其他对象一样,它具有定义它的外观与行为的属性。在设计或运行时可以设置Caption 属性、Enabled和Visible属性、Checked属性以及其他属性。菜单控件只包含一个事件,即Click事件,当用鼠标或键盘选中该菜单控件时,将调用该事件。 2.Visual Basic菜单编辑器
菜单编辑器可以创建新的菜单和菜单栏,也可以向现存的菜单中增加新的命令、用自己的命令替代现存的菜单命令、产生新的菜单和菜单栏,改变和删除现存菜单和菜单栏。 要打开菜单编辑器,在“Tools”菜单中选择“Menu Editor”选项。或击鼠标右键,选择弹出式菜单中的“Menu Editor”弹出菜单编辑器窗口。 4.4.4创建主窗体工具栏
同样,熟悉Windows下应用程序的用户对工具栏也一定有比较深的印象。在本系统中,它是用工具栏控件产生的,工具栏控件在主窗体上产生了很多按钮对象,按钮上显示了文字、图形。如图4-7所示。
图4-7 主窗体工具栏
1. 工具栏控件常用事件
工具栏控件常用事件主要有ButtonClick和Click两个。对于ButtonClick事件,当单击本控件之上的一个按钮时,该事件过程被执行;对于Click,当单击本控件时进行检测。
2. 设置工具栏
向窗体添加工具栏控件后,然后按下列步骤操作:
1) 设置Align属性值为1,即工具拦放在窗体的顶部。
2) 用鼠标右键单击工具栏对象,从弹出的菜单中选择“属性”菜单项。弹出如“属
性页”对话框。
3) 单击“属性页”中的“图象列表”列表框右边的下拉箭头,从下拉的列表中选择ImageList。这样ImageList控件就和“工具栏”控件发生了联系。
4) 单击“按钮”选项卡,“属性页”对话框将出现按钮的一些属性,单击“插入”按钮后,“索引”文本框中出现数字1,其它输入框也变为可用。这样就可以设置其上的属性。若“图像”输入框设为1,即ImageList控件的第一个图形作为按钮1的图形。重复上述步骤,添加其它按钮到工具栏上,并设置相应属性。
第五章 系统实现
5.1数据库实现
5.1.1连接数据库
在进行系统开发前,一个很重要的步骤就是建立数据库的连接,即访问数据库。VB6提供了多种方式访问数据库,其中以ODBC与ADO应用最多。具体ODBC及ADO详见相关理论部分。本系统采用ADO方式访问数据库。ADO数据库连接主要分两步进行:一是引用ADO,二是使用ADO连接数据库。
1. 引用ADO
在VB6菜单“工程”-“引用”从中选择 Microsoft ActiveX Data objects 2.8 library和 Microsoft ActiveX Data objects recordset 2.8 两个组件,这是在连接数据库前所必做的工作。
2. 使用ADO连接数据库
本系统采用的是无源的数据库连接方法,因为整个系统都会使用到这个数据库,所以将数据库的连接定义为全局变量。
Public Cn As New ADODB.Connection ‘定义数据源 Dim db_path As String ‘用于存放数据库的路径 Dim db_cn As String ‘连接数据源字符串
db_path = App.Path & "\Data\WMS.mdb" ‘指定数据库文件
db_cn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & db_path & ";Jet OLEDB:database password=123321;" ‘数据库连接字符串 Cn.Open db_cn ‘打开数据源 5.1.2 建立数据表
本系统采用了Access作为数据库管理系统。先启动Access2000程序,然后创建名为“WMS”的数据库。并为此数据库设置密码。在数据库中建立各表。
5.2系统模块
5.2.1基本管理模块 基本管理模块主要包括: ✧ 入库管理 ✧ 出库管理 ✧ 交接班
✧ 修改个人密码 ✧ 退出
1. 创建入库信息窗体
入库信息是采购人员购买货物时所填写的,是为了完成货物的正确入库才用到的。在新增入库单窗体中货物编号、导电情况、硬度均可通过单击相关的数据框来选择,数据选择框会进行动态智能化统计信息,使选择更方便,如图5-1所示。
图5-1 入库操作界面
2.创建出库信息窗体
出库信息是仓管出货是所要填写的,是为了完成货物的正确出库情况和仓库中的现存状况所用到的。在出库窗体中正确填写出库所需要的一些信息,以便管理,然后保存,如图5-2所示。
图5-2 出库操作按工单界面
3.创建交接班信息窗体
进入系统后,可选择“交接班”在不现用户之间进行切换。界面如图5-3所示。
图5-3 系统重登录界面
4.修改密码功能
设计思路和要点:用户如需修改自己的登录密码,需输入旧密码与新密码,程序在数据库中修改用户的密码。
界面如图5-4所示。
图5-4 修改密码界面
5.退出功能
退出即退出本系统。仓库管理主界面中退出即可。 5.2.2查询统计模块
查询统计模块主要完成的功能有:
✧ 库存查询(按日期查询、按人员查询、按物品查询) ✧ 货物出入统计(按月统计) 1. 库存的查询
设计思路和要点:分为按日期查询、按人员查询、按物品查询三方面查询,从而对库存状况进行统计,便于管理员查询。
按日期查询设计思路与要点:对系统的每一次操作能应及时地记录下来,以便日后查询。因此在数据库中单独创建一张表,用于记录系统的日常操作,即仓库的各种日常操作。通过此功能,可能追溯系统数据的整个变化过程。使整个系统的运行都在控制之内。
按人员查询,支持模糊查询,对仓库货物状况也能进行统计,界面如图5-5所示。
图5-5 按日期查询界面
按人员查询界面如图5-6所示。
图5-6 按人员查询界面
按物品查询,可以限定仓库,出入时间,它的界面设计如图5-7所示。
图5-7 按物品查询
2.货物出入统计
货物的出入统计,可以限定出入时间,一般按月份进行统计。
图5-8 按月统计窗体
5.2.3报表打印模块
报表打印完成的功能主要有:
单据报表打印(包括需采购物品打印、按月打印)
可根据需采购的物品打印,可按库存数量进行查询,如图5-9所示。
图5-9 需采购物品打印
1.按月打印
可根据月份查询出需要打印的物品,按月打印可根据需要打印入库、出库单,如图5-10所示。
图5-10 按月打印窗体
打印代码:
Private Sub Command3_Click() '打印 If Check2.Value = 1 Then With DataEnvironment1
If .rsprintinstorehouse.State = adStateOpen Then
.rsprintinstorehouse.Close End If
If Trim(Combo1.Text) = "" Then aa = Trim(Str(Month(Date))) Else
aa = Left(Trim(Combo1.Text), 1) End If
.printinstorehouse aa '对问号赋值
If .rsprintinstorehouse.RecordCount > 0 Then MonthinReport.Show Else
MsgBox ("没有找到记录!") Exit Sub End If End With End If
If Check1.Value = 1 Then With DataEnvironment1
If .rsprintoutstorehouse.State = adStateOpen Then .rsprintoutstorehouse.Close End If
If Trim(Combo1.Text) = "" Then bb = Trim(Str(Month(Date)))
Else
bb = Left(Trim(Combo1.Text), 1) End If
.printoutstorehouse bb '对问号赋值
If .rsprintoutstorehouse.RecordCount > 0 Then monthoutReport.Show Else
MsgBox ("没有找到记录!") Exit Sub End If End With End If End Sub
5.2.4维护设置模块
维护设置模块是为了仓库管理系统的稳定性和安全性而设计的,它完成的主要功能有:
✧ 职员信息 ✧ 数据整理 ✧ 用户管理
数据整理是对调查、观察、实验等研究活动中所搜集到的资料进行检验、归类编码和数字编码的过程。它是数据统计分析的基础。本系统的数据整理主要是对入库、出库以及库存信息的数据整理,其界面如图5-11所示。
图5-11数据整理界面
对登陆用户的管理,可以修改用户名,操作权限,新增,删除用户等。也可以修改当前登陆用户的密码,同时也可以更换用户登录。其界面如图5-12所示。
图5-12 用户管理
5.3输入输出
本系统界面标准Windows形式,键盘输入,人机交互,容易使用。输入输出的设计考虑美观实用和通俗易懂,图文并茂。
5.4系统安全设计
系统数据库中包含多个二维表,所以在系统与数据库的连接上,并没有把数据库和系统的连接直接写入代码,而是通过对服务器端进行系统设置,使数据库名及路径不可见,并通过ACCESS的数据库安全设置,保证了数据库的安全性。系统根据用户身份不同赋予不同权限,用户用密码登陆,同样也保证了系统数据的安全性。
第六章 系统测试
1.一般情况下,我们千辛万苦开发出的程序总会存在一些问题,这就需要进行测试。对于此系统的测试从以下几方面进行入手。 ✧ 菜单测试
检查每个菜单是否有效。 ✧ 各功能模块测试
设计一些数据,利用各个模块提供功能进行测试。并检查程序的防呆性,即程序是否能够有效地防止一些明显有错误数据进入系统。 ✧ 数据跟踪测试
打开后台数据库,检查各项数据是否与输入的一致。及各个表及表中数据是否一致。 2.程序错误类型及解决方法 ✧ 运行错误
在运行过程中,因为应用软件的不同,Access无法连接,使程序不能运行。 解决方法:寻找相同软件的电脑进行操作,检测它的可运行性,此问题已得到解决。 ✧ 编译错误
编译错误的产生原因是在程序代码中出现了不正确的代码,使系统不能正常运行,影响设计进度。
解决方法:在调试过程中,程序中的语法错误在代码编辑阶段就会被自动检测和识别通过此功能,我们对错误代码进行研究和改正,最终得以解决。
总结
随着计算机技术的普及和网络的发展,越来越多的教育单位开始重视信息化建设,利用先进的计算机和网络技术对仓库基本信息进行管理,提高工作效率,减少人力资源的浪费。本人结合仓库管理员对货物信息的具体管理需求,开发一套仓库管理系统。本系统经多次测试,能在Visual Basic6.0 的调试环境上正常运行,基本上实现了数据管理功能。
综上详细阐述了本系统的整个开发过程和实现功能,能够进行货物信息的录入、修改、查询、浏览、删除、统计等操作,整体界面美观大方,完成了仓库管理员对仓库管理工作的要求,适用于一系列的工作单位。本系统的应用,将会使员工和库管人员在第一时间内获得理想信息。
经过两个多月的毕业设计,一个完整的仓库管理系统终于设计完成了,在设计过程中,我意识到自己所学知识的不足,可以说关于这方面的接触才刚刚开始,深有感触,无以言表。关于本系统,虽然对仓库管理进行了系统的创建,但由于时间的不足,这个系统并不完美,在很多方面都有缺陷,比如:
✧ 在进行入库操作时,所输入的数据不能与原来的数据进行结合; ✧ 进行数据输入时,没有详细的文字说明和限制;
✧ 系统中没有内容分类,用户必须自己输入,在此,系统显出不方便处; ✧ 按月打印程序中,打印入库单和打印出库单还有不足; ✧ 临时离开后,所设的密码没有达到保密效果等;
✧ 本系统在余料设置中还有一定缺陷,由于时间问题,便不再做修改。
我们要在以后的实践中去检验它的可用性,特别要考虑它的实时性和安全性,在以后的工作和学习中,我们会多查询相关资料,反复地熟练应用,完善本系统,弥补本系统的不足,才能把系统设计的更巧、更好。在设计中,同学间的协作交流是非常重要的,协作交流是一种进步,带给我们新的思路。
经过这次毕业设计,引发了我很多的兴趣,让我体会到了思考的乐趣,首先是做程序要勤:手、眼、心齐到;其次要有韧性,不怕麻烦,不怕失败,反复调试,反复练习,这样才能做出最佳的程序设计。
致谢语
在本次毕业设计中,我学到了很多东西。非常感谢我的导师任红云给我的悉心关怀,让我顺利地完成了毕业论文,当然也感谢同学的帮助,使我学到很多新的知识,同时也懂得了更多的做学问的道理。
从选择毕业设计题目到毕业设计规范,查找相关资料,设计模型,具体实施,结束论文,在整个大致的流程中,我的导师给予我耐心的指导和关心,其间遇到很多困难,在此,对老师说声:老师辛苦了,谢谢老师三年的关怀和帮助。除此之外,还要谢谢我的小组成员,能完成这个设计还有其他同学的帮助,在此对大家表示衷心的感谢。
马上我就要走向工作单位,我会在以后的工作中完善现在的不足,会时刻鞭策自己,让自己做到更好。
最后,祝愿我的老师和学友们永远快乐。
参考文献
[1]学用Visual Basic 6.0/(美)Greg Perry编著 戴红,陈喆,姚娜译。清华大学出版社,2003
[2]Visual Basic 6.0程序设计教程/龚沛曾,陆慰民,杨志强编。高等教育出版社,2001.7 [3]Visual Basic 6.0入门与提高/张树兵,戴红,陈哲著。 清华大学出版社, 2000.11 [4]Access数据库程序设计教程/陈义平 清华大学出版社
[5]Visual Basic 6.0与可视化编程/汪远征,刘瑞新著。上海科学技术出版社, 2002.5 [6]Access数据库教程与实训/刘辉、张军、李云松等 中国林业出版社
[7]Visual Basic 6.0程序设计工程师/网冠科技编著。 机械工业出版社 2001.2
甘肃广播电视大学
题 目:
姓 名:
学 号:
专 业:
指导老师:
设计日期:毕 业 论 文 仓库管理系统 雷伟玲 [1**********]60 计算机信息与管理 任红云 2011年 12 月 10 日
仓库管理系统
[摘要] 仓库管理系统是为了实现企业产品管理的系统化、规范化和自动化,从而提高企业管理效率而设计的。它完全取代了原来一直用人工管理的工作方式,避免了由于管理人员的工作疏忽以及管理质量问题所造成的各种错误,为及时、准确、高效的完成仓库管理提供了强有力的工具和管理手段。仓库管理系统是一个中小型数据库管理系统,它界面美观、操作简单、安全性高,基本满足了仓库管理的要求。整个系统由基本管理、查询统计、报表打印、维护设置、帮助等模块组成。
本系统是在以ACCESS 2000作为后台数据库,以Visual Basic为编程语言来开发的。仓库管理系统在运行阶段,效果好,数据准确性高,提高了工作效率,同时也实现了仓库管理计算机化。
关键字:仓库,管理系统,Access数据库
The administrative system of the warehouse
[Abstract] The administrative system of the warehouse is designed for realizing the systematization , standardization and atomization 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 offers powerful tool and management way to complete 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 ACCESS 2000 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.
Keywords: The Warehouse, Administrative System, the Database of Access
目录
前言 ........................................................................ 1
第一章 绪论 ................................................................. 2
1.1仓库管理系统研究背景及意义 .......................................... 2
1.2 VB语言的基本特点及VB应用程序的基本特点 ............................ 2
1.2.1可视化设计 .................................................... 2
1.2.2事件驱动编程 .................................................. 3
1.2.3实现菜单选项 .................................................. 3
1.2.4实现工具栏 .................................................... 3
第二章 相关理论基础 ......................................................... 4
2.1 Visual Basic 6.0 .................................................... 4
2.1.1 Visual Basic 6.0 的功能特点 ................................... 4
2.1.2 Visual Basic 6.0 中的基本概念 ................................. 5
2.2 Access 2000 数据库 .................................................. 5
2.2.1 Access的总体结构 ............................................. 6
2.2.2 VB 6.0 和Access的连接 ........................................ 6
第三章 系统分析 ............................................................. 8
3.1需求分析 ............................................................ 8
3.1.1系统功能的基本要求 ............................................ 8
3.1.2数据库要求 .................................................... 8
3.1.3系统数据流程图 ................................................ 8
3.1.4功能需求及设计思想 ............................................ 9
3.1.5数据库需求分析 ............................................... 10
3.2可行性分析 ......................................................... 11
第四章 系统设计 ............................................................ 13
4.1系统分析 ........................................................... 13
4.1.1系统功能分析 ................................................. 13
4.2系统总体设计 ....................................................... 13
4.2.1系统目标设计 ................................................. 13
4.2.2开发设计思想 ................................................. 13
4.2.3系统功能设计 ................................................. 14
4.2.4系统各模块说明 ............................................... 14
4.3数据库设计 ......................................................... 15
4.3.1数据库概念结构设计 ........................................... 15
4.3.2数据库逻辑结构设计 ........................................... 16
4.4 系统主窗体设计 ..................................................... 19
4.4.1 创建工程项目——仓库管理系统 ................................. 19
4.4.2创建系统主窗体 ............................................... 19
4.4.3创建主窗体菜单 ............................................... 19
4.4.4创建主窗体工具栏 ............................................. 20
第五章 系统实现 ............................................................ 22
5.1数据库实现 ......................................................... 22
5.1.1连接数据库 ................................................... 22
5.2系统模块 ........................................................... 22
5.2.1基本管理模块 ................................................. 22
5.2.2查询统计模块 ................................................. 25
5.2.3报表打印模块 ................................................. 27
5.2.4维护设置模块 ................................................. 29
5.3输入输出 ........................................................... 30
5.4系统安全设计 ....................................................... 30
第六章 系统测试 ............................................................ 31
总结 ....................................................................... 32
致谢语 ..................................................................... 33
参考文献 ................................................................... 34
前言
随着企业管理信息化的发展,网络及计算机的引入使管理跃上了一个新的发展平台。管理信息系统已成为企业规范化、信息化、自动化管理系统的一部分,为了适应日趋激烈的市场竞争,企业需要对自身的经营状况有充分的了解,并通过有效的管理不断提高效率。因此,对仓库的管理也成为提高生产经营效率的一个重要途径。可见仓库的管理对于企业来说尤为重要,也正是基于这个原因我把毕业设计的方向定在了企业的仓库管理上。
仓库管理系统是一个企业不可缺少的部分,它的内容对于企业的决策者和管理者来说都至关重要,所以仓库管理系统应该能够为用户提供充足的信息和快捷的查询手段。但一直以来人们使用传统人工的方式管理产品,这种管理方式存在着许多缺点,如:效率低、保密性差等。另外,由于时间一长,将产生大量的文件和数据,这对于查找、更新和维护产品都带来了不少的困难。
作为计算机应用的一部分,使用计算机对仓库信息进行管理,有着手工管理所无法比拟的优点。例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高仓库管理的效率。
由于时间紧迫,加之水平有限,设计中的缺点和不足之处在所难免,敬请导师批评指正,不胜感激。
第一章 绪论
1.1仓库管理系统研究背景及意义
随着我国经济的飞速发展,各种类型规模的公司企业迅速崛起,许多从事生产和经营管理的企业都有自己生产和销售的产品,而这些产品都需要储存在仓库中,对于每个企业来说,随着企业规模的不断扩大,产品数量的急剧增加,所生产产品的种类也会不断地更新与发展,有关产品的各种信息量也会成倍增长。面对庞大的产品信息量,如何有效地管理仓库产品,对这些企业来说是非常重要的,仓库管理的重点是销售信息能否及时反馈,从而确保企业运行效益。而仓库管理又涉及入库、出库的产品、经办人员及客户等方方面面的因素,如何管理这些信息数据,是一项复杂的系统工程,充分考验着仓库管理员的工作能力,工作量的繁重是可想而知的,所以这就需要由仓库管理系统来提高仓库管理工作的效率,这对信息的规范管理、科学统计和快速查询,减少管理方面的工作量,同时对于调动广大员工的工作积极性,提高企业的生产效率,都具有十分重要的现实意义。
本仓库管理系统是在以Visual Basic为编程语言,以ACCESS 2000作为后台数据库而开发的一个数据库管理系统。下面简要介绍一下中文Visual Basic 6.0和Access 2000。
1.2 VB语言的基本特点及VB应用程序的基本特点
VB程序语言具有许多优秀的特性,用其设计应用程序时有两个基本特点:可视化设计和事件驱动编程。
1.2.1 可视化设计
同其他的一些可视化程序开发工具一样,VB具有可视化设计的特点,微软的Word在刚刚进入市场时,同WPS竞争的一个重要的功能砝码就是"所见即所得"的字处理功能,VB在设计应用程序界面时也可以说是"所见即所得".在设计时,头脑中所想象的应用程序界面,完全可以通过键盘鼠标以及徒手画出来,而不是编制大量的代码然后再编译生成,如果需要修改,也是利用键盘鼠标和手画,而底层的一些程序代码由VB自动生成或修改。
VB为用户提供大量的界面元素(在VB中称为控件对象),这些控件对象对于熟悉Windows应用程序的用户而言是一点也不陌生,如"窗体"、"菜单"、"命令按钮"、"工具按钮"、"检查框"等等,用户只需要利用鼠标、键盘把这些控件对象拖动到适当的位置,设置它们的大小、形状、属性等,就可以设计出所需的应用程序界面。
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中迁入其他空间你也可以向用户提供更好的灵活性和义用性。
本系统就用了Cool工具中的Statubar控件,在系统这一界面中,添加了状态栏,在第一个栏中,在样式这一栏中选择了文本,在第二个栏中,选择了系统日期,第三个栏中选择了系统时间,这样,任何时候操作本系统,都可以看到当前的时间和日期。
第二章 相关理论基础
本系统主要采用VB6 + Access2000相结合的技术来进行开发,用户界面的设计是用VB6来进行的,后台数据库使用Access2000。与数据库的连接则使用ADO的相关功能来完成的。
在系统需涉及的一些相关技术概述如下。
2.1 Visual Basic 6.0
Visual意为“可视化的”,指的是一种开发图形用户界面的方法,所以Visual Basic是基于Basic的可视化的程序设计语言。在Visual Basic中,一方面继承了Basic所具有的程序设计语言简单易用的特点,另一方面在其编程系统中采用了面向对象、事件驱动的编程机制,用一种巧妙的方法把Windows的编程复杂性封装起来,提供了一种所见即所得的可视化程序设计方法。VB6是指Visual Basic 6.0的版本。
2.1.1 Visual Basic 6.0 的功能特点
A) 具有面向对象的可视化设计工具:在VB中,应用面向对象的程序设计方法(OOP),把程序和数据封装起来视为一个对象,每个对象都是可视的。程序员在设计时只需用现有工具根据界面设计要求,直接在屏幕上“画”出窗口、菜单、按钮、滚动条等不同类型的对象,并为每个对象设置属性。程序员的编程工作仅限于编写相关对象要完成的功能程序,因而程序设计的效率可大大提高。
B) 事件驱动的编程机制:事件驱动是非常适合图形用户界面的编程方式。在图形用户界面的应用程序中,是由用户的动作即事件掌握着程序运行的流向,每个事件都能驱动一段程序的运行。程序员只要编写响应用户动作的代码,而各个动作之间不一定有联系。
C) 提供了易学易用的应用程序集成开发环境:在VB集成开发环境中,用户可设计界面、编写代码、调试程序,直至把应用程序编译成可执行文件在Windows中运行,使用户在友好的开发环境中工作。
D) 结构化的程序设计语言:VB6具有丰富的数据类型和结构化程序结构,作为一种程序设计语言,它还有如下一些特点:强大的数值和字符串处理功能;丰富的图形指令,可方便地绘制各种图形;提供静态和动态数组,有利于简化内存的管理;过程可递归调用,使程序更为简练;支持随机文件和顺序文件的访问;提供了一个可供应用程序调用的包含多种类型的图标库;具有完善的运行出错处理。
E)支持多种数据库系统的访问:利用数据控件可访问的数据库系统有:Microsoft Access、SQL server、DBASE、Microsoft FoxPro和Oracle等,也可以访问Microsoft Excel、Lotus1-2-3等多种电子表格。
F)支持动态数据交换(DDE)、动态链接库(DLL)和对象的链接与嵌入(OLE)技术。
G)完备的HELP联机帮助功能:与Windows环境下的软件一样,在VB中,利用帮助菜单和F1功能键,用户可以随时方便地得到所需要的帮助信息。VB帮助窗口中显示了有关的示例代码,通过复制、粘贴操作可获取大量的示例代码,为用户的学习和使用提供了极大的方便。
VB程序设计的概念就是面向对象的概念,对象就是数据(DATA)和代码(CODE)互相结合的综合体。Windows上面的每一个图标,包括窗口本身都是对象,如果没有任何事情发生,对象处于停顿状态。当存在外来事件时,程序段执行,它的执行是由外来事件决定的。因此是“事件”驱动的。
编写VB程序较为简单,首先将各个对象放在空白窗体上,然后将程序代码分别添加给对象或图标,将它们组合起来就可以随意运行了。
在VB中,窗体实际上是一个对象,VB的窗体含有许多内嵌特性,这使得用户界面部分的建立像是从一个目录中挑选一个个合适的控件,而不是从零开始一步一步地建立控件。这种开发者能亲眼看到的程序设计过程就是“可视化程序设计”(Visual Programming)。
2.1.2 Visual Basic 6.0 中的基本概念
对象:面向对象编程(OOP)的提法大家一定也很耳熟,虽然Visual Basic并不是完全的面向对象编程,但也利用了对象编程技术。对象简单地说就是大家经常看到的各种窗口、按钮、文本框甚至打印机等。
属性:如同电视有黑白、彩色之分一样,作为对象的Windows中的窗口也是有大有小,文本框的位置不可能完全一样,菜单要显示出不同的功能,这些都是由对象的属性决定的。不同对象的属性可能不同。属性一般决定了对象的位置、大小、显示等情况。
方法:就是对象能够做的事,如打印机对象就有打印(Print)方法、窗口对象支持隐藏(Hide)方法、很多对象支持移动(Move)方法等。
事件:就是对象对用户各种操作的反映情况。如用户用鼠标按一下按钮,就会触发按钮的“按”(Click)事件。
控件: Visual Basic中使用控件,简化了Windows中的窗口、按钮等对象的编程设计。每个控件都有各自的属性、事件及方法。只需修改这些特征你就可以随心所欲地编程了。最重要的是,你可以利用成千上万的各种扩充的控件来快速构造几乎能满足你任何要求的程序。例如,如果你不满意Windows简陋的媒体播放器,你就可以使用VB的多媒体控件在1小时以内设计一个完全自己风格的能够播放CD、VCD的多媒体播放器,而功能完全与之相当。
2.2 Access 2000 数据库
数据库是一种存储数据并对数据进行操作的工具。数据库的作用在于组织和表达信息,简而言之,数据库就是信息的集合。计算机的数据库可以分为两类:非关系数据库(flat-file)和关系数据库(relational)。关系数据库中包含了多个数据表的信息,数
据库含有各个不同部分的术语,对象记录、域等。
✧ 新建一个数据库
创建任何一个数据库的第一步是仔细的规划数据库,设计必须是灵活的、有逻辑的。创建一个数据库结构的过程被认为是数据模型设计。
✧ 修改已建的数据库
数据库的修改分为:添加、编辑和删除记录。这三种操作均可由Visual Basic 创建的程序来完成。
✧ 实现数据库之间的联系
作为Microsoft的office套件产品之一,Access已经成为世界上最流行的桌面数据库系统。Access与许多优秀的关系数据库一样,可以让你很容易地连接相关的信息而且还对其他的数据库系统有所补充。
Access还提供windows操作系统的高级应用程序开发系统。Access与其它数据库开发系统之间相当显著的区别就是:您不用写一行代码,就可以在很短的时间里开发出一个功能强大而且相当专业的数据库应用程序,并且这一愉快的过程是完全可视的。
2.2.1 Access的总体结构
Access将所有有名字的东西都成为对象(object),在Access 2000中,最重要的对象有表,查询,窗体,报表,宏和模块。
2.2.2 VB 6.0 和Access的连接
在进行系统开发时,一个很重要的步骤就是建立数据库的连接,即访问数据库。VB6提供了多种方式访问数据库,其中以ODBC与ADO应用最多。早期还有RDO,DAO等。
2.2.2.1 ODBC连接数据库
ODBC(Open Database Connectivity,开放数据库连接)建立了一组规范,并提供了一组应用程序调用接口。用这样一组接口建立的应用程序,对数据库的操作不依赖于任何数据库管理系统,不直接与任何DBMS打交道,由此可实现应用程序对不同DBMS的共享。数据库操作的“数据源”对应用程序是透明的,所有的数据库操作由对应DBMS的ODBC驱动程序(ODBC Driver)完成。有了ODBC驱动程序,数据源就变得十分广泛,它可以是本机的某种数据库格式的文件(如本机DOS目录下的Access文件*.mdb),也可以是远程数据库文件(如Microsoft SQL Server);它可以是目前已知的某种DBMS格式,也可以是一种全新的数据库格式。
在ODBC方式中,不管底层网络环境如何,也无论采用何种DBMS,用户在程序中都使用同一套标准代码,源程序可以不因底层的变化而重新编建或修改,从而减轻了开发维护的工作量,缩短了开发周期。但ODBC访问数据库的速度较慢,而且需为每个客户端配置ODBC数据源。
2.2.2.2 ADO连接数据库
微软公司的ADO (ActiveX Data Objects) 是一个用于存取数据源的COM组件。它提供了编程语言和统一数据访问方式OLE DB的一个中间层。允许开发人员编写访问数据的代码而不用关心数据库是如何实现的,而只用关心到数据库的连接。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封装接口。
图2.1 VB应用程序与数据库的连接
第三章 系统分析
3.1需求分析
需求分析是软件开发周期的第一个阶段,也是关系到软件开始成败的关键步骤。准确、完整和规范化的软件需求是软件开发成功的关键。
3.1.1系统功能的基本要求
产品入库管理,可以填写入库单,确认产品入库;
产品出库管理,可以填写出库单,确认出库;
借出管理,凭借条借出,然后能够还库;
初始库存设置,设置库存的初始值,库存的上下警戒限;
可以进行盘库,反映每月、年的库存情况;
可以查询产品入库情况、出库情况、当前库存情况,可以按出库单、入库单,产品、时间进行查询;
3.1.2数据库要求
在数据库中至少应该包含下列数据表:
库存情况表; 出库单表; 入库单表; 出库台帐; 入库台帐; 借条信息表,反映,借出人,借出时间,借出产品,借出数量,还库时间等。
其基本要求如下:
✧ 必须提交系统分析报告,包括系统的功能分析、系统的功能模块设计、数据库的数据字典,数据库的概念结构( E - R 图),数据库中的表、视图等;
✧ 程序设计的报告:包括程序的运行环境、开发环境、程序的详细设计(包括模块之间的关系,模块的功能、主要功能实现的程序段)
✧ 系统的源程序,包括数据库脚本程序。
3.1.3 系统数据流程图
在研究了用户提供的原始资料及要求后,画出了系统的数据流程图如下所示。
图3-1 数据流程图
3.1.4 功能需求及设计思想
3.1.4.1 总体架构思想
本仓库管理系统是利用Client/Server结构,即客户机/服务器模式。这种CS模式适用于局域网、安全性可以得到可靠的保证。它为数据提供了更安全的存取模式。响应速度快。程序开发具有很强的针对性,因此,操作界面漂亮,形式多样,可以充分满足客户自身的个性化要求。
图3-2 C/S结构示意图
3.1.4.2 物料管理模块
如果当前数量小于最小数量,则需出订单去采购,如果大于最大数量则不允许再出订单。自动订单是根据这个原则产生的。
3.1.4.3 供应商管理模块
供应商管理模块记录公司所有供应商的情况,以保证每个供应商都是经过认证的。并且为每个供应商编制一个统一的代码。以代码来代表供应商,可以减少数据库中的数据量。
供应商管理模块还包括公司的物料在供应商处的代码。就像我们去买东西,我们不但要知道去哪里买,还要知道买什么。供应商代码只提供我们去哪里买,而物料在供应商的代码则是解决了要买什么的问题。
系统为了统一管理,加强控制。将这两个信息结合在一起给出一个综合代码,这样处理有利于更好的分清每个物料及供应商之间的关系。为生产线提供更多的更全的数据。
3.1.4.4 产品管理模块
物料是指公司从供应商处买来的,是半成品。产品是公司生产的。同样,我们也需为公司的每一个产品编制一个代码。方便管理。另一方面,还需建立产品与物料之间的联系。即产品组成表。表示某个产品是由哪些物料组成的。在制作生产计划时,只需给出生产的产品代码,而无需给出每一个物料的代码。
3.1.4.5 订单管理模块
订单管理主要任务是产生订单。人为地去采购某一种物料,并且把这个订单记录到系统中去。手工下单只能一个一个产生订单。
订单是仓库进行收料操作的基础。
3.1.4.6 仓库收料
仓库根据系统发出的订单进行收料。
3.1.4.7 生产计划管理模块
此模块主要是管理生产计划。根据产品及生产数量,日期等不同将生产分为一批一批,利用生产计划号,即工单号来区分。每次计划产生前,系统会根据产品组成表提供的信息来检验当前的物料状况,如果物料不能满足此次生产,则不能成功产生生产计划。 仓库的发料也是根据生产计划来进行的。每个生产计划都会自动产生一个发料清单。
3.1.4.8 仓库发料
仓库根据生产计划给出的工单号来进行发料。发料时,即可以一次性发多个料,即按工单发料;也可以按物料一个一个来发。可自由选择。也可以两种方法结合在一起来发料。
3.1.4.9 生产增料和退料
生产增料代表了生产损耗。为了核算每批产品的生产成本,因此增料操作需按生产计划号来进行。即每个生产增料都需确定到每个计划号,因此增料是以生产计划号为基础的。
生产退料是生产线将好的物料退回给仓库。
3.1.4.10 盘点管理
仓库每月,每季及每年都要进行盘点。盘点时需提供盘点报表及盘点调整。
3.1.4.11 报表与查询
需提供根据各种条件来得到查询结果。条件即可以是单个条件也可以组合条件。查询结果分为三个部分,一部分是基本信息,另一部分是订单信息,以及生产计划信息。
3.1.4.12操作日志
记录系统内主要的数据的操作,以便日后查询所需。
3.1.5数据库需求分析
用户的需求具体体现在各种信息的提供、保存、更新和查询,这就要求数据库结构能充分满足各种信息的输出和输入。收集基本数据、数据结构以及数据处理的流程,组成一份详尽的数据字典,为后面的具体设计打下基础。
仔细分析调查有关仓库管理信息需求的基础上,得到如图4-2所示的本系统所处理的数据流程。
图3-3 仓库管理系统数据流程图
通过对企业仓库管理的内容和数据流程分析,设计数据项和数据结构如下:
✧ 库存状况信息,包括的数据项有品名、规格、导电、硬度、数量、单位等
✧ 入库单信息,包括的数据项有品名、规格、导电、硬度、数量、单位、入库日期、入料人编号、入料人、经手人、入库标识、自动编号、说明等
✧ 出库单信息,包括的数据项有品名、规格、导电、硬度、数量、单位、毛坯尺寸、毛坯数量、成品尺寸、成品数量、余料、报废、出库日期、领料人编号、领料人、经手人、说明等
用户管理信息,包括的数据项有用户名、用户密码、用户权限等。
3.2可行性分析
可行性分析的任务,并不是所有问题都有简单明显的解决办法,事实上,许多问题不可能在预定的系统规模之内解决。如果问题没有可行的解,那么花费这项开发工程上的任何时间、资源、人力和经费都是无谓的浪费。
可行性研究的目的就是用最小的代价在尽可能短的时间内确定问题是否能够解决。必须记住,可行性研究的目的不是解决问题,而是确定问题是否值得去解。怎样达到这个目的呢?当然不能靠主观猜想,而只能靠客观分析。必须分析几种主要的可能解法的利弊,从而判断原定的系统目标和规模是否现实,系统完成后所能带来的效益是否大到值得投资开发这个系统的程度。
因此,可行性研究实质上是要进行一次大大压缩简化了的系统分析和设计的过程,也就是在较高层次上以较抽象的方式进行的系统分析和设计的过程。所以从以上的分析原则来看,我所设计的仓库信息管理系统是一个规模不太大的系统,但是目标明确,清晰的描述了对目标系统的一切限制和约束。本系统几乎在所有的企业、公司使用,当然它需要进一步的完善和更新。在使用过程中,要看它能不能带来效益,毕竟在现今社会效率是第一位的。从现实看,这还是有一定的实用价值的,从另一个角度看,现实社会发展飞速,尊重科技势在必行,因此这也是开发本系统的一个非常重要的原因。21世纪是计算机的时代,它必然取代一部分人的工作,高科技的监控系统进入社会生活的方方面面是发展的趋势。 本设计从一下三个方面进行可行性研究:
1.技术可行性。本设计“仓库管理系统”是为企业仓库管理人员开发的。鉴于本人在上学期数据库课程设计中已用Visual Basic6.0+Access2000开发过网上图书销售管理信息系统,而且通过三个月毕业实习中的学习和实践,对开发管理信息系统又有了新的认识
和提高,使自己在开发管理信息系统方面的技术更加成熟。由于本设计最重要体现的是实用性,所以,通过大量的社会调查和分析,结合自己现有的技术水平加上导师的指导,还是能按期完成本毕业设计。
2.经济可行性。成本方面:由于本毕业设计属于计算机科学(本科)教学的最后一个环节,所以人力消耗免费,资源学校提供,指导老师义务指导。所以成本计算只需计算开发期间开发者的生活消费,学校资源的消耗,所以开发本软件的成本是非常低的。效益方面:为企业开发一个完整、合理的仓库管理系统,可大大节余人力,以前需要多人干的工作,使用本系统只需一个人或几个人就能完成,且工作量和劳动强度大大降低。所以开发本软件可以为社会带来很好的经济效益。
3.操作可行性。本软件是为企业仓库的管理者开发的,所有本软件的用户对象是企业仓库的工作人员,由于本软件要设计成友好的界面,写出详细的使用说明,用户只需懂得简单的计算机操作知识,就能自由应用本软件。
4.工具可行性。
软件方面:
信息时代对于软件的应用已不是人们的难题,人们在日常办公中用的计算机操作的系统等都属于软件部分。
硬件方面:
计算机普及到今天,人们对于它的拥有已不少见,它的硬件设备完全能够满足人们的需求,而价格也能被人们所接受
所以从以上几个方面的分析来看,开发本软件是完全可行的。
第四章 系统设计
4.1系统分析
4.1.1系统功能分析
系统开发的总体任务是实现各种信息的系统化、规范化和自动化。系统功能分析是在系统开发的总体任务的基础上完成。本仓库管理系统需要完成功能主要有:
✧ 仓库管理各种信息的输入,包括货物、领料人、经手人、仓库信息的输入等。 ✧ 仓库管理各种信息的查询、统计、修改和维护,包括货物查询,货物出入、仓管员操作统计,各种信息的修改和维护等。
✧ 打印报表的生成。
✧ 仓库管理系统的使用帮助。
4.2系统总体设计
在进行了需求分析、确定了设计思想之后,就要进行系统的功能设计和数据库的设计。
4.2.1 系统目标设计
系统开发的总体任务是实现企业产品管理的系统化、规范化和自动化,从而达到提高企业管理效率的目的。
4.2.2开发设计思想
仓库管理主要是企业各种商品的管理。进货时经检查合同确认为有效托收后,进行验收入库,填写入库单,进行入库登记。企业各个部门根据需要提出产品请求,计划员根据整个企业的需求开出产品出库单,仓库管理人员根据出库单核对发放产品。根据需要按照月进行统计分析,产生相应报表。
仓库管理的特点是信息处理量比较大,所管理的产品种类繁多,而且由于入库单、出库单等单据发生量特别大,关联信息多,查询和统计的方式各不相同。因此在管理上实现起来有一定的困难。在管理的过程中经常会出现信息的重复传递;报表种类繁多,各个部门管理规格不统一等问题。
在本系统的设计过程中,为了克服这些困难,满足计算机管理工作的需要,我们采取了下面的一些原则。
✧ 统一各种原始单据的格式,统一报表的格式。
✧ 删除不必要的管理冗余,实现管理规范化、科学化。
✧ 程序代码标准化,软件统一化,确保软件的可维护性和实用性。
✧ 界面尽量简单化,做到实用、方便,尽量满足企业中不同层次员工的需要。
4.2.3 系统功能设计
在仔细分析了公司的物料数据图后,决定将整个系统分为四大模块,每个模块又有若干个子模块。整个系统功能模块如下图4-1所示:
图4-1 系统功能模块图
4.2.4 系统各模块说明
(1) 基本管理模块
a) 包括进库管理和出库管理。
b) 管理员可以通过管理界面添加或删除用户,添加新管理员或删除原有管理员,验证
用户的合法性,阻止非法用户登录。
c) 管理员或其他用户可以修改自己的密码。
(2) 查询模块
a) 按入库的日期进行查询,既可以查到这一时段的入库信息,也能查到相应时段的
出库信息。
b) 按人员进行查询,可以根据仓管员的信息查询物品的入库或出库信息。
c) 按物品查询,直接输入物品名进行查询。
(3) 统计模块
按月份对入库、出库、现存物品进行查询。
(4) 报表打印
a)对需要采购的物品进行打印,然后购买。
b)每月打印出入库信息和出库信息。
4.3数据库设计
数据库设计的步骤主要是:
(1) 数据库结构定义:目前的数据库管理系统(DBMS)有的是支持联机事务处理CLTP(负责对事务数据进行采集、处理、存储)的操作型DBMS,有的可支持数据仓库、有联机分析处理CLAP(指为支持决策的制定对数据的一种加工操作)功能的大型DBMS,有的数据库是关系型的、有的可支持面向对象数据库。针对选择的DBMS,进行数据库结构定义。
(2) 数据表定义:数据表定义指定义数据库中数据表的结构,数据表的逻辑结构包括:属性名称、类型、表示形式、缺省值、校验规则、是否关键字、可否为空等。关系型数据库要尽量按关系规范化要求进行数据库设计,但为使效率高,规范化程度应根据应用环境和条件来决定。数据表设计不仅要满足数据存储的要求,还要增加一些如反映有关信息、操作责任、中间数据的字段或临时数据表。
(3) 存储设备和存储空间组织:确定数据的存放地点、存储路径、存储设备等,备份方案,对多版本如何保证一致性和数据的完整性。
(4) 数据使用权限设置:针对用户的不同使用要求,确定数据的用户使用权限,确保数据安全。
(5) 数据字典设计:用数据字典描述数据库的设计,便于维护和修改。
4.3.1 数据库概念结构设计
得到上面的数据项和数据结构以后,就可以设计出能够满足用户需求的各种实体结构,以及他们之间的关系,为以后的逻辑结构设计打下基础。
根据上面的设计规划出的实体有:现有库存信息实体、入库信息实体、出库信息实体图。各个实体具体的描述E-R图如下:
现有库存信息实体E-R图如图4-2所示
图4-2 现有库存信息实体E-R图
入库单信息实体E-R图如图4-3所示
图4-3 入库单信息实体E-R图
出库单信息实体E-R图如图4-4所示。
图4-4 出库信息实体E-R图
实体和实体之间的关系E-R图如图4-5所示
图4-5 实体之间关系E-R图
4.3.2数据库逻辑结构设计
现在需要将在上面的数据库概念结构转化为ACCESS 2000 数据库系统所支持的实际数
据模型,也就是数据库的逻辑结构。
仓库管理信息系统数据库中各个表格的设计结果如下面表格所示。每个表格所示在数据库中的一个表。 表4-1 库存状况信息表
字段名称 数据类型 品名 文本 规格 数字 导电 文本 单位 文本 硬度 数字 数量
数字
表4-2 入库单信息表
字段名称 数据类型 品名 文本 规格 数字 导电 数字 入库日期 日期/时间 入料人编号 数字 入料人 文本 经手人 文本 自动编号 数字 说明 文本 入库标识
文本
字段大小 64 长整型 50 50 长整型 长整型
字段大小 64 长整型 长整型 长整型 64 64 长整型 50 64
可否为空 不可 不可 可 可 可 不可
可否为空 不可 不可 不可 不可 可 不可 不可 不可 可 可
表4-3 出库单信息表
字段名称 品名 规格 导电 硬度 单位 数量 毛坯尺寸 毛坯数量 成品尺寸 成品数量 余料 报废 出库日期 领料人编号 领料人 经手人 说明
表4-4 字段名称 用户名
数据类型 字段大小 文本 64 数字 长整型 文本 50 数字 长整型 文本 64 数字 长整型 数字 长整型 数字 长整型 数字 长整型 数字 长整型 数字 长整型 数字 长整型 日期/时间 数字 长整型 文本 64 文本 64 文本
64
用户管理信息表
数据类型 字段大小 文本
64
可否为空 不可 不可 不可 可 不可 不可 可 不可 不可 可 不可 不可 不可 可 不可 不可 可
可否为空 不可
用户密码 用户权限
文本 数字
50 长整型
不可 不可
4.4 系统主窗体设计
4.4.1 创建工程项目——仓库管理系统
打开Visual Basic 后,单击File → New Project 菜单,在工程模板中选择Standard ExE,Visual Basic将自动产生一个Form窗体,属性都是缺省设置。这里我们删除这个窗体,单击File→Save Project菜单,将这个工程项目命名为金属材料仓库管理系统。 4.4.2创建系统主窗体
Visual Basic 创建的应用程序可以是SDI(单文档界面)和MDI(多文档界面)。在SDI的程序中,每个窗体之间是独立的。而MDI的程序中,有一个窗体是主窗体,可以包含其他窗体,他的类型是MDI Form 。本设计采用多文档界面,这样可以使程序更加美观、整齐有序。单击工具栏中的ADD MDI Form 按钮,生成一个窗体。窗体的属性设置见表5-1
表4-5 主窗体属性设置 属性 Name Caption StartUpPosition WindowState
4.4.3创建主窗体菜单 1.菜单简介
菜单栏在窗体栏的标题栏下面,包含一个或多个菜单标题。当单击一个菜单标题,包含菜单项目的列表就被拉下来。菜单项可以包含命令、分隔条和子菜单标题。用户看到的每个菜单项和在“Menu Editor”中定义的一个菜单控件相对应,如图4-6所示。
属性取值 Mainform 金属材料仓库管理系统
0-手动 0-Normal
图4-6 主窗体菜单
为了使应用程序简单好用,应该将菜单按功能进行分组。菜单控件使一个对象,与其他对象一样,它具有定义它的外观与行为的属性。在设计或运行时可以设置Caption 属性、Enabled和Visible属性、Checked属性以及其他属性。菜单控件只包含一个事件,即Click事件,当用鼠标或键盘选中该菜单控件时,将调用该事件。 2.Visual Basic菜单编辑器
菜单编辑器可以创建新的菜单和菜单栏,也可以向现存的菜单中增加新的命令、用自己的命令替代现存的菜单命令、产生新的菜单和菜单栏,改变和删除现存菜单和菜单栏。 要打开菜单编辑器,在“Tools”菜单中选择“Menu Editor”选项。或击鼠标右键,选择弹出式菜单中的“Menu Editor”弹出菜单编辑器窗口。 4.4.4创建主窗体工具栏
同样,熟悉Windows下应用程序的用户对工具栏也一定有比较深的印象。在本系统中,它是用工具栏控件产生的,工具栏控件在主窗体上产生了很多按钮对象,按钮上显示了文字、图形。如图4-7所示。
图4-7 主窗体工具栏
1. 工具栏控件常用事件
工具栏控件常用事件主要有ButtonClick和Click两个。对于ButtonClick事件,当单击本控件之上的一个按钮时,该事件过程被执行;对于Click,当单击本控件时进行检测。
2. 设置工具栏
向窗体添加工具栏控件后,然后按下列步骤操作:
1) 设置Align属性值为1,即工具拦放在窗体的顶部。
2) 用鼠标右键单击工具栏对象,从弹出的菜单中选择“属性”菜单项。弹出如“属
性页”对话框。
3) 单击“属性页”中的“图象列表”列表框右边的下拉箭头,从下拉的列表中选择ImageList。这样ImageList控件就和“工具栏”控件发生了联系。
4) 单击“按钮”选项卡,“属性页”对话框将出现按钮的一些属性,单击“插入”按钮后,“索引”文本框中出现数字1,其它输入框也变为可用。这样就可以设置其上的属性。若“图像”输入框设为1,即ImageList控件的第一个图形作为按钮1的图形。重复上述步骤,添加其它按钮到工具栏上,并设置相应属性。
第五章 系统实现
5.1数据库实现
5.1.1连接数据库
在进行系统开发前,一个很重要的步骤就是建立数据库的连接,即访问数据库。VB6提供了多种方式访问数据库,其中以ODBC与ADO应用最多。具体ODBC及ADO详见相关理论部分。本系统采用ADO方式访问数据库。ADO数据库连接主要分两步进行:一是引用ADO,二是使用ADO连接数据库。
1. 引用ADO
在VB6菜单“工程”-“引用”从中选择 Microsoft ActiveX Data objects 2.8 library和 Microsoft ActiveX Data objects recordset 2.8 两个组件,这是在连接数据库前所必做的工作。
2. 使用ADO连接数据库
本系统采用的是无源的数据库连接方法,因为整个系统都会使用到这个数据库,所以将数据库的连接定义为全局变量。
Public Cn As New ADODB.Connection ‘定义数据源 Dim db_path As String ‘用于存放数据库的路径 Dim db_cn As String ‘连接数据源字符串
db_path = App.Path & "\Data\WMS.mdb" ‘指定数据库文件
db_cn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & db_path & ";Jet OLEDB:database password=123321;" ‘数据库连接字符串 Cn.Open db_cn ‘打开数据源 5.1.2 建立数据表
本系统采用了Access作为数据库管理系统。先启动Access2000程序,然后创建名为“WMS”的数据库。并为此数据库设置密码。在数据库中建立各表。
5.2系统模块
5.2.1基本管理模块 基本管理模块主要包括: ✧ 入库管理 ✧ 出库管理 ✧ 交接班
✧ 修改个人密码 ✧ 退出
1. 创建入库信息窗体
入库信息是采购人员购买货物时所填写的,是为了完成货物的正确入库才用到的。在新增入库单窗体中货物编号、导电情况、硬度均可通过单击相关的数据框来选择,数据选择框会进行动态智能化统计信息,使选择更方便,如图5-1所示。
图5-1 入库操作界面
2.创建出库信息窗体
出库信息是仓管出货是所要填写的,是为了完成货物的正确出库情况和仓库中的现存状况所用到的。在出库窗体中正确填写出库所需要的一些信息,以便管理,然后保存,如图5-2所示。
图5-2 出库操作按工单界面
3.创建交接班信息窗体
进入系统后,可选择“交接班”在不现用户之间进行切换。界面如图5-3所示。
图5-3 系统重登录界面
4.修改密码功能
设计思路和要点:用户如需修改自己的登录密码,需输入旧密码与新密码,程序在数据库中修改用户的密码。
界面如图5-4所示。
图5-4 修改密码界面
5.退出功能
退出即退出本系统。仓库管理主界面中退出即可。 5.2.2查询统计模块
查询统计模块主要完成的功能有:
✧ 库存查询(按日期查询、按人员查询、按物品查询) ✧ 货物出入统计(按月统计) 1. 库存的查询
设计思路和要点:分为按日期查询、按人员查询、按物品查询三方面查询,从而对库存状况进行统计,便于管理员查询。
按日期查询设计思路与要点:对系统的每一次操作能应及时地记录下来,以便日后查询。因此在数据库中单独创建一张表,用于记录系统的日常操作,即仓库的各种日常操作。通过此功能,可能追溯系统数据的整个变化过程。使整个系统的运行都在控制之内。
按人员查询,支持模糊查询,对仓库货物状况也能进行统计,界面如图5-5所示。
图5-5 按日期查询界面
按人员查询界面如图5-6所示。
图5-6 按人员查询界面
按物品查询,可以限定仓库,出入时间,它的界面设计如图5-7所示。
图5-7 按物品查询
2.货物出入统计
货物的出入统计,可以限定出入时间,一般按月份进行统计。
图5-8 按月统计窗体
5.2.3报表打印模块
报表打印完成的功能主要有:
单据报表打印(包括需采购物品打印、按月打印)
可根据需采购的物品打印,可按库存数量进行查询,如图5-9所示。
图5-9 需采购物品打印
1.按月打印
可根据月份查询出需要打印的物品,按月打印可根据需要打印入库、出库单,如图5-10所示。
图5-10 按月打印窗体
打印代码:
Private Sub Command3_Click() '打印 If Check2.Value = 1 Then With DataEnvironment1
If .rsprintinstorehouse.State = adStateOpen Then
.rsprintinstorehouse.Close End If
If Trim(Combo1.Text) = "" Then aa = Trim(Str(Month(Date))) Else
aa = Left(Trim(Combo1.Text), 1) End If
.printinstorehouse aa '对问号赋值
If .rsprintinstorehouse.RecordCount > 0 Then MonthinReport.Show Else
MsgBox ("没有找到记录!") Exit Sub End If End With End If
If Check1.Value = 1 Then With DataEnvironment1
If .rsprintoutstorehouse.State = adStateOpen Then .rsprintoutstorehouse.Close End If
If Trim(Combo1.Text) = "" Then bb = Trim(Str(Month(Date)))
Else
bb = Left(Trim(Combo1.Text), 1) End If
.printoutstorehouse bb '对问号赋值
If .rsprintoutstorehouse.RecordCount > 0 Then monthoutReport.Show Else
MsgBox ("没有找到记录!") Exit Sub End If End With End If End Sub
5.2.4维护设置模块
维护设置模块是为了仓库管理系统的稳定性和安全性而设计的,它完成的主要功能有:
✧ 职员信息 ✧ 数据整理 ✧ 用户管理
数据整理是对调查、观察、实验等研究活动中所搜集到的资料进行检验、归类编码和数字编码的过程。它是数据统计分析的基础。本系统的数据整理主要是对入库、出库以及库存信息的数据整理,其界面如图5-11所示。
图5-11数据整理界面
对登陆用户的管理,可以修改用户名,操作权限,新增,删除用户等。也可以修改当前登陆用户的密码,同时也可以更换用户登录。其界面如图5-12所示。
图5-12 用户管理
5.3输入输出
本系统界面标准Windows形式,键盘输入,人机交互,容易使用。输入输出的设计考虑美观实用和通俗易懂,图文并茂。
5.4系统安全设计
系统数据库中包含多个二维表,所以在系统与数据库的连接上,并没有把数据库和系统的连接直接写入代码,而是通过对服务器端进行系统设置,使数据库名及路径不可见,并通过ACCESS的数据库安全设置,保证了数据库的安全性。系统根据用户身份不同赋予不同权限,用户用密码登陆,同样也保证了系统数据的安全性。
第六章 系统测试
1.一般情况下,我们千辛万苦开发出的程序总会存在一些问题,这就需要进行测试。对于此系统的测试从以下几方面进行入手。 ✧ 菜单测试
检查每个菜单是否有效。 ✧ 各功能模块测试
设计一些数据,利用各个模块提供功能进行测试。并检查程序的防呆性,即程序是否能够有效地防止一些明显有错误数据进入系统。 ✧ 数据跟踪测试
打开后台数据库,检查各项数据是否与输入的一致。及各个表及表中数据是否一致。 2.程序错误类型及解决方法 ✧ 运行错误
在运行过程中,因为应用软件的不同,Access无法连接,使程序不能运行。 解决方法:寻找相同软件的电脑进行操作,检测它的可运行性,此问题已得到解决。 ✧ 编译错误
编译错误的产生原因是在程序代码中出现了不正确的代码,使系统不能正常运行,影响设计进度。
解决方法:在调试过程中,程序中的语法错误在代码编辑阶段就会被自动检测和识别通过此功能,我们对错误代码进行研究和改正,最终得以解决。
总结
随着计算机技术的普及和网络的发展,越来越多的教育单位开始重视信息化建设,利用先进的计算机和网络技术对仓库基本信息进行管理,提高工作效率,减少人力资源的浪费。本人结合仓库管理员对货物信息的具体管理需求,开发一套仓库管理系统。本系统经多次测试,能在Visual Basic6.0 的调试环境上正常运行,基本上实现了数据管理功能。
综上详细阐述了本系统的整个开发过程和实现功能,能够进行货物信息的录入、修改、查询、浏览、删除、统计等操作,整体界面美观大方,完成了仓库管理员对仓库管理工作的要求,适用于一系列的工作单位。本系统的应用,将会使员工和库管人员在第一时间内获得理想信息。
经过两个多月的毕业设计,一个完整的仓库管理系统终于设计完成了,在设计过程中,我意识到自己所学知识的不足,可以说关于这方面的接触才刚刚开始,深有感触,无以言表。关于本系统,虽然对仓库管理进行了系统的创建,但由于时间的不足,这个系统并不完美,在很多方面都有缺陷,比如:
✧ 在进行入库操作时,所输入的数据不能与原来的数据进行结合; ✧ 进行数据输入时,没有详细的文字说明和限制;
✧ 系统中没有内容分类,用户必须自己输入,在此,系统显出不方便处; ✧ 按月打印程序中,打印入库单和打印出库单还有不足; ✧ 临时离开后,所设的密码没有达到保密效果等;
✧ 本系统在余料设置中还有一定缺陷,由于时间问题,便不再做修改。
我们要在以后的实践中去检验它的可用性,特别要考虑它的实时性和安全性,在以后的工作和学习中,我们会多查询相关资料,反复地熟练应用,完善本系统,弥补本系统的不足,才能把系统设计的更巧、更好。在设计中,同学间的协作交流是非常重要的,协作交流是一种进步,带给我们新的思路。
经过这次毕业设计,引发了我很多的兴趣,让我体会到了思考的乐趣,首先是做程序要勤:手、眼、心齐到;其次要有韧性,不怕麻烦,不怕失败,反复调试,反复练习,这样才能做出最佳的程序设计。
致谢语
在本次毕业设计中,我学到了很多东西。非常感谢我的导师任红云给我的悉心关怀,让我顺利地完成了毕业论文,当然也感谢同学的帮助,使我学到很多新的知识,同时也懂得了更多的做学问的道理。
从选择毕业设计题目到毕业设计规范,查找相关资料,设计模型,具体实施,结束论文,在整个大致的流程中,我的导师给予我耐心的指导和关心,其间遇到很多困难,在此,对老师说声:老师辛苦了,谢谢老师三年的关怀和帮助。除此之外,还要谢谢我的小组成员,能完成这个设计还有其他同学的帮助,在此对大家表示衷心的感谢。
马上我就要走向工作单位,我会在以后的工作中完善现在的不足,会时刻鞭策自己,让自己做到更好。
最后,祝愿我的老师和学友们永远快乐。
参考文献
[1]学用Visual Basic 6.0/(美)Greg Perry编著 戴红,陈喆,姚娜译。清华大学出版社,2003
[2]Visual Basic 6.0程序设计教程/龚沛曾,陆慰民,杨志强编。高等教育出版社,2001.7 [3]Visual Basic 6.0入门与提高/张树兵,戴红,陈哲著。 清华大学出版社, 2000.11 [4]Access数据库程序设计教程/陈义平 清华大学出版社
[5]Visual Basic 6.0与可视化编程/汪远征,刘瑞新著。上海科学技术出版社, 2002.5 [6]Access数据库教程与实训/刘辉、张军、李云松等 中国林业出版社
[7]Visual Basic 6.0程序设计工程师/网冠科技编著。 机械工业出版社 2001.2