仓库管理系统实验报告Word格式.docx

上传人:b****6 文档编号:17503899 上传时间:2022-12-06 格式:DOCX 页数:22 大小:611.79KB
下载 相关 举报
仓库管理系统实验报告Word格式.docx_第1页
第1页 / 共22页
仓库管理系统实验报告Word格式.docx_第2页
第2页 / 共22页
仓库管理系统实验报告Word格式.docx_第3页
第3页 / 共22页
仓库管理系统实验报告Word格式.docx_第4页
第4页 / 共22页
仓库管理系统实验报告Word格式.docx_第5页
第5页 / 共22页
点击查看更多>>
下载资源
资源描述

仓库管理系统实验报告Word格式.docx

《仓库管理系统实验报告Word格式.docx》由会员分享,可在线阅读,更多相关《仓库管理系统实验报告Word格式.docx(22页珍藏版)》请在冰豆网上搜索。

仓库管理系统实验报告Word格式.docx

数据结构

长度

是否允许空

备注

产品编号sto_id

Char

10

主键

产品名称sto_name

20

产品库存sto_number

Int

产品单位sto_unit

5

产品单价sto_price

Float

产品类型编号sto_typeId

外键

产品库房编号sto_houseId

产品出产日期sto_proTime

Date

产品保质日期sto_life

产品净含量sto_weight

2.2.2产品类型jiangxue_type表结构

类型编号type_id

类型名称type_name

3入库表jiangxue_inStorage表结构

入库编号in_id

入库日期in_time

Datetime

入库产品编号in_stoId

入库数量in_stonumber

产品类型编号in_typeId

供应商编号in_supId

操作员编号in_opeId

入库库房编号in_houseId

备注in_comment

50

2.4出库表jiangxue_outStorage表结构

出库编号out_id

出库日期out_time

出库产品编号out_stoId

出库数量out_stonumber

产品类型编号out_typeId

领取部门编号out_depId

出库操作员out_opeId

备注out_comment

2.2.5供应商jangxue_supplier表结构

供应商编号sup_id

供应商名称sup_name

供应商电话sup_phone

供应商地址sup_address

30

供应商邮件sup_email

供应商邮编sup_postcade

6出货部门jiangxue_department表结构

部门编号dep_id

部门名称dep_name

2.7操作员jiangxue_operator表结构

操作员编号ope_id

操作员姓名ope_name

操作员性别ope_sex

操作员电话ope_phone

操作员职位ope_position

操作员身份证号ope_idcard

2.2。

8库房jiangxue_storeHouse表结构

库房编号stohouse_id

库房面积stohouse_area

管理员stohouse_manager

9用户jiangxue_user表结构

用户名username

密码password

第三章数据库程序设计

3.1数据库及表的定义

3。

2创建索引(加快查询速度)

其他表类似。

3创建存储过程

3.1带参数的存储过程

描述:

根据产品编号返回对应的产品信息

usejiangxue_storage

IFEXISTS(SELECTnameFROMsysobjects

WHEREname='

jiangxue_someStorage’ANDtype=’P’)

DROPPROCEDUREjiangxue_someStorage

go

createprocedurejiangxue_someStorage

@idvarchar(10)

as

select*fromjiangxue_storage

wheresto_id=@id

2带output参数的存储过程

返回某产品近期入库的总数量

WHEREname=’jiangxue_countInStorage'

ANDtype='

P'

DROPPROCEDUREjiangxue_countInStorage

createprocedurejiangxue_countInStorage

@idvarchar(10),

@namevarchar(20)out,

@unitvarchar(5)out,

@totalintOUTPUT

select

@total=SUM(in_stonumber),

@name=jiangxue_storage.sto_name,

@unit=jiangxue_storage。

sto_unit

fromjiangxue_inStorage,jiangxue_storage

wherein_stoId=@idand

jiangxue_storage.sto_id=jiangxue_inStorage.in_stoId

groupby

jiangxue_inStorage。

in_stoId,jiangxue_storage.sto_name,

jiangxue_storage。

执行:

declare@namevarchar(20),

@unitvarchar(5),@totalint

execjiangxue_countInStorage1,@nameout,@unitout,@totaloutput

print@name+'

的近期入库总数量:

’+rtrim(@total)+@unit

3.3描述:

增加一条产品记录

createprocedure[dbo].[jiangxue_insertStorage]

@namevarchar(20),

@numberint,

@unitvarchar(5),

@wpricefloat,

@typeidvarchar(10),

@houseidvarchar(10),

@protimedate,

@lifevarchar(10),

@weightvarchar(10)

insertintojiangxue_storage

values(@id,@name,@number,@unit,@wprice,@typeid,@houseid,@protime,@life,@weight)

4描述:

更新商品信息

createprocedure[dbo]。

[jiangxue_updateStorage]

@namevarchar(20),

@numberint,

@unitvarchar(5),

@typeidvarchar(10),

@houseidvarchar(10)

updatejiangxue_storage

setsto_name=@name,sto_number=@number,sto_unit=@unit,

sto_wprice=@wprice,sto_typeId=@typeid,sto_houseId=@houseid

wheresto_id=@id

4触发器设计

4。

1insert触发器

描述:

当增加出库记录后,库存表jiangxue_storage中对应的产品库存数量sto_number便减去其出库数量out_stonumber

createtriggerupdateOutStorageonjiangxue_outStorage

afterinsert

updatejiangxue_storagesetsto_number=sto_number-inserted.out_stonumber

fromjiangxue_storage,inserted

where

sto_id=inserted。

out_stoId

当增加入库记录后,库存表jiangxue_storage中对应的产品库存数量sto_number便增加其入库数量in_stonumber

Createtrigger[dbo]。

[updateInStorage]on[dbo]。

[jiangxue_inStorage]

updatejiangxue_storagesetsto_number=sto_number+inserted.in_stonumber

jiangxue_storage.sto_id=inserted。

in_stoId

4.2update触发器

描述:

向库存表jiangxue_storage中插入一条数据后,显示全部产品的记录,便于确认信息

createtriggerinsertStorage

onjiangxue_storage

forupdate

asselect*frominserted

3.5游标应用

将出库表中产品出库数量更新到库存表中对应编号的产品数量.

结果:

将入库表中产品如库数量更新到库存表中对应编号的产品数量。

第四章用户交互界面

4.1用户登录界面

输入用户名及密码,验证输入是否正确,输入错误则弹出错误的对话框。

正确则跳到主界面.

2主界面

显示当前日期,及登录用户名。

4.3产品管理

查询、修改、增加产品信息

4产品类型管理

查询、修改、增加产品类型

4.5入库操作

在表格内输入入库信息,批量填写入库信息后,点击增加入库信息按钮进行批量入库.

4.6出库操作

在表格内输入出库信息,批量填写出库信息后,点击增加出库信息按钮进行批量出库。

4.7供应商管理

查询、增加、删除、修改供应商信息

8出货部门管理

查询所有部门信息或某部门信息、增加、删除及修改部门

9操作员查询

查询操作员信息,不能进行修改

4.10库房管理

查询全部仓库信息、通过某仓库号查询该仓库信息,删除及修改仓库信息。

第五章实验中遇到的问题及总结

数据库设计

(1)设计表时,没有从实际角度出发,刚开始入库表的属性中包含了产品的名称、及产品的其他属性,造成了严重的冗余,未考虑到一般仓库内录入的是库存内已有的产品。

如果出现新产品,也应该先从产品表中添加,再进行入库操作。

如果属性类型、允许null值及移动属性顺序时候,在数据表设计界面中直接修改会出现如下界面:

只能用sql语句进行修改。

最后通过查询资料得点击工具—〉选项,弹出如下图所示对话框,去掉勾选“阻止保存要求重新创建表的更改”.

1.创建存储过程

在入库表中创建带返回参数的存储过程时,出现如下图所示错误,本意选出对应编号的商品数据,输出商品名称及近期入库的总数量.

需要设置一个变量@name进行赋值即可.

加上rtrim将int转化成varchar型

2.触发器设计

设计了一个insert触发器,当入库操作的产品不在库存表内,则在库存表内增加该商品的信息。

验收的时候发现自己表设计上冗余过大。

同时在C#编程时也出现了错误,疑问:

不知道为什么会出错?

USEjiangxue_storage

insertStorage'

TR’)

DROPTRIGGERinsertStorage

GO

createTriggerinsertStorage

onjiangxue_inStorage

forinsert

if((selectCOUNT(*)frominsertedi,jiangxue_storageswherei。

in_stoId=s。

sto_id)=0)

begin

declare@idvarchar(10),@namevarchar(20),@numberint,@unitvarchar(5),@pricefloat,

@typeidvarchar(10),@houseidvarchar(10),@protimedate,@lifevarchar(10),@weightvarchar(10)

set@id=(selectin_stoIdfrominsertediwherei。

in_stoIdnotin(selectsto_idfromjiangxue_storage))

set@name=(selectin_stonamefrominsertedwherein_stoId=@id)

set@number=(selectin_stonumberfrominsertedwherein_stoId=@id)

set@unit=(selectin_stounitfrominsertedwherein_stoId=@id)

set@price=(selectin_stopricefrominsertedwherein_stoId=@id)

set@typeid=(selectin_typeIdfrominsertedwherein_stoId=@id)

set@houseid=(selectin_houseIdfrominsertedwherein_stoId=@id)

set@protime=(selectin_proTimefrominsertedwherein_stoId=@id)

set@life=(selectin_lifefrominsertedwherein_stoId=@id)

set@weight=(selectin_weightfrominsertedwherein_stoId=@id)

end

insertintojiangxue_storage

values(@id,@name,@number,@unit,

@price,@typeid,@houseid,@protime,@life,@weight)

insertintojiangxue_inStorage

values(2013,’2013-12-05'

8,’蜂蜜水'

10,'

瓶'

5

2,3,1,’b'

'

2013—11—05’,'

18个月’,’500g’,'

该食品未在库存内’)

5。

游标设计

因为是第一次接触嵌入式sql语句,对于游标的熟练度还是远远不够的。

不过游标中fetch的运用跟java中ResultSet语句类似,与原来知识相互联系后加深了对游标的认识。

在以后的学习中要懂得知识的相互融通,以不变应万变.

注:

例子中仓库管理系统的游标设计有问题,while循环内没有fetchnext跳到下一条记录的语句,会成了执行时的死循环,一直在执行第一个记录

6。

用户交互界面的设计

初学C#编程中的WPF应用程序编程,所以对详细知识没有掌握很透彻.实现了通过下拉框选取编号,来查询对应的产品、部门、供应商、产品类型的信息.但最后未能完全实现入库、出库操作中对于类型编号、产品编号、操作员编号下拉框操作,在DataGrid中增加下拉框有点难度,最终采取了输入文本框的操作,在以后编程中要与实际相结合,便于用户操作。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 高考

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1