1仓库管理系统一实验目的学习使用vs2008开发数据库应用程序的一般方法及步骤;熟悉数据库引擎BDE、ADO,熟练使用数据库程序开发中的相关组件;对前面所学的知识做一总结与回顾。二实验内容系统分析及数据库设计随着科学技术的发展,社会进步,计算机迅速的发展,仓库管理的方法也日新月异,以前全是由人管理的方法现存在很多的缺点:管理效率低,劳动强度大,信息处理速度低而且准确率也不够令人满意。为了提高仓库管理效率,减轻劳动强度提高,信息处理速度和准确性;为仓库管理员提供更方便、科学的服务项目。为仓库管理员提供的一种更先进、科学的服务系统。于是我们便选择了由计算机来设计一个仓库管理系统的方案。让计算机对仓库进行准确的管理,仓库管理员可以直接在计算机上实现仓库的信息管理,并能在一定程度上实现一定的自动化。系统基本功能实现系统的核心是入库、库存和出库三者之间的联系,每一个表的修改都将联动的影响其它的表,当完成入库或出库操作时系统会自动地完成库存的修改。查询功能也是系统的核心之一。仓库管理各种信息的输入,包括入库、出库、还库、用户信息、供应商信息、商品信息等。仓库管理各种信息的查询、修改和维护。我们设计了用户管理、供应商管理、商品信息管理、入库管理、出库管理、查询管理六个主要模块。系统高级功能实现系统的核心是对商品信息的管理,商品的入库、出库、库存,当三者之间有变化的时候就需要对相应的数据进行修改,如进货的时候,要添加入库信息,当然库存信息也要随着增加,同理出库也是一样,出去了一件商品相应的库存就要少一件商品,达到数据信息的统一性,方便管理人员进行处理管理系统运行测试和发布系统的整个的运行是在计算机上逐步完成的,每一步都是经过相应的操作方能完成,可能运行的有点慢但是总的还是可以正常的管理操作,有不好的地方希望与我们组联系,以后改进。三实验步骤系统需求分析仓库管理系统主要用于仓库货品信息的管理,系统包括仓库管理、入库、出库和查询等几部分组成。仓库管理系统实现对货品信息的管理和浏览等。仓库管理人员可以浏览、查询、添加、删除等产品的基本信息。(1)可以进行对用户的一个管理,包括用户的信息,用户信息的修改等;(2)商品的供应商的信息的一个管理,供应商的基本信息,添加、删除、修改查询等;(3)产品入库管理,填写入库单,确认产品入库;(4)产品出库管理,填写出库单,确认产品出库;(5)可以查询产品入库情况、出库情况、当前库存情况,可以按入库出库编号,商品编号或者是商品名称等进行查询;2系统功能模型图如下:系统功能设计(1)基本信息管理基本信息包括用户信息、供应商信息和库存信息及入库出库的记录信息等。在产品入库时,需要提供供应商的信息;在产品出库时,也需要提供供应商的信息。基本信息管理模块可以实现以下功能:添加、修改、删除和查看用户信息;添加、修改、删除和查看供应商信息;添加、修改、删除和查看商品信息。(2)商品信息管理产品信息管理模块可以实现以下功能:⑴添加产品信息;⑵修改产品信息;⑶删除产品信息;⑷查询产品信息;(3)仓库管理操作进行入库和出库操作。入库操作需要记录相关的产品信息、仓库信息、客户信息、入库时间等信息;出库操作需要记录相关的产品信息、仓库信息、出库时间等信息。(4)查询管理功能查询管理模块可以对仓库产品进行各种类型的查询,从而能够全面的了解仓库情况。数据库设计我们设计的数据库共有6个表,分别是:用户信息表、供应商信息表、库存表、入库信息表、出库信息表、商品信息表。其中库存表与入库出库表有直接的关系,当每执行一次入库还是出库的操作的时候,库存表的信息都要发生改变,三者是有联系的,我们做的这个不是很智能只是通过对数据的修改来完成这个入库出库的操作。每次入库的时候都要核对供应商的信息以防止发生错误,在出库的时候也要查询是否有库存有的话才能进行出库,反之则不能进行出库。仓库管理系统用户管理供应商管理查询管理出库管理入库管理商品管理3如下所示各个表的数据字段:商品信息表:字段名类型说明商品编号Varchar(10)商品编号商品名Varchar(20)商品名商品型号Varchar(20)规格型号商品类型Varchar(10)种类制购类型Varchar(10)制购类型提前期时间日期提前的日期批量int量日期时间日期时间用户信息表:供应商信息:字段名类型说明供应商IDVarchar(4)ID厂商名称Varchar(20)厂商名称联系人Varchar(10)联络人公司地址Varchar(50)公司地址电话Varchar(20)电话邮政编码Varchar(10)邮政编码传真Varchar(20)传真电子信箱Varchar(20)电子信箱备注Varchar(200)备注省市自治区Varchar(10)归属地字段名类型说明编号varchar(4)编号用户名Varchar(10)用户姓名性别Varchar(2)性别职务Varchar(10)职务登录名Varchar(10)登录名密码Varchar(10)密码状态Varchar(4)是否激活4库存信息表:字段名类型说明商品名称Varchar(20)商品名商品编号Varchar(20)商品编号商品规格Varchar(10)规格商品单价货币商品单价当前库存量int当前库存量入库信息表:字段名类型说明入库编号Varchar(10)入库编号商品编号Varchar(20)商品编号商品名称Varchar(20)商品名供应商编号Varchar(20)供应商编号商品单位Varchar(20)规格型号商品单价货币单价商品数量数字商品数量入库时间时间日期时间经办人Varchar(10)管理员备注Varchar(50)备注出库信息表:字段名类型说明出库编号Varchar(10)入库编号商品编号Varchar(20)商品编号商品名称Varchar(20)商品名商品单位Varchar(20)规格型号商品单价货币单价商品数量数字商品数量出库时间时间日期时间经办人Varchar(10)管理员备注Varchar(50)备注5系统实现我们的设计使用delphi来做的,所以每一块都是采用的delphi的简单的设计思想,由于能力有限做的只是从一个窗口打开到另外一个窗口的操作,同一个界面只能进行此时的操作,不能同时打开多个窗体进行操作。总共是六个模块,完成这个系统,每个部分完成相应的功能。开始的系统分析中已经分析过了,我们的这个系统是面向人的一个操作的,由人来触发操纵这个系统管理相应的数据。我们要实现的是对人员信息,商品信息、供应商信息还有就是出库入库的操作,最后还有就是查询的操作,整个系统就算是完了四重点难点我们在这个系统的整个的编写过程中遇到了很多的问题,具体的简单问题如下:(1)在刚刚开始的时候,我们不知道可以建立一个共有的数据库的连接,所以在建一个窗体的时候我们就连接一次数据库后来通过和别人的交流,知道要建一个公共的连接,所以后来才有了现在的公共的连接的一个form,数据库连接好之后还是有问题总是显示不出来,每次都是的总是显示不出来,原因是adoquery的active每次都不会自动的置为true而是必须我自己修改一下保存了之后就变为true,运行一次就要变一次,所以每次运行之前还都要从新设置一下。(2)在我们对这个系统进行数据分析的时候,有一点就是要保持数据的统一性,完整性,开始的时候我还不是很注意这一点就是在做简单的数据的增删改的操作,但是后来仔细的想一想还是不对,我们经过仔细的商量和在网上的搜索,结果还是想到了,必须把这三个表连在一起,不管是入库还是出库都要对库存信息进行修改才对,我们是通过用adoquery的locate的功能进行查找记下查找到的库存信息,取一个i对这个数据先进行保存,然后要是入库的话就是把新加进来的数量加上这个i然后再赋给库存信息的库存数量,代码如下:i:=strtoint(DBEdit19.text);ADOQuery3.Post;ADOQuery2.Active:=true;ADOQuery2.Locate('商品编号',DBEdit21.text,[]);j:=strtoint(DBEdit15.Text);ADOQuery2.Edit;DBEdit15.Text:=IntToStr(i+j);ADOQuery2.Post;出库也是一样的,利用这个i把原有的库存信息的库存数量进行保存提取然后减去出库的数量结果再赋给库存量就行了,我们也是不太会做问别人还有在网上查资料才找到的。(3)在做查询的时候,我们基本上都是用的adoquery的select语句做的,刚刚开始的时候我们的select的语句总是写错,执行不了,我们的查询语句不知道该怎么写是好了所以后来就全部用like写了,这样写就没有那么多的错误了,如我们的对库存的查询:ADOQuery1.SQL.Clear;ADOQuery1.SQL.Add('select*from库存信息where商品编号like'''+edit1.Text+'%''');ADOQuery1.Open;我们的查询就是用like做的,通过参数的查询查找到相应的数据,刚开始的时候我们写的是ADOQuery1.SQL.Add('select*from库存信息where商品编号'''+edit1.Text+'%''');但是就是运行部出来,写法上应该是没有问题但是就是运行部出来,后来就加了一个like就对了,也许是like的查询更广吧!(4)在做对供应商的查询的时候,我们做的是一个下拉的combox,下拉下来选择相应的项目进行参6数查询,但是所有的语法都是没有问题的,只有在对供应商ID的进行参数查询的时候出问题了,就是查不出来,为此还专门找人帮我调了好久,结果是问题在对ACCESS的建表的时候‘供应商ID’输成了‘供应商ID’多了一个空格,查询的时候计算机不认就查不出来,这样的问题真的是不应该犯啊,为此我们可是费了好大的劲啊!(4)在对修改的数据进行保存的时候出了点问题,就是如果数据并没有修改如果直接点击保存的话会报错,原因是数据并没有做任何的修改,adiquery并不支持这样的保存,起初并不是很在意都是修改了一下然后就点保存是可以的,但是后来发现是不完善的,后来就做了简单的修改,如果没有进行修改则,保存按钮时灰色的,不能点击,而且一旦进行修改了之后它也会变成灰色,避免了因为没有修改而点击报错的问题。(5)还有就是我在做这个登录界面的时候,由于开始的时候不是先做的登录界面,我们是直接做的主界面,做完主界面的时候发现没有做登录界面,我们找了一些资料,做了一下这个登陆界面,但是刚刚开始的时候连接不上,找到的一些方法好像就是用不成,本来也是想做一个权限的限制的但是发现不好做,一个权限就要对应一个主界面,无疑是增加了很大的工作量,综合考虑我们就没有做这个权限的问题。最后还是就现在这个登录界面,输入用户名,密码正确则进入错误就不能进行访问五系统评价我们组的这个我觉得做的不是很好,用的方法都很简单,但是总的来说还是挺好的,我们给自己打个84分吧,感觉还行,基本的功能都已经完成了,也没有什么大的问题,当然还是有不好的不完善的地方,有些地方时没有做好的,做的不对,就像是查询的时候查询完第一次当把当前窗口关闭再从新打开的时候上次查询的结果还在原来的地方并没有清除。、我们组是三个人,组长(肖亚磊)做的是:登录界面、主界面、用户还有供应商及商品管理这几块。组员(郁会杰)做的是:入库、入库查询、商品信息查询这几个模块。组员(金俏俏)做的是:出库、出库查询、库存查询这几个模块。我觉得我们组做的不是很好但是基本功能都是实现了,界面做的也可以只是有点单调而已故打分如下:肖亚磊(组长):85分郁会杰(组员):83分金俏俏(组员):83分7六心得体会肖亚磊:我觉得我这次的课程设计对我的帮助很大,因为刚刚开始的时候我对这个面向对象程序设计理解的还不是很深,所以学的也不是很好,只是会简单的画界面啊,做一些简单的程序,没有真正的从一个开发着的角度去合理的利用delphi可视化开发工具,我觉得这个delphi是