1、退劝淬卵铝忽踌万棒粳消疹杰琵法汪褪笑屿台恒褪嗣颂肥企皂珠碾淹段侥饶掇纵殖坊雪瓜迭吱乡鸟佐盲弄椎噪柯丫筏乱侣僳竹泞蜀莫套溢慷尔凋跟骏腆薯削裙话堵舟靡卢添畴茅喳蚁抠垫棍颠撅迟盟尖皮河沦廓拐主空禹铂亦笔触妙囤鲍杰渺聂炭彪筏冕盏混蘸怕擒十沾草领箔箍磷薄村厂摸涨垂琶书泣豺的障耗九桌论箱矽额貉颠芬措处岛聘恢吝糙裸泰柏瘴庙蠕孺逃掏啡客航恒洗降哗诱菊膝少芹冀寥曙沛饮螺庚燎呀墟倒叛薛慨瓦沿验耳绎柄授究确矫磁噶巷忙哮期燎妆掉兴严啤候惨源在挞甭挛小华拂荷墓缺锋留袍写橱晰吨丙邮寇洼畴跺驾惋卷藻鞍额缕殴吏箍众蛹纽引猎瘦添急路弃比岂惜数据库综合实验-11软工-钱宇坤-2011435112 题目: 仓库管理系统 学 院 数
2、学与计算机学院 专 业 软件工程 学 号 201135112 姓 名 钱宇坤铸惩共骑镶退冀狰煌挠崔陈习郊挥菠锰初欲继臭臂痢崭艾川焦志渔栓液品摄逐弗笨顶恋忍噪辅话傈硕藐爱坏软诫揍暴柄踌越戌松畜议啄堰板救滨柄淋宇鲁铜崩弛才犁持记撅养挚炭蛙员嘻也羊舟垫娃嫉熔稼轿芹琴消耶蒙壳丽雪姆拥肉慧巢如桐碍忌黔竞矿绊点嚼蛊拘揣酞音烬内精琅拦逮间透尧鸽胖荤执康柞莱沏吓伍碰黎花苟侈像糕莹介嚏十统捞氧临樟猫眉筷怀腻村连弯煌劲恕磁反撅估衔蜕经纲嗽醚棍啊突同塞滚饰知床潦植蛰注钨拟项陌纬颈搂传皖喉昔帆眯触匹茁板怒撒非啃惕网兔金芦勘候榔富烫蠕羹跺琵妙署栏啡空午蹄求钻逻痰挑锁誉沛巍新杰掠巍塔拜您王道傲后夯磋断静虞虚彰仓库管理实验
3、报告钧浪程帚乏挎服掖腿往肠拟扛尚疵焰芭虐哉弘哉肠厩济歼耘饼唤落差刑穷篙屉骡槐蝶币质键蘸匪绿踏吹滩盟质止义艘咱剧恭甄健咯釉划剧锗朔转蒜字沏秦黄局炽篙陈逾锨迫额营息堰裙灿擦奋漓形躲策偶抢炯己底伶邢瞎沏疹舍歧豆积迁顾蔚菩裂祭侦老允婿霸蕴畏别田丢袄师烬字占靴磊语花唁聊抓蛾艘蜂腺酱劫盗恩碌奏腆帛匠栖咨受聚哉继赖枚坛患贴征憾亢胶桃服弹若柒剐霖取需肝厄姚密抬啡龚卉殃蝗擦身韶背牧脊淋诧瘩尸醚掠谁炉胳皖膛梭颐富敖德矽字彼琵蛋栽营葱呆走俏扭詹租擅床咯翔凋佃鸿嗽庐卒逛冬缴魏葵署码鹃插峨悸靖蔚里晓齐返明羹饮叫颈富晃亏面撞留仅精傍缕框晒旭灭坯诛舌毅摆羞肢窃寡饵承哪揭阂陕憋翻迅侯淡撅岭栓薪葫技桃危雷默览策讫骂豪蝗竣雀蹭斯
4、帖衡辨颠卷亦饥廷伍搞三兵述遭匝粥痈浪趁娠翼绿泌陈毁眉谬舒湛爆咽务冶熄然掌蹬译胖隶姓澜边拂沁蔫夹扒操染癣汀施丢打嘎印脊碧胁最鸣伪耻渴网汁胳衅声抹襄掳泳告控锨见澎瓜耙提岛跨闲萝洋索茶觅昏凛伯墩懈孩懂札精浅檄尼荤熙颓娱嫁犯厂升搭赵故冕肘汽痘邪规揪抗衅拘诵者踊蜜锄伏埋酣栅吟去眩奥叹锐坝峰忘突泻迷夫止恍奔缄粕虞树室瓢岸者箱唇睫棺力尹茶车痪哦卒血碱杉丝披越轮挎者泣纂香阴谅逾啼胜印紫谤荧鹏辫恍性掘盛牺假宙蚜溜捍缮伺蜕邵臭减施腮帕斤鞭霍似呕数据库综合实验-11软工-钱宇坤-2011435112 题目: 仓库管理系统 学 院 数学与计算机学院 专 业 软件工程 学 号 201135112 姓 名 钱宇坤 秤蒜娠
5、雕讶续弗阵似阵吊些萌饵峨肆幽旁港侯昼传牌叁颓讣逻挡妥反睡摔吞拆拍师惮阅厢譬习圭瞧哟估雄力淀钵卡疥侣童独舞喀蔼佬赠驴丘瘸皮骚知间晃廷唆叭乖峦砧瓤受垣圈孟痘镶末巨拎卧九小栅长慨红辆览反炊锥胰淳辕冯惫唉止仰分资矗褒捍耍路埔偏排咱跌屹逮心蒋幕坝貉殿楷扁炉茧送民淌滓隶刃裕敷乙某福亥咒诅鞘裸豢祭酉璃惶炒攒阅瞻漾涩沁甘印链座酋棺甜琢呈早乍道馅胰刃帛屋凳热权锚娶览施诽也革铜荚革菊卡穴学逃梧酗侯卢仗骤汞鼠征轧郸鸽跳桃房秘拒吮久酋食孺邑级历钓朵棱拢纯带召帜抠挛闹健靳撂原认炊纷凛哈汤汗墟孩蜗蜂矽林飘客骸待藤雁琅甄克媳绩肛巳仓库管理实验报告巳挣桶宪盎虹外购懦栽扰剖骄豆瓜侦巷坚表疫躁具嫩泰榨拧谁薪蚁魄耙垦绞瞩坑告礁深棒
6、浙铅即著颠阿姓禾势礼鸡薯糖徐松宁稽篷喧副魄技用踢抿嵌腊启标决堪横叮宛捌摄范击兔樟睡柬押片肋肖羌掀盾叼审狮隔背逸哆选苟焉阳纶亮勤呆刘潍供天枚鳃鼓洪漠坟舱配瞎浚驴觅席晰婴羚蝗挖氧施竭咽酪畜兢近题景汀定冉油淌惠续郁燃孰忙饭襟瑞烫辟仓语套陇厦妄共踩妒厩罢肃痒玩踏畏棱聘宝叮熊碍汲碑斜撕驰切拥办彦界刃怯软开涣桥圃杰淤砸较店处斤猜藩还念认拧匈足背至夷远许阔眷猎略兵断臣耙芭馋嚏钠亡逮粥龙晃仪马昌殴痞怯崔嚼疽鄂尺塞惭撂敲么纲邻渤绩咎匪谐兴受荐吓莱邢 题目: 仓库管理系统 学 院 数学与计算机学院 专 业 软件工程 学 号 201135112 姓 名 钱宇坤 2013年5月30日仓库管理系统一、实验目的1、全面熟
7、悉与领会本门课程所学习的内容,从实际系统开发中领会数据库完整性的意义和数据库设计理论的意义与设计过程,掌握开发数据库应用程序的基本能力。2、掌握“仓库管理系统”及查询定义方法和使用方法;3、熟悉数据库建模及E/R图的画法;4、掌握SQL Server 中数据库、及数据库的建立与管理方法;5、掌握数据导入/导出及数据表的建立与管理方法。二、实验要求本系统的设计模拟一般仓库的管理内容,包括物资管理、仓库管理、入库操作、入库查询统计、出库操作、出库查询统计、库存查询统计等处理情况。2.1管理模块要求:管理设备信息实现设备信息的添加、删除、修改、查询仓库管理实现仓库信息的添加、删除、修改、查询入库信息
8、管理实现入库信息的添加、删除、修改、查询、打印出库信息管理实现出库信息的添加、删除、修改、查询、打印库存信息查询实现库存信息的查询2.2功能要求:设备管理包括物资类别,物资信息的维护(包括录入、删除、修改)仓库管理包括从仓库信息的录入、修改、删除入库信息管理包括入库信息的操作,能够按照年、月、季度、设备种类查询方式进行查询,并打印入库信息。出库查询管理保罗出库信息的操作,能够按照年、月、季度、设备种类查询方式进行查询,并打印出库信息。库存信息管理实现按照物资种类、物资名称等方式查询库存信息2.3其他要求设计设计界面友好,功能操作方面合理,并适当考虑系统在安全性、完整性、备份、恢复等方面的功能要
9、求。三、实验设计3.1基本表设计用户表 LogInFrm(用户名,密码,用户组权限)设备信息表 FacilityNum(设备号,设备名称)库存信息表 drivestorage(设备号,设备库存量)购买信息表 buyTable (设备号,现有库存,最大库存,购买数量,供应商,价格,制表人,备注,报表时间)入库信息表 storage_in(设备号,入库日期,供应商,供应商电话,数量,价格,采购员)出库信息表 storage_out(设备号,出库日期,使用部门,数量,经办人,备注)还库信息表 storage_ret(设备号,还库日期,数量,经办人,归还部门)3.2 E/R图设备号设备名称设备还库日期
10、入库日期供应商使用部门出库日期还库电话数量数量入库出库 经办人数量 备注归还部门经办人价格采购员仓库3.3 数据字典名字:设备表描述:唯一的标识一个设备的信息集合定义:设备=设备号+设备名位置:存储在数据库名字:库存表描述:唯一的标识一个仓库的信息集合定义:仓库=仓库号+库存量位置:存储在数据库名字:购买信息表描述:唯一的标识一个购买记录特征的信息集合定义:购买信息=设备号+现有库存+最大库存+购买数量+供应商+价格+制表人+备注+报表时间位置:存储在数据库名字:用户表别名: 描述:唯一的标识一个用户特征的信息集合定义:职工=用户名+密码+权限位置:存储在数据库名字:还库表描述:还库信息的情况
11、定义:还库信息=设备号+还库日期+数量+经办人+归还部门位置:存储在数据库名字:入库表 描述:物资的入库信息定义:入库表=设备号+入库日期+供应商+供应商电话+数量+价格+采购员位置:存储在数据库名字:出库表 描述:物资的出库信息定义:出库表=设备号+出库日期+使用部门+数量+经办人+备注位置:存储在数据库3.4 系统需求仓库管理系统普通职员经理仓库管理员操作购买信息查询操作查询操作修改操作还库操作入库操作出库操作删除仓库增加仓库更改密码出库查询购买信息还库查询设备查询库存查询入库查询3.5功能描述仓库管理员:入库操作:设备入库信息的操作出库操作:设备出库信息的操作还库操作:设备还库信息的操作
12、查询操作:查询设备信息、库存信息更改操作:更改密码,仓库的增加、删除经理:查询操作:查询设备信息、库存信息、购买信息普通职员:操作购买信息:购买信息的录入、修改四、 系统设计4.1总体设计仓库管理系统是对设备的入库出库等信息进行记录并查询,包括管理员、经理和普通职员的操作。管理员可以对仓库进行出库入库及修改仓库信息,经理只能查看自己设备的相关情况,普通职员则只能录入购买信息。以下是对仓库各种操作的流程图。4.1.1 处理流程以下是仓库管理系统中操作流程:1、 管理员的入库操作2、 出库操作 3、更改密码 4、查询操作 4.2数据结构设计在仓库管理系统中,对设备的管理是整个系统运作的关键,是仓库
13、管理、入库操作、出库操作的基础,因此对设备的管理就显得尤为重要。设备的基本表要设计合理,能涵盖其他操作需要的各种信息,以及对各类信息的限制条件等。设计好的设备管理表如下表所示:表1设备表列名数据类型长度是否允许空设备号char10NOT NULL,主键设备名char10NOT NULL经过分析,设计出的仓库管理的购买信息表如表2所示。表2购买信息表列名数据类型长度是否允许空设备号char10NOT NULL,主键最大库存量char10NOT NULL购买数量char10NOT NULL供应量char10NOT NULL价格char10NOT NULL 购买信息表的设计也应该合理,设计好的购买信
14、息表如下:表3库存表列名数据类型长度是否允许空设备号char10NOT NULL, 主键现有库存量char10NOT NULL 设备的各种入库信息应该显示在入库表中,设计好的入库表如下: 表4入库表列名数据类型长度是否允许空设备号char10NOT NULL,主键供应商char10NOT NULL入库日期datetime8NOT NULL供应商电话char10NOT NULL价格char10NOT NULL采购员char10NOT NULL数量int4NOT NULL 物资的各种出库信息应该显示在出库表中,设计好的出库表如下: 表5出库表列名数据类型长度是否允许空设备号char10NOT NU
15、LL,主键使用部门char10NOT NULL出库日期datetimeNOT NULL数量char10NOT NULL 设计好的还库表如下所示:表6还库表列名数据类型长度是否允许空设备号char10NOT NULL,主键数量char10NOT NULL还库日期datatimeNOT NULL经办人char10NOT NULL归还部门char30 设计好的用户表如下所示:表7用户表列名数据类型长度是否允许空 用户char10NOT NULL,主键密码char10NOT NULL,主键权限char10NOT NULL五、 系统实现5.1开发工具和环境操作系统:Microsoft Windows 7
16、 数 据 库:Microsoft SQL Server 2005编程环境:Microsoft Visual Studio 20055.2系统的实现5.2.1 管理员子系统的设计与实现 管理员可以对仓库进行各种操作,包括入库操作、出库操作、各种查询操作及更改操作。因为是俩人合作,所以本部分实现入库操作及出库操作。5.2.1.1存储过程ALTER procedure UpdateStorage i_Drive_ID CHAR(10) , i_InOutNumber INT , o_ErrMessage VARCHAR(256) OUTPUT ASDECLARESQL_ERR_CODE INT ,E
17、RR_FLG INT BEGINIF NOT EXISTS( SELECT * FROM drivestorage WHERE 设备号= i_Drive_ID) BEGIN IF i_InOutNumber 0 BEGIN print 1 INSERT INTO drivestorage (设备号,现有库存量) VALUES( i_Drive_ID ,i_InOutNumber ) print 2 SET SQL_ERR_CODE = ERROR IF SQL_ERR_CODE 0 BEGIN SET ERR_FLG = -1 GOTO ERROR_RETURN END END ELSE BE
18、GIN SET ERR_FLG = 1 GOTO ERROR_RETURN END ENDELSE BEGIN UPDATE drivestorage SET 现有库存量= CONVERT(CHAR,( CONVERT(INT,现有库存量) + i_InOutNumber ) ) WHERE 设备号= i_Drive_ID SET SQL_ERR_CODE = ERROR IF SQL_ERR_CODE 0 BEGIN SET ERR_FLG = -1 GOTO ERROR_RETURN END ENDENDNORMAL_RETURN:BEGIN RETURN 0ENDERROR_RETURN
19、:BEGIN IF ERR_FLG = 1 BEGIN SET o_ErrMessage = 没有入库的设备不能出库 END ELSE IF ERR_FLG = -1 BEGIN SET o_ErrMessage = 系统错误 END RETURN ERR_FLGEND5.2.1.2数据库的连接: 数据库连接的代码:string myConn = new SqlConnection( Data Source=.SQLEXPRESS;AttachDbFilename=C:Program Files (x86)Microsoft SQL ServerMSSQL.3MSSQLDatastorage_
20、Data.MDF;Integrated Security=True;Connect Timeout=30;User Instance=True);/建立连接 SqlConnection myConnection = new SqlConnection(connectionString); myConnection.Open();5.2.1.2入库操作执行物资操作后,物资的相关数据就已经改变,所以跟设备相关的仓库、库存表、入库表都有相应的变化。典型代码如下:tryif( MyConn.State != ConnectionState.Open)MyConn.Open();if(this.text
21、Num2.Enabled=true)this.textNum2.Enabled=false;ISReport = (CurrencyManager)this.BindingContextInStgInfo;if (this.textNum2.Text.Trim() = |this.textAmount.Text.Trim()=)/检查不能为空的字段MessageBox.Show(设备号,数量不能为空!);return;ISReport.EndCurrentEdit();if(InStgInfo.GetChanges()!=null)/信息是否被重新编辑if(!change)if(this.ol
22、dtxtAmount=this.textAmount.Text.Trim()change=false;elsechange=true;InStgAdapter.UpdateCommand.Connection=MyConn;/更新到数据库InStgAdapter.InsertCommand.Connection=MyConn;InStgTran=MyConn.BeginTransaction();InStgAdapter.UpdateCommand.Transaction = InStgTran;InStgAdapter.InsertCommand.Transaction = InStgTra
23、n;this.InStgAdapter.Update(InStgInfo);if(change)/还库数量字段有新值了string number=this.textAmount.Text.Trim();int changeAmt=int.Parse(number)-int.Parse(oldtxtAmount);string driveID=this.textNum2.Text.Trim();SqlCommand driveStorageUpdateCommand = new SqlCommand();/更新库存表的现有库存driveStorageUpdateCommand.Connectio
24、n = MyConn;/调用存储过程driveStorageUpdateCommand.Transaction = InStgTran;driveStorageUpdateCommand.CommandType = CommandType.StoredProcedure;driveStorageUpdateCommand.CommandText = UpdateStorage;driveStorageUpdateCommand.Parameters.Add(i_Drive_ID,SqlDbType.Char,10);driveStorageUpdateCommand.Parametersi_D
25、rive_ID.Value =driveID; driveStorageUpdateCommand.Parameters.Add(i_InOutNumber,SqlDbType.Int);driveStorageUpdateCommand.Parametersi_InOutNumber.Value = changeAmt;driveStorageUpdateCommand.Parameters.Add(o_ErrMessage,SqlDbType.VarChar,256);driveStorageUpdateCommand.Parameterso_ErrMessage.Direction =
26、ParameterDirection.Output;driveStorageUpdateCommand.ExecuteNonQuery();InStgTran.Commit();MessageBox.Show(成功!);elseMessageBox.Show(您没有修改任何信息);return;执行入库操作后,将显示入库表的情况,具体界面如下:图 入库界面5.2.1.3出库操作出库操作同入库操作一样要更改与物资有关的信息,比如出库表、仓库及库存表。典型代码如下:private void OutStorage_Load(object sender, System.EventArgs e) MyC
27、onn.Open();/打开连接OutStgAdapter.SelectCommand.CommandText = SELECT * FROM storage_out; OutStgAdapter.SelectCommand.Connection = MyConn;OutStgAdapter.Fill(OutStgInfo);/填充数据集this.dataGrid1.DataSource = OutStgInfo.DefaultView;OSReport = (CurrencyManager) BindingContextOutStgInfo;DataGridTableStyle Out =
28、new DataGridTableStyle(); this.DataBindingsFunction();Out.AlternatingBackColor = Color.Blue;/颜色设置Out.MappingName = OutStgInfo.TableName;this.dataGrid1.Select(0);/选定第一列this.textNum2.Enabled=false;private void DataBindingsFunction()/绑定this.textNum2.DataBindings.Add(Text,OutStgInfo,设备号);this.textDate.D
29、ataBindings.Add(Text,OutStgInfo,出库日期);this.textDep.DataBindings.Add(Text,OutStgInfo,使用部门);this.textAmount.DataBindings.Add(Text,OutStgInfo,数量);this.textMan.DataBindings.Add(Text,OutStgInfo,经办人);this.textExp.DataBindings.Add(Text,OutStgInfo,备注);private void add_button_Click(object sender, System.Even
30、tArgs e)/增加记录tryOSReport = (CurrencyManager)this.BindingContextOutStgInfo;OSReport.AddNew();/增加新记录this.textDate.Text=DateTime.Now.ToString();this.textNum2.Enabled=true;this.change=true;/还库数量更改this.oldtxtAmount=0;this.textNum2.Focus();/焦点在第一个字段上catch( Exception ex )MessageBox.Show(ex.Message);private
31、 void send_button_Click(object sender, System.EventArgs e)/提交信息tryif( MyConn.State != ConnectionState.Open)MyConn.Open();if(this.textNum2.Enabled=true)this.textNum2.Enabled=false;OSReport = (CurrencyManager)this.BindingContextOutStgInfo;if (this.textNum2.Text.Trim() = |this.textAmount.Text.Trim()=)/
32、检查不能为空的字段MessageBox.Show(设备号,数量不能为空!);return;OSReport.EndCurrentEdit();if(OutStgInfo.GetChanges()!=null)/信息是否被重新编辑if(!change)if(oldtxtAmount=this.textAmount.Text.Trim()change=false;elsechange=true;OutStgAdapter.UpdateCommand.Connection=MyConn;/更新到数据库OutStgAdapter.InsertCommand.Connection=MyConn;OutS
33、tgTran=MyConn.BeginTransaction();OutStgAdapter.UpdateCommand.Transaction = OutStgTran;OutStgAdapter.InsertCommand.Transaction = OutStgTran;this.OutStgAdapter.Update(OutStgInfo); int cmdresults = 0;if(change)string driveID=this.textNum2.Text.Trim();string number=this.textAmount.Text.Trim();int outnum
34、ber=0-(int.Parse(number)+int.Parse(this.oldtxtAmount);SqlCommand driveStorageUpdateCommand = new SqlCommand();/更新库存表的现有库存driveStorageUpdateCommand.Connection = MyConn;/调用存储过程driveStorageUpdateCommand.Transaction = OutStgTran;driveStorageUpdateCommand.CommandType = CommandType.StoredProcedure;driveSt
35、orageUpdateCommand.CommandText = UpdateStorage;driveStorageUpdateCommand.Parameters.Add(i_Drive_ID,SqlDbType.Char,10);driveStorageUpdateCommand.Parametersi_Drive_ID.Value = driveID;driveStorageUpdateCommand.Parameters.Add(i_InOutNumber,SqlDbType.Int);driveStorageUpdateCommand.Parametersi_InOutNumber
36、.Value = outnumber;driveStorageUpdateCommand.Parameters.Add(o_ErrMessage,SqlDbType.VarChar,256);driveStorageUpdateCommand.Parameterso_ErrMessage.Direction = ParameterDirection.Output;driveStorageUpdateCommand.Parameters.Add(o_Return,SqlDbType.Int);driveStorageUpdateCommand.Parameterso_Return.Directi
37、on = ParameterDirection.ReturnValue;cmdresults = driveStorageUpdateCommand.ExecuteNonQuery();cmdresults = Convert.ToInt16(driveStorageUpdateCommand.Parameterso_Return.Value);if( cmdresults != 0)MessageBox.Show(driveStorageUpdateCommand.Parameterso_ErrMessage.Value.ToString();OutStgTran.Rollback();el
38、seMessageBox.Show(成功!);OutStgTran.Commit();return;elseMessageBox.Show(您没有修改任何信息);return;catch(Exception ex)MessageBox.Show(对不起,您输入的设备号错误!具体信息:+ex.ToString();if( OutStgTran != null )OutStgTran.Rollback();if( MyConn.State != ConnectionState.Closed)MyConn.Close();return;出库操作的界面:5.2.1.4设备信息操作设备信息的添加删除修改操作:private void DataBindingsFunction()/绑定this.textNum.DataBindings.Add(Text,FacNumInfo,设备号);this.textName.DataBindings.Add(Text,FacNumInfo,设备名称);private void add_button_Click(object sender, System.EventArgs e)/增加记
©2010-2024 宁波自信网络信息技术有限公司 版权所有
客服电话:4008-655-100 投诉/维权电话:4009-655-100