资源描述
毕业设计(论文) 货物出入库管理系统目 录摘 要1第一章、绪论31.1管理信息系统的概述31.2数据库应用系统开发简介31.3货物进出库管理系统简介5第二章 数据库理论基础82.1数据库系统设计82.2 SQL语言介绍9第三章 应用系统开发工具103.1 Visual Basic简介及实现原理103.2 数据库组件介绍103.3 SQL语言在VB中的应用113.4 Access 2000简述12第四章 货物进出库管理系统设计分析134.1需求分析134.2系统模块图144.3数据流程图154.4数据库设计16第五章 应用程序设计205.1程序结构205.2 程序源代码20设计总结37参考文献38摘 要随着现代工业的发展,计算机信息管理系统越来越受到企业重视。本文主要分析了货物进出库管理系统的一些基本功能和组成情况,包括系统的需求分析、系统结构,功能模块划分以及数据库模式分析等,重点对应用程序的实际开发实现作了介绍。达到了数据的一致性和安全性,且应用程序功能完备,符合了货物进出库管理系统作为典型的信息管理系统(MIS)的要求。同时简单介绍了Visual Basic编程环境和Access数据库管理系统的功能特点,货物进出库管理系统是企业物流管理中不可或缺的一部分。关键词:仓库管理,数据库,信息管理,VB第一章、绪论货物进出库管理系统是一个企事业单位不可缺少的一部分,货物进出库管理系统应该能够为用户提供充足的信息和快捷的查询手段,传统的人工方式管理仓库存在着许多缺点,诸如效率低,保密性差等,而且时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。使用计算机对产品仓库信息进行管理,具有着人工管理无法比拟的优点,它检索迅速、查找方便、存储量大、保密性好、成本低等,可减少更多的人力物力和财力,这些都能够极大地提高货物仓库的管理效率,也是企业仓库管理科学化、正规化,与世界接轨的重要条件。因此,开发一个货物进出库管理系统是很有必要的,具有其特有的技术意义和管理意义。1.1管理信息系统的概述管理信息系统是在管理科学、系统科学、计算机科学等的基础上发展起来的综合性边缘科学。在当今信息高速发展的社会中,管理信息系统具有很重要的作用。管理信息系统是一个由人、机(计算机)组成的能进行管理信息的收集、传递、存储、加工、维护和使用的系统。它是一个以计算机为工具,具有数据处理、预测、控制和辅助决策功能的信息系统。管理信息系统是一个人机系统也是一个一体化集成系统。管理信息系统是信息系统的一个子系统,它以计算机技术、通讯技术和软件技术为技术基础,同时将现代管理理论、现代管理方法及各级管理人员融为一体,为某个组织整体的管理与决策服务,是由人和计算机组成的能进行管理信息的收集、传递、存储、加工、维护和使用的系统。管理信息系统的基本结构可以概括为四大部件,即信息源、信息处理器、信息用户和信息管理者。因此,一个成功的管理信息系统应该具有可靠的硬件、实用的软件、强有力的现代化管理水平。管理信息系统的三大支柱是:计算机网络、数据库和现代化的管理。1.2数据库应用系统开发简介数据库应用系统开发的目标是建立一个满足用户长期需求的产品。开发的主要过程为:理解用户的需求,把它们转变为有效的数据库设计。把设计转变为实际的数据库并且功能完备、高效能。数据库技术产生于60年代,30多年来数据库技术得到了迅速发展,并已形成较为完整的理论体系。随着World Wide Web(WWW)的猛增及Internet技术的迅速发展,使得数据库技术成为最热门技术之一。1.2.1数据库数据库由DBMS(数据库管理系统)处理,DBMS则由开发人员和用户通过应用程序直接或间接地使用。它主要包括四个要素:用户数据、元数据、索引和应用元数据。一、用户数据目前,大多数主流数据库管理系统把用户数据表示为关系。现在把关系看作数据表。表的列包含域或属性,表的行包含对应的实体的记录。并非所有的关系都同样符合要求,有些关系比其它关系更结构化一些。二、元数据数据库是自描述的,也就是它自身包含了它的结构的描述,这种结构的描述称作元数据。因为DBMS是用来存储和操纵表的,因此大多数产品把元数据以表的形式存储,有时称作系统表。这些系统表存储了数据库中表的情况,每一个表中有多少列,哪一列是主关键字,各列的数据类型的描述,它也存储索引、关键字、规则和数据库结构的其他部分。三、索引第三种类型的数据改进了数据库的性能和可访问性,这种数据被称作开销数据,尽管有时采用其他类型的数据结构,但它主要还是索引。索引可以用来排序和快速访问数据。索引用于快速访问数据。例如,一个用户只想访问货物信息表中类别值为01的那些货物。如果没有索引,则必须搜索整个源表;但有了索引之后,可以找到索引条目,并使用它来挑选所有合适的行。索引对排序和查找是有帮助的,但是有代价的。货物信息表中的行每次改变时,索引也 必须随之改变,这意味着索引并不是随意的,应该在真正需要时保存。四、应用元数据存储在数据库中的第四种数据是应用元数据,它用来存储用户窗体、报表、查询和其他形式的查询组件。不是所有的DBMS都支持应用组件,支持组件的DBMS也不一定把全部组件的结构作为应用元数据存储在数据库中。但是大多数现代的DBMS产品存储这种数据作为数据库的一部分。1.2.2数据库管理系统数据库管理系统(DBMS)是指数据库系统中管理数据的软件系统。DBMS是数据库系统的核心组成部分。对数据库的一切操作,都是通过DBMS进行的。DBMS总是基于某种数据模型,根据数据模型的不同,DBMS可以分成层次型、网状型、关系型、面向对象型等。关系模型。关系模型主要是用二维表格结构表达实体集,用外键表示实体间联系。关系模型是由若干个关系模式组成的集合。关系模型和层次、网状模型的最大判别是用关键码而不是用指针导航数据,表格简单用户易懂。关系模型是数学化模型,SQL语言是关系数据库的标准化语言,已得到了广泛的应用。DBMS的特点和功能可以分为三个子系统:设计工具子系统、运行子系统和DBMS引擎。设计子系统有一个方便数据库及其应用创建的工具集。它典型地包含产生表、窗体、查询和报表的工具。DBMS产品还提供编程语言和对编程语言的接口。运行子系统处理用设计子系统开发的应用组件。它所包含的运行处理器用来处理窗体和数据库的数据交互,以及回答查询和打印报表等。DBMS引擎从其他两个组件接受请求,并把它们翻译成对操作系统的命令,以便读写物理介质上的数据。DBMS引擎还涉及事务管理、锁、备份和恢复。1.3货物进出库管理系统简介当今时代是信息大爆炸的时代,在各行各业中离不开信息处理,计算机被广泛应用于信息处理系统的环境。利用计算机能够进行信息管理,进行信息控制,不仅提高了工作效率,而且大大的提高了其安全性。计算机进行信息管理与信息管理系统的开发密切相关的,系统的开发是系统管理的前提。仓库作为一种货物资源的集散地,货物的种类繁多,包含很多的信息数据的管理。以前仓库进行信息管理的方式主要是基于文本、表格等纸介质的手工处理,对管理者的管理权限等不受约束,这样容易引起资料外泄。此外,数据信息处理工作量大,容易出错,数据繁多,容易丢失,且不易查找。总的来说,缺乏系统、规范的信息管理手段。因此,很有必要建立一个货物进出库管理系统,使货物管理工作规范化,系统化,程序化。提高信息处理的速度和准确性。1.3.1国内外同类管理软件的研究现状与发展趋势现在对这类系统的开发与研究很有实用性的,基本上能满足各企业的自身特点,对仓库的管理,同时,这类系统在不断地深入与发展,从而适用更多的企业,但是都没有针对大众的广泛应用,只能运用某个企业或单位,所以这一点还有待于进一步开发与实践。此类管理软件将会向带条码货物进出库管理系统方向发展,伴随这着管理信息化、网络化的发展,采用条码技术进行仓库管理,将是一个必然的发展趋势,也是要迫切解决的现实问题。随着信息化技术的不断提高和应用的日渐普及,更多的商品拥有自己的条码,采用条码不但可以作业效率,而且能确保资料正确,同时可以减少因人为失误所造成的损失。1、技术应用于仓库管理是实现仓库管理自动化的有效途径仓库品种多,数量大。因此,要实现快速、准确、高效的收发作业,仓储管理自动化势在必行。而实现管理自动化利用条码技术,也就是说入库及其包装上贴条码,用仓库信息管理系统进行作业,不光可以大大提高效率,同时也降低作业强度,还提高了产品收发作业准确率,进而实现仓库管理的全面自动化。2、技术应用于仓库管理对提高仓库作业效率有重要作用将条码技术和仓库管理信息系统结合起来,用于产品收、发、保管等全过程控制和管理,不仅改变了信息采集传统的手工作业方式,同时也降低了作业强度,还可避免由此造成的各种差错,提高作业效率和科学管库水平。3、技术应用于仓库管理是完善产品保障信息网络的重要手段储存产品信息是产品保障信息网络的重要组成部分,是做好产品供应保障工作的基础。产品保障信息网是实现物资储运全过程可视化的前提。条码技术在储存管理中的应用,可进一步完善系统各仓库之间及各仓库与作业主管部门之间的信息共享和交换功能,最终达到对产品的全程跟踪管理。 1.3.2货物进出库管理系统研究背景与意义目前,市场上也有很多软件商提供仓储管理方面的软件来满足各行业客户的需求,配合企业的信息化发展。但据抽样调查,这些软件的主要作用体现在提高效率和规范管理方面,而对企业业务流程优化和直接效益相关不高,仓储管理部门需要一套成本低、性能高、方便使用、功能完善的综合仓库管理信息系统来提供帮助。随着计算机技术的飞速发展,计算机在企业中应用的普及为了满足信息化管理的需要,实现仓库的电脑化管理很需要一个货物出入库管理系统第二章数据库理论基础2.1数据库系统设计一个成功的信息管理系统,是建立在许多条件之上的,而数据库是其中一个非常重要的条件和关键技术。信息管理系统所涉及的数据库设计分五个步骤:数据库需求分析、概念设计、逻辑设计、物理设计与加载测试。数据库设计的步骤主要是:(1)数据库结构定义:目前的DBMS有的是支持联机事务处理CLTP的操作型DBMS,有的可支持数据仓库、有联机分析处理CLAP功能的大型DBMS,有的数据库是关系型的、有的可支持面向对象数据库。所以选择DBMS,需要数据库结构定义。(2)数据表定义:数据表定义指定义数据库中数据表的结构,数据表的逻辑结构包括:属性名称、类型、表示形式、缺省值、校验规则、是否关键字、可否为空等。关系型数据库要尽量按照关系规范化要求进行数据库设计,为了使效率提高,规范化程度应根据应用环境和条件来决定。数据表设计不仅要满足数据存储的要求,还要增加一些如反映有关信息、操作责任、中间数据的字段或临时数据表。(3)存储设备和存储空间组织:确定数据的存放地点、存储路径、存储设备等,备份方案,对多版本如何保证一致性和数据的完整性。(4)数据使用权限设置:针对用户的不同使用要求,确定数据的用户使用权限,确保数据安全。(5)数据字典设计:用数据字典描述数据库的设计,便于维护和修改。2.2 SQL语言介绍2.2.1 SQL基础SQL(Structured Query Language,结构查询语言)是一个功能强大的数据库语言。SQL通常使用于数据库的通讯。ANSI即美国国家标准学会称,SQL是关系数据库管理系统的标准语言。SQL语句通常用于完成一些数据库的操作任务,比如在数据库中更新数据,或者从数据库中检索数据。使用SQL的常见关系数据库管理系统有:Oracle、 Sybase、 Microsoft SQL Server、 Access、 Ingres等等。标准的SQL命令,比如Select、 Insert、 Update、 Delete、 Create和 Drop常常被用于完成绝大多数数据库的操作。SQL语言的突出优点就是它的非过程化、统一,而且还是所有关系数据库的公共语言。SQL语言一次处理一个记录,对数据提供自动导航,它允许用户在高层的数据结构上工作,而不对单个记录进行操作,可操作记录集,所有SQL语句接受集合作为输入,返回集合作为输出。SQL的集合特性允许一条SQL语句的结果作为另一条SQL语句的输入。不要求用户指定对数据的存放方法,用户更易集中精力于要得到的结果;作为统一的语言,SQL可用于所有用户的DB活动模型,包括系统管理员、数据库管理员、 应用程序员、决策支持系统人员及许多其它类型的终端用户。2.2.2 SQL语句SQL语句概括起来可以分为数据操作语言,数据定义语言和数据控制语言几大组,它们用于对数据库数据的查询,修改和更新,是一种完备的数据处理语言。主要用到的数据操作语言主要是:SELECT:用于数据检索;INSERT:用于增加数据到数据库;UPDATE:用于从数据库中修改现存的数据;DELETE:用于从数据库中删除数据。第三章应用系统开发工具3.1 Visual Basic简介及实现原理Visual Basic(简称VB)是美国微软公司(Microsoft)于1990年推出的一套完整的Windows系统软件开发工具,可用于开发Windows环境下的各类应用程序,是一种可视化、面向对象、用事件驱动方式的结构化高级程序设计语言和工具,是目前使用最广泛的编程语言之一。至今以升级到了6.0版。VB的重要特点之一是可视性。系统引进了窗体和控件的机制,用于设计应用程序界面。用户通过在屏幕上生成窗体,在窗体中绘制所需要的控件和按钮,设计菜单和对话框,VB会自动生成相应的代码。VB的另一重要特点是事件驱动。当窗体或控件上发生一个事件时,VB立即把控制权交给程序员。程序员不必担心如何判断事件是否已发生,只需要编写一段代码告诉计算机在事件发生以后应该做什么工作就可以了。这样,设计一个Windows应用程序简化为用鼠标在屏幕上点击、拖拽并添加少量的代码就可以完成了,大大降低了对程序设计的要求,提高了应用程序的开发效率。利用VB的可视性特点,可方便的设计了程序的窗体界面,并在各个窗体中的合适位置绘制所需的每种控件。如要修改窗体或控件的某项属性,只需在相应的窗体或控件的属性窗口修改相应的参数便可达到需要的设计效果。利用VB的事件驱动性特点,只需在窗体或控件上的代码窗口中添加少量的代码,便可达到告诉当在相应的窗体或控件上发生某一事件时,它们在事件发生后应该做什么工作的目的。例如几个窗体上的添加、删除、返回按钮的作用,就是通过在各个相应按钮的代码窗口中输入相应的代码,来达到当在几个按钮上出现单击(Click)事件后,相应按钮实现添加、删除、返回的功能的。3.2 数据库组件介绍在使用Visual Basic开发数据库应用程序的时候,会经常使用数据库访问控件。这些控件包括:Data控件;ADO Data控件;DataList控件/DataCombo控件;DataGrid控件;MSChart控件。下面将分别对这些控件的主要功能及使用方法进行介绍。3.2.1Data控件Data控件是Visual Basic中最基本的数据库操作控件。它使用Recordset对象提供对存储在数据库中数据的访问。Data控件允许从一个记录移动到另一个记录,并显示和操纵来自被连接控件的记录的数据。许多其他的数据库操作控件都需要Data控件或类似的数据源控件(比如ADO Data控件)。Data控件可以执行大部分数据库访问操作,但是它并不能显示数据库中数据的内容。Data控件通常需要与其他控件结合使用。这些与Data控件结合使用的控件,可以称之为“数据觉察控件”。因为程序员无需编写任何代码,就可以在这些控件中显示当前记录的数据。当Data控件中当前记录发生变化时,数据觉察控件的内容也会随之发生变化。当与Data控件相连接时,DataList、DataCombo、DataGrid和MSHFlexGrid控件都能管理记录集合。所有这些控件都允许一次显示或操作几个记录。内部的Picture、Label、TextBox、CheckBox、Image、OLE、ListBox和ComboBox控件也是数据觉察的,能和由Data控件管理的Recordset对象的某个字段相连接。3.2.2ADO Data控件ADO Data控件与内部Data控件以及Remote Data控件(RDC)相似。用户可以使用ADO Data控件快速地创建一个到数据库的连接。3.2.3DataList控件/DataCombo控件DataList控件是一个数据绑定列表框,它可以自动地由一个附加数据源中的一个字段充填,并且可选择地更新另一个数据源中一个相关表的一个字段。DataCombo控件的功能与DataList控件完全相同,只不过DataCombo控件是一个组合框。3.2.4DataGrid控件在许多情况下,需要使用表格形式来显示数据库中的数据。这时就要借助于DaatGrid控件。用户可以设置DataGrid控件的DataSource属性为一个ADO Data控件,从而将ADO Data中的数据自动地填充到DataGrid表格中。这个DataGrid控件实际上是一个固定的列集合,每一列的行数都是不确定的。3.2.5MSChart控件MSChart控件的功能是以图形方式显示数据的图表。这会使枯燥的数据变得更加生动直观,增加了程序的实用价值。MSChart控件支持一下特性:1、真三维表示;2、支持所有主要的图表类型;3、数据网络成员支持随机数据,数据数组。3.3 SQL语言在VB中的应用1.SQL提供的实用函数为实现使用VB程序调用SQL语言访问Access数据库多个记录的目的,我们利用SQL提供的函数。Davg Function(求平均值)Dcount Function(计算满足条件的记录数)Dfirst Function(返回记录集的第一个记录的某个域值)Dlast Function(返回记录集的最后一个记录的某个域值)Dlookup Function(返回记录集中满足待定条件的记录的域值)Dsum Function(求和计算)Dmax Function(求最大值)Dmin Function(求最小值)利用以上的SQL函数能够方便地进行数据库文件记录地查询和统计工作,以Dsum为例,语法如下:Dsum(expr,clomain,criteria)例:计算目的港为英国地所有订单地运费总和。假定“Orders”是数据库文件中地一张表格,则x=Dsum(“Feight”,”Order”.”ship country=UK”)2.利用SQL访问多个记录地方法在进信息查询和统计地过程中,我们往往需要从记录集中根据待定的条件提取其中的一部分记录信息。这种改变基于数据库关系视图的记录集,这里我们介绍提取记录信息的有效方法。(1)建立一个新的查询set mydb=Open Database(“c:DIR1manage.mdb”)(打开数据库文件c:DIR1manage.mdb)set myquery=mydb.creat QueryDef(“monthquery”)(创建查询名为monthquery的查询)Myquery.SQL=”select*from OPNRPT where mid $(year,7,2)=”&yeartext.text&”(利用查询的SQL属性,建立查询依据,即查询的条件。这里用到了Setect Statement)以后如果需要这样的查询,只需要引用查询名”monthquery”即可。需要说明的两点是:使用前先定义Dim mydb AS Database及myquery AS querydef.查询”monthquery”没有使用Data控件,也就不直接显示信息。(2)如何设置Data控件的Recordsource属性设置Datasource属性的命令为:Data.Recordsource=”Setect Vss_code,voyage,Sum(weight)AS Weight20 from monthquery where ctn_size=20group by Vss_code,Voyage”在这个命令中字段名Vss_code为船名代码,Voyage为航次,ctn_size为集装箱号,weight为集装箱重量。计算机通过增加了条件的monthquery查询组成了新的记录集。AS为关键字表示,并定义了别名。通过这一个方法定义的记录集可以使用move和Find方法逐条记录的进行操作。3.4 Access 2000简述Access2000 是关系数据库开发工具,1992年,Microsoft Access作为第一个面向Windows操作平台的桌面数据库管理系统而诞生,它不但充分体现了面向对象的思想,提供可视化的编程手段,而且充分利用了Windows操作平台的优越性,采用与Windows完全一致的界面风格,使界面非常友好。在Access中,用户不需要编写复杂的程序就可以建立一个完整的数据库应用系统,是一个典型的开放式数据库系统,它可以和Windows下的其他应用程序共享数据库资源。数据库能汇集各种信息以供查询、存储和检索。Access 的优点在于它能使用数据表示图或自定义窗体收集信息。数据表示图提供了一种类似于 Excel 的电子表格,可以使数据库一目了然。另外,Access 允许创建自定义报表用于打印或输出数据库中的信息。Access也提供了数据存储库,可以使用桌面数据库文件把数据库文件置于网络文件服务器,与其他网络用户共享数据库。Access 是一种关系数据库工具,关系数据库是已开发的最通用的数据库之一。如上所述,Access 作为关系数据库开发具备了许多优点,可以在一个数据包中同时拥有桌面数据库的便利和关系数据库的强大功能。第四章 货物进出库管理系统设计分析.4.1 开发现状.4.1.1 自己开发的现状 到目前为止通过我大量的搜集资料已经基本了解设计这套系统所需要的模块以及各个模块的功能是什么。4.1.2 存在的问题 虽然知道这个系统的主要模块是什么,但是要实现这些模块的功能还需要知道该怎么样才能实现各个模块的功能。4.1.3 逻辑设计方案 1 弄清这个系统的流程是什么。 2 流程中的各个模块是什么及其功能。4.1.4 怎么样解决方案 通过总体设计来规划整个系统的结构和流程 4.2需求分析本套应用程序名称为“货物进出库管理系统”,主要用于仓库货物信息的管理,系统包括仓库管理、入库、出库、一些统计查询和报表等几部分组成。货物进出库管理系统需满足仓库管理员及工作人员的需求,他们具有登陆应用系统的权限,所以需要对工作人员的登陆本模块进行更多的考虑,设计不同用户的操作权限和登陆方法。对于一个仓库来说,最大的功能就是存储货物,所以仓库管理就是对货物信息,仓库信息,短线货物及超储货物的管理,用户可以根据实际情况对各种货物信息进行分类管理,包括添加,删除更新数据库等。当然,仓库中货物入库也是常有的事,入库管理操作就是对于货物入库情况的管理,用户可以方便地输入一些货物的信息。有了货物的入库,自然也就有货物的出库,这部分提供的功能与入库操作流程差不多,有所区别的只是对一些出库货物的管理,也很方便数据的输入。仓库货物的信息量大,数据安全性和保密性要求高。本系统实现对货物信息的管理和总体的统计等,仓库信息,供货单位和经办人员信息的查看及维护。仓库管理人员可以浏览、查询、添加、删除等货物的基本信息以及统计等,并可以对一些基本的信息生成报表形式,并打印输出的功能。报表是一个数据库中最重要的功能之一,有了报表才能清楚地知道货物的出入库情况,在数据报表功能中包括出库报表,仓库报表及经办人员报表等一些基本信息的打印,方便简洁。本系统基本涵盖了仓库管理的主要需求,具有完善细致的功能、友好的用户界面、强大的数据处理功能和完备的安全机制;随心所欲的查询和所见即所得的打印功能,并全面支持分析和决策的功能。 系统特色: 1.设置系统用户登陆功能,即时对系统数据进行安全设置与保护。 2.友好的用户界面,业务操作简单,进入系统即能使用。3.成熟先进的技术和系统构架,采用先进的数据库访问方式,数据更安全,性能更稳定。4.强大的数据处理能力和开放的数据接口,选用具有大型数据库安全机制的数据库系统,提供各种级别的数据保护和权限控制方式,确保数据的安全可靠。5.系统每种操作都可以通过菜单来进行。操作快捷、方便。易懂易会。系统集输入、维护、查询、统计和各种处理为一体,信息导入导出方便共享。货物进出库仓库管理入库管理出库管理盘存管理综合管理附项分类历史数据管理打印、查询系统货品信息管理货品仓库管理短线货品管理超储货品管理出库登记管理货品出库年度统计收货单位年度收货金额统计盘存录入货品出入库期间汇总表仓库信息管理供货单位管理收货单位管理经办人员管理4.2系统模块图基本模块与功能:1.系统包括用户管理,密码管理,关闭系统,以及数据的备份与恢复,可以根据需要对整个数据库进行备份,以确保数据的安全性。帮助:本系统的帮助信息,包括应用程序的版本信息;2.仓库管理货物信息管理:对仓库里的货物进行登记;货物仓库管理:管理仓库的仓库情况;短线货物管理:对仓库里短线的货物进行登记,以便及时采购补货;超储货物管理:对仓库里超储的货物进行登记,控制仓库量,减少进货;3.入库管理入库登记管理:能对货物的入库登记,删除,更改等;入库期间统计:货物入库期间年度的统计;供货单位期间供货金额统计:对货物供应的金额进行统计;4.出库管理对货物出库期间的年度统计,出库登记,及收获单位金额统计等;5.盘存管理对盘存货物信息的盘存录入;6.综合管理可根据同一货物的出入库情况,对仓库情况的汇总;7.附项管理对供货单位情况,经办人员,收货单位情况,仓库信息进行登记管理,可进行添加,删除等操作;8.历史数据管理对历史仓库,历史出库,历史出库情况进行管理;9.打印与查询可根据输入的条件,对货物的入库信息,仓库信息等进行简单查询和组合查询。登陆货物进出库管理系统验证用户信息系统主窗体仓库管理入库管理出库管理盘存管理综合管理附项分类历史数据管理打印、查询系统货品入库单经办人员报表货品出库单数据备份备份输出仓库汇总图41 货物进出库管理系统数据流程图4.3数据流程图 密码错误 汇总计算货物信息管理数据流程图:货品登记基本信息录入货品基本信息管理货品调配汇总出库货品信息管理入库货品信息管理货品其他信息管理图42 货品信息管理数据流程图4.4数据库设计本货物进出库管理系统是应用在单机系统上的,所以只需建立起一个数据库,在此数据库基础上建立起表格,现将部分数据结构表描述如下:货物信息表字段名数据类型字段长度是否为空货物编码文本5货物名称文本10类别文本8型号文本4单位文本2仓库编码文本5存放仓库文本12入库计划单价货币出库计划单价货币原始仓库数字长整型默认货位文本5警戒底线仓库数字长整型警戒高线仓库数字长整型表1货品信息表入库登记表字段名数据类型字段长度是否为空入库日期日期/时间入库单号文本10货物编码文本5数量数字长整型进货价货币总额货币已付货款货币供货单位编码文本5供货单位文本20经办人编码文本5经办人文本8增值税率数字单精度型备注备注表2入库登记表出库登记表字段名数据类型字段长度是否为空出库日期日期/时间出库单号文本10货物编码文本5货物名称文本10数量数字长整型单价货币出货价货币总额货币已收获款货币收货单位编码文本5收货单位文本20经办人编码文本5经办人文本8增值税率数字单精度型备注备注表3货品出库表仓库信息表字段名数据类型字段长度是否为空仓库编号文本5仓库名称文本12货物编号文本2存货种类文本2存货价值货币表4仓库信息表供货单位信息表(收货单位表)字段名数据类型字段长度是否为空单位编号文本5单位名称文本50单位地址文本50电话文本15联系人文本8表5供货单位信息表经办人员表字段名数据类型字段长度是否为空编号文本5姓名文本8家庭住址文本50办公电话文本15家庭电话文本15表6经办人员表用户表字段名数据类型字段长度是否为空UserID文本10userPWD文本6表7用户表另外,我们还建立了几张查询表,用以存放部分用于计算的统计信息,以便查询。入库登记统计表 入库登记_合计货物入库年度统计表入库登记_n供货单位年度供货金额统计表入库登记_w仓库汇总表仓库出库登记统计表出库登记_合计货物出库年度统计表出库登记_h收货单位年度收货金额统计表出库登记_d入库登记_合计表与出库登记_合计分别是以入库登记表和出库登记表为基础的,所以此处不再描述;仓库汇总表主要由出库表和入库表建立关系获得。入库登记_n字段名数据类型字段长度是否为空货物名称文本10入库日期日期/时间年度数量数字长整型表8 入库登记_n入库登记_w字段名数据类型字段长度是否为空供货单位文本50入库日期日期/时间年度供货总额数字长整型表9 入库登记_w仓库汇总字段名数据类型字段长度是否为空货物编码文本5入库日期日期/时间货物名称文本10数量(入库)数字长整型进货价货币数量(出库)数字长整型仓库数量数字长整型表10 仓库汇总表出库登记_h字段名数据类型字段长度是否为空货物名称文本10出库日期日期/时间年度数量数字长整型表11 出库登记_h出库登记_d字段名数据类型字段长度是否为空收货单位文本50出库日期日期/时间年度金额总额数字长整型表12 出库登记_d第五章应用程序设计5.1程序结构本应用程序由33个窗体组成,主要的分别是:主窗体,欢迎界面,登陆窗体,入库窗体,出库窗体,仓库汇总,打印及查询等窗体组成。通过运行程序首先进入欢迎界面和登陆窗体,通过输入密码,验证身份后进入主窗体,在主窗体上有10个菜单项,分别对应各自的功能模块窗体,包括系统,仓库管理,入库管理,出库管理,盘存管理,综合管理,附项管理,历史数据管理,打印和查询。需要哪个功能的时候就点哪个菜单,相对应的窗体会自动弹出。5.2 程序源代码程序实现的部分代码如下:公共模块Public date1 As StringPublic date2 As StringPublic gUserName As String 保存用户名添加执行SQL语句的函数Public Function transactSQL(ByVal sql As String) As ADODB.RecordsetDim con As ADODB.ConnectionDim rs As ADODB.RecordsetDim strConnection As StringDim strArray() As StringSet con = New ADODB.Connection 创建连接Set rs = New ADODB.Recordset 创建记录集On Error GoTo TransactSQL_Error strConnection = Provider=Microsoft.jet.oledb.4.0;Data Source=E:仓库管理kucun.mdb strArray = Split(sql) con.Open strConnection 打开连接 If StrComp(UCase$(strArray(0), select, vbTextCompare) = 0 Then rs.Open Trim$(sql), con, adOpenKeyset, adLockOptimistic Set transactSQL = rs 返回记录集 iflag = 1 Else con.Execute sql 执行命令 iflag = 1 End IfTransactSQL_Exit: Set rs = Nothing Set con = Nothing Exit FunctionTransactSQL_Error: MsgBox 查询错误: & Err.Description iflag = 2 Resume TransactSQL_ExitEnd Function主窗体的程序代码图51 主窗体界面 Private Sub a1_Click()Form1.ShowEnd SubPrivate Sub a2_Click()Dim fAdd As New frmAddUser fAdd.Show fAdd.ZOrder 0End SubPrivate Sub a3_Click()Dim fChangePWD As New frmChangePWD fChangePWD.ShowEnd SubPrivate Sub a4_Click()frmAbout.ShowEnd SubPrivate Sub a5_Click() 调入数据备份 Load main_sjbf main_sjbf.Show main.Enabled = FalseEnd SubPrivate Sub a6_Click() 调入数据恢复 Load main_sjhf main_sjhf.Show main.HideEnd SubPrivate Sub b1_Click()frm货物信息.ShowEnd SubPrivate Sub b12_Click() sql = select * from 货物信息 order by 货物编码 frmProInfo.createList (sql) frmProInfo.ShowEnd SubPrivate Sub b2_Click()frm货物仓库.ShowEnd SubPrivate Sub B3_Click()frm超储货物.ShowEnd SubPrivate Sub b4_Click()frm短线货物.ShowEnd SubPrivate Sub c1_Click()frm入库登记.ShowEnd SubPrivate Sub c2_Click()frm货物入库年度统计.ShowEnd SubPrivate Sub c3_Click()frm供货单位供货分类金额统计.ShowEnd SubPrivate Sub c4_Click()frm供货单位年度供货金额统计.ShowEnd SubPrivate Sub Command1_Click()date1 = Text1.Text & / & Text3.Text & / & Text2.Textdate2 = Text6.Text & / & Text4.Text & / & Text5.TextText7.Text = date1End SubPrivate Sub d1_Click()frm出库登记.ShowEnd SubPrivate Sub d2_Click()frm货物出库年度统计.ShowEnd SubPrivate Sub d3_Click()frm收货单位期间收货统计.ShowEnd SubPrivate Sub d4_Click()frm收货单位年度收货金额统计.ShowEnd SubPrivate Sub e1_Click()frm盘存录入.ShowEnd SubPrivate Sub e2_Click()frm盘存表.ShowEnd SubPrivate Sub f1_Click()frm货物出入汇总表.ShowEnd SubPrivate Sub g1_Click()frm经办人员.ShowEnd SubPrivate Sub g2_Click()frm供货单位.ShowEnd SubPrivate Sub g3_Click()frm仓库信息.ShowEnd SubPrivate Sub g5_Click()Form6.ShowEnd SubPrivate Sub h1_Click()frm历史仓库.ShowEnd SubPrivate Sub h2_Click()frm历史入库.ShowEnd SubPrivate Sub h3_Click()frm历史出库.ShowEnd SubPrivate Sub i1_Click()DataReport1.ShowEnd SubPrivate Sub i2_Click()DataReport2.ShowEnd SubPrivate Sub i3_Click()DataReport3.ShowEnd SubPrivate Sub j1_Click()Form2.ShowEnd SubPrivate Sub j2_Click()Form3.ShowEnd SubPrivate Sub j3_Click()Form4.ShowEnd SubPrivate Sub j4_Click()Form5.ShowEnd SubPrivate Sub Toolbar1_ButtonClick(ByVal Button As ComctlLib.Button)Select Case Button.KeyCase Is = rk 调入入库登记c1_ClickCase Is = ck 调入出库登记d1_ClickCase Is = kchz 调入仓库汇总f1_ClickCase Is = zhcx 调入组合查询j4_ClickCase Is = sjbf 调入数据备份a5_ClickEnd SelectEnd SubPrivate Sub x_Click()EndEnd Sub 登陆模块的实现Private Sub cmdLogin_Click()denlu_name = txtUserName.Textdenlu_pass = txtPassword.TextDim mycn As New ADODB.ConnectionDim myrs As New ADODB.RecordsetSet myrs = New ADODB.Recordsetmycn.Open Provider=Microsoft.Jet.OLEDB.4.0;Data Source=kucun.mdb;myrs.Open SELECT * FROM 用户 where userID= + denlu_name + ;, mycn, adOpenKeyset, adLockOptimisticIf myrs.BOF = True And myrs.EOF = True ThenMsgBox 查无此人, , 登陆信息Else If myrs(userPWD) = denlu_pass Then MsgBox 身份正确, , 登陆信息 main.Show Unload Me Else MsgBox 密码不正确, , 登陆信息 End If End If End Sub 添加用户模块的实现Option ExplicitPrivate Sub Command1_Click() Dim sql As String Dim rs As ADODB.Recordset If Trim(UserName.Text) = Then 判断用户名称是否为空 MsgBox 请输入用户名称!, vbOKOnly + vbExclamation, 警告 Exit Sub UserName.SetFocus Else sql = select * from 用户 where UserID= & UserName & Set rs = transactSQL(sql) If rs.EOF = False Then 判断是否已经存在用户 MsgBox 这个用户已经存在!请重新输入用户名称!, vbOKOnly + vbExclamation, 警告 UserName.SetFocus UserName.Text = PassWord.Text = ConfirmPWD.Text = Exit Sub Else If Trim(PassWord.Text) Trim(ConfirmPWD.Text) Then 判断两次密码是否相同 MsgBox 两次输入的密码不一致,请重新输入密码!, vbOKOnly + vbExclamation, 警告 PassWord.Text = ConfirmPWD.Text = PassWord.SetFocus Exit Sub ElseIf Trim(PassWord.Text) = Then 判断密码是否为空 MsgBox 密码不能为空!, vbOKOnly + vbExcla
展开阅读全文