《2022年CS仓库设计报告.doc》由会员分享,可在线阅读,更多相关《2022年CS仓库设计报告.doc(29页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、福 建 工 程 学 院课程设计课 程: 数据库应用课程设计 题 目: 仓库治理系统 专 业: 信息治理与信息系统 班 级: 座 号: 姓 名: 2012年 6 月 24 日 目录一系统定义二需求分许 (1)功能需求 (2)用户需求三数据流图四、系统设计 1、概念构造设计 2、逻辑构造设计 3、系统功能模块图 4、其它设计图形工具五、详细设计六、系统实现与测试1、开发平台和工具选择2、系统测试七、课程设计总结一、系统定义 具有一定规模的公司或商店都需要为本人公司或商店里的物资进展治理,仓库治理系统确实是为了治理物资而开发的数据库软件。仓库治理系统是企业日常运营治理中十分重要的一个组成部分,它包括
2、日常的销售出库、产品入库、盘点等业务。仓库治理系统协助企业的仓库治理员对仓库物品的入库、出库、盘点等操作进展全面的操纵和治理,到达提高仓库操纵精度、降低仓库量,提高客户效劳水平,保证消费运营活动顺利进展的目的。二、需求分析(1)功能需求 该系统主要分为四大功能:、一般用户功能、治理员功能、信息平安功能还有报表功能。1). 一般用户功能:查询库存信息、查询出库信息、查询入库信息、修正本用户密码。2). 信息平安功能:人员权限区分、事件记录、数据警告、计划备份、即时备份、数据恢复;3). 治理员功能:确认添加及修正产品入库信息、产品出库信息、库存信息,查询库存信息、盘点等功能。(2)用户需求依照用
3、户需求,该系统应该实现以下功能:1). 进、出库治理。对进、出库信息进展记录。2).查询功能。仓库治理对查询要求高,通过主菜单记录当前操作用户的用户编号,保证了对进、出库信息录入负责人确实认。 3). 由于计算机能存贮大量的数据,而且数据只要一次存入,便可屡次重复使用,因此治理数据到达完好,统一,原始记录能保证及时,精确。4). 许多重复性的工作,都可由计算机去执行,从而使治理人员从事务性工作解脱出来,真正变为从事一些信息的分析,推断,决策等制造性的工作。5).还包括依照月份对出入库报表的打印。以及受权功能。三数据流图1.数据流图1)顶层数据流图:出/入库信息处理出库信息处理订货单库存信息处理
4、入库信息处理仓库治理员成品库仓库治理系统仓库治理员商家2)第一层数据流图:订货单产品入库、出库、库存信息产品库存信息表产品出库信息表产品入库信息表入库信息出库信息仓库治理员1.产品入库信息治理2.产品出库信息治理3.产品库存信息治理仓库治理员商家入库信息出库信息3)第二层数据流图:产品入库信息治理细化: 入库单不合格单据合格的入库单1.2入库产品入库信息表1.3调整单据1.1检验仓库治理员产品出库信息治理细化:四、系统设计1、概念构造设计画出系统E-R图1nmn仓库治理治理员库存 产品购置商家1m2、逻辑构造设计将E-R图(或其他概念设计图)转换为详细的DBMS对应的关系形式。人员(人员编号,
5、人员名称,住址,)产品(产品编号,产品名称,产品数量,产品规格)入库(入库编号,入库时间,入库数量)出库(出库编号,出库时间,出库数量)3、系统功能模块图画出系统功能模块图,并对子模块功能进展详细说明。仓库治理治理员职工人员治理物料治理进仓治理出仓治理物料报表出入库报表出入库查询报表查询4、其它设计图形工具特别提示:同意用其他分析、设计工具。在此补充在设计过程中采纳的其它设计工具图形。五、详细设计 主要的表。一 物料信息表create database studbon primary( name=studata, filename=d:dbstudat.mdf, size=3mb,filegr
6、owth=3mb) log on(name=stulog, filename=d:dbstulog.ldf, size=1mb, maxsize=10mb, filegrowth=10%)use studb gocreate table xg0301worker(pno char(5) primary key, pname char(10), birth datetime, sex char(5), id char(20), home char(10), dizhi char(50), tele char(20), secret char(5), zhiwei char(10), quanxi
7、an char(25), beizhu char(20) )二 员工信息表use studbgocreate table xg0301wuliao(wno char(10) , rkbh char(6) primary key, wname char(15), guige char(20), danwei char(10), kucun int, beizhu char(20)三 入库信息表use studbgocreate table xg0301ruku( rkdh int , rkrq datetime, wno char(10), wname char(10), people char
8、(10), shuliang int, beizhu char(20), primary key(wno)四 出库信息表 use studbgocreate table xg0301chuku( ckdh int , ckrq datetime, wno char(10), wname char(10), people char(10), shuliang int, beizhu char(20), primary key(wno)六、界面设计一:登录界面:分别设置了两个职位,治理员和职工。登入后界面不一样。登录代码如下:var auth_desc:string;begin with adoq
9、uery1 do begin close; sql.Clear; sql.Add(select quanxian from xg0301worker); sql.Add(where pno=+edit1.Text+ and secret=+edit2.Text+); open; auth_desc:=adoquery1.fieldbyname(quanxian).AsString; if adoquery1.RecordCount=0 then begin showmessage(输入的密码错误或者用户名不存在!请重新输入!); end else begin if strpos(pchar(a
10、uth_desc),1)nil then xg0301_jiemian.N1.Enabled:=true else xg0301_jiemian.N1.Enabled:=false; if strpos(pchar(auth_desc),2)nil then xg0301_jiemian.N2.Enabled:=true else xg0301_jiemian.N2.Enabled:=false; if strpos(pchar(auth_desc),3)nil then xg0301_jiemian.N3.Enabled:=true else xg0301_jiemian.N3.Enable
11、d:=false; if strpos(pchar(auth_desc),4)nil then xg0301_jiemian.N4.Enabled:=true else xg0301_jiemian.N4.Enabled:=false; if strpos(pchar(auth_desc),5)nil then xg0301_jiemian.N5.Enabled:=true else xg0301_jiemian.N5.Enabled:=false; if strpos(pchar(auth_desc),6)nil then xg0301_jiemian.N6.Enabled:=true el
12、se xg0301_jiemian.N6.Enabled:=false; if strpos(pchar(auth_desc),7)nil then xg0301_jiemian.N7.Enabled:=true else xg0301_jiemian.N7.Enabled:=false; if strpos(pchar(auth_desc),8)nil then xg0301_jiemian.N17.Enabled:=true else xg0301_jiemian.N17.Enabled:=false; if strpos(pchar(auth_desc),a)nil then xg030
13、1_jiemian.N11.Enabled:=true else xg0301_jiemian.N11.Enabled:=false; if strpos(pchar(auth_desc),b)nil then xg0301_jiemian.N16.Enabled:=true else xg0301_jiemian.N16.Enabled:=false; if strpos(pchar(auth_desc),c)nil then xg0301_jiemian.N9.Enabled:=true else xg0301_jiemian.N9.Enabled:=false; if strpos(pc
14、har(auth_desc),d)nil then xg0301_jiemian.N10.Enabled:=true else xg0301_jiemian.N10.Enabled:=false; if strpos(pchar(auth_desc),e)nil then xg0301_jiemian.N14.Enabled:=true else xg0301_jiemian.N14.Enabled:=false; if strpos(pchar(auth_desc),f)nil then xg0301_jiemian.N15.Enabled:=true else xg0301_jiemian
15、.N15.Enabled:=false; xg0301_root.Hide; xg0301_jiemian.Show; end; end;二:主界面当登录者为治理员时,主界面如下:当登陆者为职工时,主界面如下:三:人员治理界面刷新人员代码;adoquery1.close; adoquery1.sql.clear; adoquery1.sql.add(select * from xg0301worker); adoquery1.open;增加人员代码:if (combobox1.Text=)and (edit1.Text =) and (edit2.Text=)and (edit4.Text=)
16、and (edit5.Text=)and (edit6.Text=)and (edit7.Text=)then begin showmessage(请把信息添加完好!); exit; end; adoquery1.close; adoquery1.sql.clear; adoquery1.sql.add(insert into xg0301worker(pno,pname,birth,sex,id,home,dizhi,tele,beizhu) values(+edit1.Text +,+edit2.Text+ ,+datetimetostr(date()+,+combobox1.Text +
17、,+edit4.Text+ ,+edit5.Text+ ,+edit6.Text+ ,+edit7.Text+ ,+edit8.Text+ ) ); adoquery1.execsql;showmessage(信息添加成功);删除人员代码:adoquery1.close; adoquery1.sql.clear; adoquery1.sql.add(delete xg0301worker where pno=+edit1.Text +); adoquery1.execsql; showmessage(删除成功!); 依照编号姓名查询人员代码:with ADOQuery1 dobegin if
18、radiogroup1.ItemIndex=0 then begin close; sql.Clear; sql.add(select * from xg0301worker where pno=+edit3.Text+); open; end else begin close; sql.Clear; sql.add(select * from xg0301worker where pname like +%+edit3.Text+%+); open; end; edit1.Text:=fieldbyname(pno).AsString; edit2.Text:=fieldbyname(pna
19、me).AsString; combobox1.Text:=fieldbyname(sex).AsString; datetimepicker1.DateTime:=fieldbyname(birth).AsDateTime; edit4.Text:=fieldbyname(id).AsString; edit5.Text:=fieldbyname(home).AsString; edit6.Text:=fieldbyname(dizhi).AsString; edit7.Text:=fieldbyname(tele).AsString;四:物料治理界面刷新物料代码:adoquery1.clo
20、se; adoquery1.sql.clear; adoquery1.sql.add(select * from xg0301wuliao); adoquery1.open;增加物料代码:if (combobox1.Text=)and (edit3.Text =) and (edit2.Text=)and (edit4.Text=)and (edit5.Text=)and (edit6.Text=)and(edit1.Text=)then begin showmessage(请把信息添加完好!); exit; end; adoquery1.close; adoquery1.sql.clear;
21、 adoquery1.sql.add(insert into xg0301wuliao(wno,rkbh,wname,guige,danwei,kucun,beizhu) values(+combobox1.Text +,+edit1.Text +,+edit2.Text+ ,+edit3.Text +,+edit4.Text+ ,+edit5.Text+ ,+edit6.Text+ ) ); adoquery1.execsql; showmessage(信息添加成功);end;删除物料代码:adoquery1.close; adoquery1.sql.clear; adoquery1.sql
22、.add(delete xg0301wuliao where rkbh=+edit1.Text +); adoquery1.execsql; showmessage(删除成功!);五:入库界面 添加新单号代码:vari:integer;begin with ADOQuery1 do begin close; sql.clear; sql.add(select max(rkdh) dh from xg0301ruku); open; end; i:=ADOQuery1.fieldbyname(dh).asinteger; edit1.Text:=inttostr(i+1);添加新记录代码:beg
23、inif (edit1.Text =) and (edit2.Text=)and (edit3.Text=)and (edit5.Text=)then begin showmessage(请把信息添加完好!); exit; end; adoquery1.close; adoquery1.sql.clear; adoquery1.sql.add(insert into xg0301ruku(rkdh,wno,rkrq,wname,people,shuliang,beizhu) values(+edit1.Text +,+combobox2.Text+ ,+datetimetostr(date()
24、+,+edit5.Text +,+combobox1.Text+ ,+edit2.Text+ ,+edit3.Text+ ) ); adoquery1.execsql; showmessage(入库成功);end;六:出库界面添加新单号代码:vari:integer;begin with ADOQuery1 do begin close; sql.clear; sql.add(select max(ckdh) dh from xg0301chuku); open; end; i:=ADOQuery1.fieldbyname(dh).asinteger; edit1.Text:=inttostr
25、(i+1);添加新记录代码:vari,j:integer;beginwith adoquery1 do begin close; sql.Clear; sql.Add(select kucun from xg0301wuliao); sql.Add(select shuliang from xg0301chuku) ; open; end; i:=ADOQuery1.fieldbyname(kucun).asinteger; j:=strtoint(edit2.Text); if(ji) then showmessage(出库数量超过库存数量,请重新确认!) else begin with a
26、doquery1 do begin active:=true; close; SQL.Clear; sql.add(insert into xg0301chuku(ckdh,wno,ckrq,wname,people,shuliang,beizhu) values(+edit1.Text +,+combobox2.Text+ ,+datetimetostr(date()+,+edit5.Text +,+combobox1.Text+ ,+edit2.Text+ ,+edit3.Text+ ) ); execsql; showmessage(出库成功); end;end;end;procedur
27、e Txg0301_chuku.Button5Click(Sender: TObject); vari:integer;begin with ADOQuery1 do begin close; sql.clear; sql.add(select max(ckdh) dh from xg0301chuku); open; end; i:=ADOQuery1.fieldbyname(dh).asinteger; edit1.Text:=inttostr(i+1);七:出入库查询界面入库查询代码with ADOQuery1 dobegin if radiogroup1.ItemIndex=0 the
28、n begin close; sql.Clear; sql.add(select * from xg0301ruku where wno=+combobox1.Text+); open; end else if radiogroup1.ItemIndex=1 then begin close; sql.Clear; sql.add(select * from xg0301ruku,xg0301wuliao where xg0301ruku.wname=+combobox2.Text+ and xg0301wuliao.wno=xg0301ruku.wno); open; end else if
29、 radiogroup1.ItemIndex=2 then begin close; sql.Clear; sql.add(select * from xg0301ruku where rkrq=+formatdatetime(yyyy-mm-dd,datetimepicker1.DateTime)+ and rkrq=+formatdatetime(yyyy-mm-dd,datetimepicker1.DateTime)+ and ckrq=+formatdatetime(yyyy-mm-dd,datetimepicker1.DateTime)+ and rkrq=+formatdateti
30、me(yyyy-mm-dd,datetimepicker1.DateTime)+ and ckrq=0 then begin xg0301quanxian.Label1.Caption:=员工+adoquery1.Fields0.AsString+权限设置; auth_desc:=adoquery1.Fields10.AsString; if strpos(pchar(auth_desc),1)nil then xg0301_qxxz.CheckBox1.Checked:=true else begin xg0301_qxxz.CheckBox1.Checked:=false end; if
31、strpos(pchar(auth_desc),2)nil then xg0301_qxxz.CheckBox2.Checked:=true else begin xg0301_qxxz.CheckBox2.Checked:=false end; if strpos(pchar(auth_desc),3)nil then xg0301_qxxz.CheckBox3.Checked:=true else begin xg0301_qxxz.CheckBox3.Checked:=false end; if strpos(pchar(auth_desc),4)nil then xg0301_qxxz
32、.CheckBox5.Checked:=true else begin xg0301_qxxz.CheckBox5.Checked:=false end; if strpos(pchar(auth_desc),6)nil then xg0301_qxxz.CheckBox11.Checked:=true else begin xg0301_qxxz.CheckBox4.Checked:=false; xg0301_qxxz.CheckBox6.Checked:=false; end; if strpos(pchar(auth_desc),7)nil then xg0301_qxxz.Check
33、Box6.Checked:=true else begin xg0301_qxxz.CheckBox8.Checked:=false; xg0301_qxxz.checkbox10.Enabled:=false; xg0301_qxxz.checkbox9.Enabled:=false; xg0301_qxxz.checkbox7.Enabled:=false; xg0301_qxxz.checkbox12.Enabled:=false; end; if strpos(pchar(auth_desc),8)nil then xg0301_qxxz.CheckBox13.Checked:=true else xg0301_qxxz.CheckBox13.Checked:=false; if strpos(pchar(auth_desc),1)nil then xg0301_qxxz.CheckBox1.Checked:=true else xg0301_qxxz.CheckBox1.Checked:=false; if strpos(pchar(auth_desc),2)nil then xg0301_qxxz.CheckBox2.Checked:=true else xg0301_qxxz.CheckBox2.Checked:=false; if str