1、主要用于实现货物的库存查询、入库查询、借出查询、归还查询、警戒查询和出入库货物的年统计、月统计等功能。 系统维护模块主要用于实现数据的备份、还原和压缩功能。 帮助模块主要用于实现用户管理、更改密码、权限设置、关于本系统、重新登录和退出系统等功能。3.2 系统业务流程分析库存管理系统的业务流程如图 1 所示。3.3 系统功能结构库存管理系统的功能结构如图 2 所示。 4 系统设计4.1 设计目标本系统属于小型的数据库管理系统,可以对中小型企业库存进行有效地管理。通过本系统可以达到以下目标: 灵活的批量录入数据,使信息传递快捷。 系统采用人机交互方式,界面美观友好,信息查询灵活方便,数据存储安全可
2、靠。 实施强大的后台监控功能。 功能强大的出入库分析。 实现各种查询,如定位查询、模糊查询等。 实现货物进货分析与统计、货物出库明细记录等功能。 对用户输入的数据,系统进行严格的数据检验,尽可能避免人为错误。 系统最大限度地实现了易安装性、易维护性和易操作性。4.2 数据库设计 本系统采用SQLServer 2000作为后台数据库,数据库名称为db_SMS,其中包含了9张数据表。下面分别介绍。4.2.1数据表E-R图根据上面的设计,规划出的实体主要有:货物信息实体、货物入库实体、货物出库实体、货物借出实体和货物归还实体等。库存管理系统主要实体间关系E-R图如图4所示,货物信息实体E-R图如图5
3、所示。货物入库实体E-R图如图6所示,货物出库实体E-R图如图7所示。货物借出实体E-R图如图8所示,货物归还实体E-R图如图9所示。4.2.2主要数据表的结构tb_ User用户信息表字段名数据类型长度主键描述UserIDbigint8用户编号UserNamevarchar20否用户名称UserPwd用户密码UserRightchar10用户权限tb_BorrowGoods 借出货物表BGID借货编号GoodsName50货物名称StoreName100仓库名称GoodsSpec货物规格GoodsNum借货数量BGDatedatetime借货日期HandlePeople经手人BGPeople
4、借货人BGUnit借货单位BGRemark1000备注tb_ Provider供货商信息表PrID供货商编号PrName供货商名称PrPeople供货商联系人PrPhone供货商电话PrFax供货商传真PrRemark供货商备注Editer记录修改人EditDate修改日期tb_Check盘点信息表CheckID盘点编号GoodsID货物编号GoodsUnit计量单位CheckNum盘点数量PALNum盈亏数量CheckDate盘点日期CheckPeople盘点人CheckRemark盘点备注tb_GoodsInfo货物信息表货物数量GoodsInPricemoney货物入库价格GoodsOu
5、tPrice货物出库价格GoodsLeast货物底线存储GoodsMost货物顶线存储tb_InStore货物入库表ISID入库编号供应商名称入库数量GoodsPrice入库价格GoodsAPrice入库总金额ISDate入库日期ISRemarktb_OutStore货物出库表OSID出库编号出库数量出库价格出库总金额OSDate出库日期PGProvider提货单位PGPeople提货人OSRemarktb_ ReturnGoods归还货物表RGID还货编号RGNum归还数量NRGNum未归还数量RGDate归还日期RGPeople还货人RGRemarktb_Storage仓库信息表Store
6、ID仓库编号StorePeople仓库联系人StorePhone仓库电话StoreUnit仓库传真StoreDate仓库建立日期StoreRemark4.3 创建存储过程存储过程是SQL语句和可选控制流语句的预编译集合,以一个名称存储,并作为一个单元处理。本工程数据库使用7个存储过程。具体如下:1、proc_Login 存储过程proc_Login主要用于登录时判断用户输入的用户名和用户密码是否正确。create proc proc_Login(UserName varchar (20),UserPwd varchar (20)asif exists(select * from tb_User
7、 where UserName=UserName and UserPwd=UserPwd) return 100 else return -100go2、proc_InsertUser 存储过程proc_InsertUser主要用于向用户表中插入用户信息。create proc proc_insertUser(UserName varchar (20),UserPwd varchar (20),UserRight char (10)if exists(select * from tb_User where UserName=UserName) begin return 100 end inse
8、rt into tb_User(UserName,UserPwd,UserRight) values(UserName,UserPwd,UserRight)GO3、proc_updateUser存储过程proc_updateUser主要用于修改用户基本信息。CREATE proc proc_updateUserUserID bigint,update tb_User set UserPwd=UserPwd,UserRight=UserRight where UserID=UserID4、proc_insertCheck存储过程proc_insertCheck主要用于修改用户基本信息。creat
9、e proc proc_insertCheckGoodsID bigint,StoreName varchar(100),GoodsName varchar (50),GoodsUnit char (8),CheckNum bigint,PALNum bigint,CheckPeople varchar (20),CheckRemark varchar (1000)if exists(select * from tb_Check where GoodsID=GoodsID)insertinto tb_Check(GoodsID,StoreName,GoodsName,GoodsUnit,Che
10、ckNum,PALNum,CheckPeople,CheckRemark)values(GoodsID,StoreName,GoodsName,GoodsUnit,CheckNum,PALNum,CheckPeople,CheckRemark)4.4 创建触发器触发器是一种特殊的存储过程,它与数据表相结合,当数据表中的数据被更改时,触发器会被触发,执行相应操作,这说明了触发器是由数据库管理系统调用的。在SQL Server 2000,触发器分为两种,即After触发器和Instead of触发器。1、After触发器在执行了insert、update或delete语句操作之后执行After触发
11、器,它只能在表上指定。2、Instead of触发器该触发器在数据变动前触发,并且它会取代原来进行的操作。Instead of触发器可以在带有一个或多个基表的视图上定义。本工程的数据库用到了6个触发器。(1)trig_inGoods ON dbo.tb_InStoreFOR insert触发器触发器trig_inGoods 主要实现向货物入库表中添加新记录时,在货物信息表中自动添加或更新记录的功能(2)trig_inProvider ON dbo.tb_InStoreFOR insert触发器主要实现向货物入库表中添加新记录时,在货物信息表中自动更新记录的功能(3)trig_outGoodsO
12、N ON dbo.tb_OutStoreFOR insert,delete触发器触发器trig_outGoods主要用来实现货物出库时,自动更新货物信息表中对应货物相关记录的功能。(4)trig_brGoodsON dbo.tb_BorrowGoodsFOR insert,delete触发器主要实现向货物借出表添加或删除记录时,更新货物借出表中对应货物相关记录。(5)trig_reGoods ON dbo.tb_ReturnGoodsFOR insert,update,delete触发器主要实现向货物归还表添加、更新或删除记录时,更新货物归还表中对应货物相关记录。(6)trig_updateGInfo ON dbo.tb_ReturnGoodsFOR insert,update触发器主要实现向货物归还表添加或更新记录时,更新货物信息表中对应货物相关记录。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1