《信息管理系统大作业设计.doc》由会员分享,可在线阅读,更多相关《信息管理系统大作业设计.doc(23页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、 仓库管理信息系统的设计信息管理与信息系统 张鑫宇1.1 系统功能模块设计生命周期法要求我们按照系统的生命周期来进行系统开发,系统的需求分析为系统开发人员指明了系统开发大方向,根据第二章的需求分析,我们得知系统有如下的功能需求:用户管理,商品管理,供应商管理,库存管理,系统维护和帮助说明。在对个功能模块进行设计分析后得到如图 1所示的仓库管理信息系统功能结构图。图 1 系统结构功能图1.2 系统数据库设计系统数据库设计首先是数据库概念结构设计,数据库概念结构设计是在需求分析基础上,设计出满足用户需求的实体及它们之间的联系。概念数据模型是在数据库设计过程中对现实世界特征的第一层的数据抽象,也是数
2、据库设计员和用户之间进行交流的语言。E-R图即实体联系图,就是一种概念数据模型,能够方便、准确的表示出现实世界中的概念,并易于用户理解。本系统采用分离法绘制E-R图。供应商实体属性如图 2所示。图 2 供应商实体属性图商品实体属性如图 3所示。图 3 商品实体属性图入库信息实体属性如图 4所示。图 4入库信息实体属性图出库信息实体属性如图 5所示。图 5出库信息实体属性图库存实体属性如图 6所示。图 6 库存实体属性图实体联系如图 7所示。图 7 实体联系图数据表是数据库逻辑设计的具体实现,是数据库的实质性内容。本系统设计了六张数据表。仓库用户表保存了所有用户的信息,因该系统为简化的仓库管理系
3、统,因此不对用户做权限设置,所以所有表内的用户都可对系统进行管理操作。表 1用户表列名数据类型长度描述用户编号varchar6设置为主键用户名称varchar10密码varchar10供应商信息表存储了所有与用户有业务来往的供应商详细信息表 2供应商基本信息列名数据类型长度描述供应商编号varchar30设置为主键,系统自动生成供应商名称varchar30供应商名称长度为15字供应商地址varchar50供应商具体地址为25个字联系人varchar12与供应商具体人员进行联系,输入为中文联系电话varchar160-9之间的数字及“-”传真varchar160-9之间的数字及“-”邮政编码va
4、rchar6邮编六位所属地区varchar10具体地址的上级地区开户银行varchar25用于商业汇款银行账号varchar25目前银行账号16或19位备注varchar50特殊信息添加,可为空商品基本信息表用于存储已登记的供应商所供应的所有商品详细信息表 3商品基本信息列名数据类型长度描述商品编号varchar30设置为主键,系统自动生成商品名称varchar30商品名称长度为15字商品简称varchar10拼音缩写规格varchar12一单位商品的含量保质期varchar10产地varchar30单位varchar6包装单位商品单价money8商品进货价批发价money8零售价money8
5、供应商编号varchar30供应商名称varchar30备注varchar50特殊信息添加,可为空入库信息表保存了所有的入库操作表 4商品入库信息列名数据类型长度描述供应商编号varchar30供应商名称varchar30入库编号varchar30设置为主键,系统自动生成商品名称varchar30入库商品名称商品规格varchar12一单位的含量商品单位varchar10包装单位商品数量varchar10入库商品实际数量商品单价money8商品进货价入库日期datetime8经手人varchar12办理商品入库的人员名备注varchar50特殊信息添加,可为空出库信息表内记录了系统内所有商品的
6、出库操作表 5商品出库信息列名数据类型长度描述出库编号varchar30设置为主键,系统自动生成入库编号varchar30商品名称varchar30出库商品名称商品单位varchar10商品数量varchar10出库商品实际数量商品单价money8出库日期datetime8经手人varchar12办理商品出库的人员名备注varchar50特殊信息添加,可为空库存表通过商品入库信息和商品出库信息得到,显示了仓库库存商品的信息。表 6库存表列名数据类型长度描述商品名称varchar30库存商品名称商品单位varchar10商品规格varchar12商品单价money8商品数量varchar10库存
7、商品数量1.3 系统内编码设计编码的设计、管理和维护是企业物资管理信息系统的一项基础性工作,也是企业物资管理信息系统成功使用及运行的关键。所谓编码就是对被管理的对象的有关属性分别设定一个标识代码。其目的是便于对象的识别和统计处理,提高有关信息处理的准确性和时效性。对于企业来讲,编码工作的重要意义在于:(1) 有利于信息管理和处理的一致性和正确性。对物资进行统一编码后,每一种物资对应一种编码,所有的处理都以编码为基准,可以有效地避免物资漏记、错记等现象。(2) 有利于防止物资管理中的营私舞弊等不良事件的发生。如果企业对物资进行统一编码,并采用计算机进行管理后,要求企业必须制定合理的物资管理流程和
8、严格的操作规程。各业务部门的有关工作人员,必须严格按规定的业务流程和操作规程进行各自的业务处理。(3) 有利于实现计算机和网络的管理和处理。良好的编码方法可有效的提高计算机对物资管理有关信息的记录、统计、核算的效率和质量,且有利于数据处理程序的编写。编码的一般原则:(1) 唯一性:要求一种具体的对象有且只有一个标增性编码。(2) 完整性:要求对所有的对象的都要进行编码,不能遗漏。(3) 扩展性:要求在满足当前物资管理的基础上,还应保留足够的空位,便于未来添加未来可能出现的新增物资。(4) 分类性: 按一定的标准,将种类繁多的对象分成不同的类别,使同一类对象在某一方面具有相同或相近的性质,这样便
9、于计算机实现管理和处理。(5) 一贯性: 编码所采用的方法要长期延用下去,若中途更改工作量会太大10。本系统编码设计为实体拼音缩写与日期系统内序号结合。通过实体拼音缩写实现唯一性、完整性和分类性;通过年月日格式的日期实现扩展性和一贯性;通过系统内的记录编号实现唯一性和一贯性。系统编码设计满足上述编码原则。例如供应商编码格式为供应商拼音缩写加上系统现在时间年、月、日和系统内的记录号。如GS,003代表该记录是系统内的第三条供应商记录。1.4 系统界面设计这是一个越来越注重包装的社会,美丽的事物总是无法让人抗拒作,出色的外观对于商品的推广和销售有着举足轻重的作用。在软件行业,面对激烈的市场竞争,作
10、为商业化的管理系统,系统开发人员也逐渐开始重视系统的外观设计,靓丽的外观,用户使用起来赏心悦目,对系统软件的销售有着巨大的推动作用。Delphi在系统几面美化上有着得天独厚的优势,Delphi有着许多用于系统美化的第三方控件。如ThemeEngine和SkinPack。本系统主要还是应用Delphi的控件进行界面设计。Image控件可添加几界面背景图片,背景图片可用Photoshop进行美化编辑。功能按键采用additional组件下的speedButton控件,speedButton可以添加功能图标并可以设置成透明效果。功能化图标显示比纯文字更为直观。系统整体窗体文件都应用了win32组件下
11、的Xpman控件,该控件可以使界面窗体产生Windows Xp操作系统的外观效果4。系统启动缓存界面如图 8所示,是点击系统exe可执行文件后首先出现的界面,用于显示系统数据库连接,若连接成功进入系统登录界面,失败则弹出提示信息,提示用户检查配置,查看数据库设置。图 8数据库连接缓存界面图 9是数据库连接失败是出现的提示框,用户应检查后台数据库设置。图 9连接失败提示框在主界面的设计上采用上面介绍的控件之外还应用system组件下的timer控件实时显示系统时间。图 10系统主界面按照仓库管理的逻辑顺序,首先应进行供应商信息的添加,供应商信息操作界面可实现供应商信息的添加、修改、删除操作。图
12、11供应商信息操作界面供应商信息添加页面,其中供应商编号由系统自动生成,具有唯一性,编号具体实现在代码部分再做论述。系统具有容错功能,可避免用户的错误添加操作。联系电话和传真栏内只能输入数字和“-”号,邮编一栏里只能输入数字,若用户误输入其它字符,系统会弹出错误提示框。图 12供应商信息添加界面供应商信息修改界面同供应商信息添加界面类似,在此不再作具体论述。供应商信息添加完成后方可进行供应商商品添加,商品添加界面可进行商品信息添加、修改、删除操作。图 13商品基本信息操作界面商品信息修改界面,商品编号也是有系统自动生成,具备唯一性。界面内运用standard组件下的combox控件实现供应商编
13、号下拉,使得用户按照先添加供应商信息后才能添加商品信息的顺序进行仓库管理。选定供应商编号后,因为编号具有唯一性,这里就根据编号进行供应商名称判定,供应商名称会自动添加至名称栏内。修改后,点击保存按钮,便可保存修改后的商品信息。图 14供应商信息修改界面完成上述的供应商信息和商品信息添加后,若有商品入库便可进行入库操作,同样选择用下拉combox控件选择供应商编号,供应商名称系统自动添加,入库编号系统自动生成,商品名称也用combox控件实现自动选择添加,商品规格、商品单位、商品单价都根据上述输入条件自动调用商品信息表进行添加。入库日期填制用win32组件下的DateTimePicker控件实现
14、。图 15商品入库添加界面添加完成后的商品入库信息在DBGrid内显示,如图 16所示。图 16商品入库操作界面系统内入库商品进行出库,出库信息添加通过入库编号进行,实现了商品先入库后出库。如图 17所示,出库编号也是系统自动生成,商品名称、商品单位、商品单价则由根据入库编号自动添加。商品数量一栏,若用户输入的出库数量大于库存数量,则系统自动弹出出错提示,提示用户检查库存重新输入。图 17商品出库添加界面系统内所有出库信息显示,若部分数据输入错误或数据失效可进行删除操作。图 18商品入库操作界面商品库存查询界面,仓库管理最重要的数据是现有库存数量9。因此库存查询是仓库管理信息系统内很是重要的一
15、块内容,本系统的库存查询根据商品名称进行查询。通过2个speedButton控件和1个DBGrid控件可实现全部商品库存和单一商品库存的查询功能,如图 19所示。图 19商品库存查询界面点击库存查询界面的图标按钮可显示商品库存数量的柱形图,图表是一种用来表达和传递信息的工具15,图表使得信息的表达变得鲜明生动。图 20库存图表显示界面数据是企业重要的资源,而在计算机网络时代的今天,只要发生数据传输、数据存储和数据交换,就有可能产生数据故障。在信息系统建设中,作为数据信息安全性的考虑,数据备份和数据恢复是信息系统中必不可少的功能14。本系统建立就简单的数据备份与恢复功能,主要是为了减少和避免用户
16、的误操作和系统环境的原因致使数据信息破坏而照成损失。图 21系统数据备份界面数据恢复是根据备份的数据进行系统数据恢复。图 22系统数据恢复界面 仓库管理信息系统的系统实现系统主要功能模块的实现系统关键代码系统启动连接代码调用DM,本系统把数据连接控件都放置在一个窗体DM里面,方便了连接查询和控制。若ADOConnection控件未与SQL Server2000数据库进行连接,弹出错误提示框。Application.CreateForm(TDM, DM); if not DM.ADOConn.Connected then begin ShowMessage(连接后台数据库失败,请检查配置是否完好
17、,数据库是否存在); halt; end;若数据库已连接,则调用系统登录界面 Application.CreateForm(Tmain,main); SC.Hide; Sc.FreeOnRelease; Application.CreateForm(TLOGIN,LOGIN); LOGIN.ShowModal; LOGIN.Free; Application.Run;系统登录界面运用ComboBox,SpeedButton和edit控件完成系统登录设计。用Combobox控件得到后台数据内的所有用户名,防止为登记用户登录。procedure TLOGIN.ComboBox1DropDown(S
18、ender: TObject);var i:integer;begin ComboBox1.Clear; DM.QUSER.Open; if (DM.QUSER.RecordCount0) then DM.QUSER.First; for i:=0 to DM.QUSER.RecordCount-1 do begin /得到所有用户名称 ComboBox1.Items.Add(DM.QUSER.FieldByName(用户名称).AsString); DM.QUSER.Next; end;end;确定登录系统的用户名后,在edit空间中输入系统用户密码。procedure TLOGIN.Com
19、boBox1Change(Sender: TObject);begin DM.QUSER.Locate(用户名称, ComboBox1.text,); Edit1.SetFocus;end;procedure TLOGIN.Edit1KeyPress(Sender: TObject; var Key: Char);begin if (key = #13) then /当输完密码,敲入回车键,Button1执行单击操作 SpeedButton1Click(Sender);end;利用speedbutton进行用户输入密码与数据库内用户密码比对,用Inc函数进行密码输入计数,若输入密码错误3次,则
20、强制关闭系统。procedure TLOGIN.SpeedButton1Click(Sender: TObject);begin Inc(iTimes); Main.Auser.UserName:=DM.QUSER.FieldByName(用户名称).AsString; if DM.QUSER.FieldByName(用户名称).AsString= then Application.MessageBox(没有用户存在,请预先设定好用户!,提示,4); if Trim(Edit1.Text)=DM.QUSER.FieldByName(密码).AsString then begin Close;
21、Main.Caption:=仓库管理系统2010; DM.QUSER.Open; end else begin Messagebox(用户名或密码错误,请重新输入); Edit1.Text:=; end; IF iTimes=4 then begin Application.MessageBox(您进行系统身份确认程序错误已经超过3次,本系统将停止执行!,提示!); Application.Terminate; end;end;进入系统后进行仓储管理,供应商信息操作功能与商品基本信息操作功能类似,这里也供应商信息操作进行系统代码分析。添加功能由Groupbox,speedbutton,edit
22、,memo控件实现申明功能实现函数public Procedure bh; /自动编号 function CanSave: Boolean;/判断是否保存 procedure posting; /提交数据 procedure GetAll; /获得所有数据 procedure tr; /去除空字符 Public declarations end;实现系统自动编码5procedure TGYSXX1.BH; var s,m:string; i:integer;begin s:= GS+ FormatDateTime(yyyymmdd,Now(); With DM.QGYSXX do begin
23、Close; SQL.Clear; SQL.Add(select max(供应商编号) as ss From 供应商基本信息 ); Open; end;若系统内无记录,则从001开始 If DM.DSOGYSXX.FieldByName(供应商编号).Value = null then s := s + 001 else若系统内已存有记录,则在有记录上加1 begin DM.DSOGYSXX.Last; m:= Trim(DM.DSOGYSXX.FieldByName(供应商编号).Value) ; i:= StrToInt(Trim(Copy(m,11,3) ; if i9 then s:=
24、 s + 00+ InttoStr(i +1) else if i99 then s:= s + 0+ InttoStr(i +1) else s:= s +InttoStr(i +1); end; Edit1.Text := s;end;系统信息添加,对用户输入信息进行控制,防止用户输入错误信息,造成系统数据混乱,体现系统容错功能。这里截取其中的两端代码。procedure TGYSXX1.Edit4KeyPress(Sender: TObject; var Key: Char);begin if key ina.z,A.Z,0.9,#46 then key:=#0; if key ina.
25、z,A.Z,0.9,#46 then showMessage(联系人为中文!); /,提示!,64 if key=#13 then Edit5.SetFocus;end;procedure TGYSXX1.Edit5KeyPress(Sender: TObject; var Key: Char);begin if not(key in-,0.9,#13,#8) then key:=#0; if not(key in-,0.9,#13,#8) then showMessage (联系电话输入为0至9之间的数字和-!); / ,提示!,64 if key=#13 then Edit6.SetFoc
26、us;end;商品入库信息添加添加功能由Groupbox,speedbutton,edit,memo,datetimepick控件实现,若是系统内第一次添加的数据,则直接添加至数据库begin SQL.Add(INSERT INTO 库存表(商品名称,商品规格,商品单位,商品单价,商品数量); SQL.Add(Values(:商品名称,:商品规格,:商品单位,:商品单价,:商品数量); Parameters.Items0.Value:=ComboBox2.Text; Parameters.Items1.Value:=Edit3.Text; Parameters.Items2.Value:=Ed
27、it4.Text; Parameters.Items3.Value:=strtofloat(Edit5.Text); Parameters.Items4.Value:=strtoint(Edit6.Text); Prepared:=True; ExecSQL; end;若是系统内已有该商品的入库记录,则调用库存表,在库存信息内添加上此次入库的商品数量。begin /获取商品名称到库存表中 Close; SQL.Clear; SQL.Add(Select * from 库存表 where 商品名称=+ComboBox2.Text+); Open; end; if RecordCount=1 th
28、en /过滤相同数据,若数据有相同的商品名称,将相数量相加 begin Edit; fieldbyname(商品数量).AsInteger:= fieldbyname(商品数量).AsInteger+strtoint(Edit6.Text);更新记录,提交数据 updaterecord; post; end商品出库功能关键代码段,对edit控件内填写的出库数量与库存数量进行比对,判断能否进行出库。procedure TSPCKXX.Edit5Exit(Sender: TObject);begin /判断出库数量与库存数据,出库数量大于库存数量,退出。否则进行数据计算 with DM.QKCB
29、do begin Close; SQL.Clear; SQL.Add(Select 商品数量,商品单价,商品规格,商品单位 from 库存表 where 商品名称=+Edit2.Text+); Open; end; if DM.QKCB.FieldByName(商品数量).ValueEdit5.Text then begin Application.MessageBox(出库数量不能大于库存数量!,提示!,64); Edit5.Clear; Edit5.SetFocus; exit; end else库存量允许进行出库 begin DM.QKCB.Edit; DM.QKCB.FieldByName(商品数量).Value:=DM.QKCB.FieldByName(商品数量).Value-strtoint(Edit5.Text); DM.QKCB.UpdateRecord; DM.QKCB.Post; end; end;库存查询功能可根据商品名称进行模糊查询和全部库存查询。
限制150内