课程大作业仓库管理子系统.docx
- 文档编号:26211216
- 上传时间:2023-06-17
- 格式:DOCX
- 页数:20
- 大小:246.59KB
课程大作业仓库管理子系统.docx
《课程大作业仓库管理子系统.docx》由会员分享,可在线阅读,更多相关《课程大作业仓库管理子系统.docx(20页珍藏版)》请在冰豆网上搜索。
课程大作业仓库管理子系统
课程大作业――仓库管理子系统
一、课题介绍…………………………………………………………………2
二、系统分析和设计思想……………………………………………………4
1.数据库设计……………………………………………………………5
2.程序结构总体设计……………………………………………………9
三、脚本代码…………………………………………………………………10
四、小结………………………………………………………………………38
一、
课题介绍
商品进销存管理系统——仓库管理子系统,主要用来执行公司内商品的出库入库,进行库房盘点,并向公司领导汇报,接受公司领导的库房查询。
库房的管理在整个公司是非常重要的,公司的所有产品都在库房里,如果库房管理不当,将给公司造成很大损失。
所以本软件可帮助库房管理员很好的管理库房,可使库房管理信息化,有效提高库房的管理水平。
库房管理子系统业务流程:
入库管理:
采购员采购商品后到仓库管理员处办理如库手续,仓库管理员根据采购单对商品进行检验,确认后会生成入库单,再允许商品入库。
出库管理:
销售业务员到仓库管理员处办理出库手续,仓库管理员根据订购单对仓库中的商品库存量等信息进行校对,确认后,生成出库单,再允许商品出库。
分工组成结构树见下图:
业务协作流程见下图:
该系统可供各公司使用,它主要是用来对公司的库房进行管理的系统,它主要有2部分组成,记录模块和查询模块。
各部分的功能如下:
1.管理模块具体包括以下几个功能模块:
入库管理:
入库管理是仓库管理员根据采购单对商品进行检验,确认后会生成入库单,再允许商品入库。
出库管理:
出库管理是仓库管理员根据订购单对仓库中的商品库存量等信息进行校对,确认后,生成出库单,再允许商品出库。
库房盘点:
库房盘点是库房管理员将仓库中的所有商品分类,再对商品的数量等进行盘点,如有亏损记录下信息,并修改原库房盘点表。
2.查询模块具体包括以下几个功能模块:
查询库存:
当库房管理员要了解仓库中商品的数量等有关信息时,可以通过查询库存检索出相关信息。
查询入库单:
通过时间及类型的分类,可以把近期入库的商品的信息检索出来。
查询出库单:
通过时间段及类型的分类,可以把近期出库的商品的信息检索出来。
查询盘点记录:
通过商品类别的分类,将各种商品的盘点情况显示出来。
二、系统分析和设计思想
库房管理子系统是由两个模块组成:
管理模块和查询模块。
管理模块主要用来管理商品出库入库和库房盘点的工作。
查询模块主要用来对库存、入库单、出库单、盘点记录进行查询。
1.数据库设计:
主要由7个表和2个视图组成。
表名称
代码
入库单内容
intoItems
出库单内容
OutItems
入库单
putStorage
商品
product
出库单
OutStorage
盘点记录
inventory
入库单(Inwarehouse)
说明:
记录当前库存地点上商品的数量与金额,由系统根据库存活动自动计算并产生
列命名
列名称
列描述
类型与长度
可否为空
主键
外键
索引
有效值
inNum
入库单编号
不能重复,自动生成,不同类型的入库单规则如下:
采购入库;CGRK年月日-3位流水号
CHAR(9)
否
是
9
inDate
入库时间
自动等于系统当前时间
DATETIME
是
inObject
入库外部对象
外部对象,供货商
VARCHAR(8)
是
inTotal
入库单总金额
自动计算产品内容的金额的合计
MONEY
inChecker
验收人
仓库管理员作为验收人
CHAR(6)
inWareman
入库单录入人
当前系统用户
是
入库单明细(Initem)
说明:
记录针对一个具体库存地点的每一次入库的物资内容,必须依赖于入库单发生。
列命名
列名称
列描述
类型与长度
可否为空
主键
外键
索引
有效值
inNum
入库单编号
自动继承入库单的编号
CHAR(9)
否
是
IntmNum
入库项目序号
入库项目序号,1,2,3……
SMALLINT
是
commNum
商品编号
商品编号
CHAR(8)
是
是
IntmCost
入库单价
单价
MONEY
IntmQuantity
入库数量
数量
FLOAT
PONum
相关采购单号
采购单号
CHAR(9)
是
出库单(outwarehouse)
说明:
记录针对一个具体库存地点的每一次出库,必须拥有物资内容(库存出库)。
列命名
列名称
列描述
类型与长度
可否为空
主键
外键
索引
有效值
outNum
出库单编号
不能重复,自动生成,不同类型的出库单规则如下:
销售出库;XSCK年月日-3位流水号
CHAR(9)
否
是
outDate
出库时间
自动等于系统当前时间
DATETIME
是
outObject
出库外部对象
客户编号
VARCHAR(8)
outTotal
出库总金额
自动计算产品内容的金额的合计
MONEY
outWareman
出库单录入人
仓库管理员,自动等于当前系统用户键值
CHAR(6)
出库单明细(outitem)
说明:
记录针对一个具体库存地点的每一次出库的物资内容,必须依赖于出库单发生。
列命名
列名称
列描述
类型与长度
可否为空
主键
外键
索引
有效值
outNum
出库单编号
自动继承出库单的编号
CHAR(9)
否
是
outmNum
出库项目序号
出库项目序号,1,2,3……
SMALLINT
是
commNum
商品编号
商品编号
CHAR(8)
是
是
outmQuantity
出库数量
出库数量,不能等于0
FLOAT
outPrice
出库单价
成本单价,自动继承所属物资的成本单价
MONEY
SONum
相关销售单号
采购单号
CHAR(9)
是
盘点表(inventory)
说明:
对库内商品进行盘查核对
列命名
列名称
列描述
类型与长度
可否为空
主键
外键
索引
有效值
invDate
盘点日期
盘点日期
DATETIME
否
commNum
盘点商品
盘点商品编号
CHAR(8)
invAccountQuantity
帐面库存数量
帐面库存数量
FLOAT
invRealQuantity
实际库存数量
实际库存数量
FLOAT
invCause
盈亏原因
盈亏原因
VARCHAR(100)
invChecker
盘点人
盘点人
CHAR(6)
2.程序结构总体设计
库房子系统的HIPO图,如下所示:
三、脚本代码
1.应用程序对象、主窗口与主菜单的设计
应用程序对象的脚本代码如下:
(1)应用程序全局变量:
u_comusedg_com//定义u_comused类型的对象
(2)应用程序open事件脚本:
environmentlenv_env//holdsenvironmentinformation
stringls_startupfile,sname,scode,corp,sdir,slog//holdsnameofstart-upfile
Intli_app
//Gettheenvironmentinformation
if(GetEnvironment(lenv_env)<>1)then
MessageBox("Application:
Open",&
"Unabletogetenvironmentinformation.~nHalting...")
halt
endif
iflenv_env.ScreenHeight<>600orlenv_env.ScreenWidth<>800then
messagebox("提示信息","请将分辨率设置为800*600")
endif
//创建用户对象实例
g_com=CREATEu_comused
//得到路径和单位名称
sname=".\business.ini"
sdir=ProfileString(sname,"application","exedir","")
g_com.uf_setDir(sdir)
corp=ProfileString(sname,"application","单位名称","")
g_com.uf_setCorp(corp)
Open(w_login)
(3)主窗口W_main界面
(4)主菜单m_customer
本子系统有一名为m_warehouse的主菜单。
下面介绍其中的各个子菜单及它们的clicked()事件
入库管理中商品入库:
open(w_putStorage)//调商品入库窗口
出库管理中商品出库:
open(w_outStorage)//调商品出库窗口
库房盘点中盘点库房:
open(w_inventory)//调库存盘点窗口
统计查询中查询库存:
open(w_seekstock)//调查询库存窗口
统计查询中查询入库单:
open(w_seekputstorage)//调查询入库单窗口
统计查询中查询出库单:
open(w_seekoutstorage)//调查询出库单窗口
统计查询中查询盘点记录:
open(w_seekinventory)//调查询盘点记录窗口
2.各子窗口设计
(1)库存盘点窗口w_inventory
①功能:
此时库房管理员可以在分类检索栏的下拉列表框里选择所要盘点的一类商品,例如选择“主板”,所有关于主板的商品信息将在最上方的数据窗口对象里显示出。
然后再对一种商品进行盘点,经过盘点后如果发现有质量或丢失等问题,可以输入盘点信息,录入盈亏原因及被淘汰后所剩下的实际库存量。
再按登记按钮,此时所盘点后的商品将在左下方的数据窗口对象里显示并记录!
然后依依如上检索商品!
②窗口事件:
open()事件库存盘点初始化
DataWindowChilddwc_classify//说明一个DataWindowChild类型的变量
//初始化控件和数据窗口控件
dw_1.insertrow(0)//在数据窗口控件插入一空行
dw_1.GetChild('classifyid',dwc_classify)//得到名称为classifyid(列)的子数据窗口对象的引用,并存放在dw_classify中
dwc_classify.SetTransObject(SQLCA)//dw_classify使用系统缺省的事务对象SQLCA
dwc_classify.Retrieve()//从数据库中检索数据
dw_1.SetFocus()
//设置库存数据窗口
dw_product.SetTransObject(SQLCA)
dw_product.SetRowFocusIndicator(Hand!
0,0)
//设置盘点数据窗口
dw_inventory.SetTransObject(SQLCA)
③各控件的介绍:
本窗口有3个数据窗口控件dw_product(对应是d_inventoryproduct数据窗口对象)、dw_inventory(对应是d_inventory数据窗口对象)和dw_1,2个单行编辑框sle_acc和sle_real,2个按钮cb_register和cb_quit
数据窗口控件dw_product的事件
rowfocuschanged()事件检索当前记录对应的盘点信息
longrsm,pid
rsm=this.rowcount()
ifcurrentrow>0andcurrentrow<=rsmthen
//检索以前的盘点记录
pid=this.object.pdID[currentrow]
dw_inventory.retrieve(pid)
//更新提示
sle_acc.text=string(this.object.pdtotal[currentrow])
endif
数据窗口控件dw_inventory事件
rowfocuschanged()事件
//改变当前行光带
this.SelectRow(0,FALSE)
this.SelectRow(currentrow,TRUE)
数据窗口控件dw_1事件
itemchanged()事件按类检索商品记录
dw_product.Retrieve(data)
登记按钮cb_register的事件
clicked()事件登记盘点盈亏
longrow,rsm,rrw
doubledif,rl
//检查输入是否合理
rsm=dw_product.rowcount()
row=dw_product.getrow()
ifrow<=0orrow>rsmthen
MessageBox("错误信息","没有选中库存商品,请检索库存商品!
")
return
endif
ifisnull(sle_real.text)orlen(trim(sle_real.text))=0then
MessageBox("错误信息","没有输入实际库存数,请重新输入!
")
return
endif
rl=double(sle_real.text)
ifdw_product.object.pdtotal[row]=rlthen
MessageBox("错误信息","实际库存数与帐面库存数相符,没有必要记录盈亏信息!
")
return
endif
//插入盘点记录
rrw=dw_inventory.InsertRow
(1)//在第一行插入
dw_inventory.ScrollToRow(rrw)
dw_inventory.SetRow(rrw)
dw_inventory.object.pdid[rrw]=dw_product.object.pdid[row]//商品编号
dw_inventory.object.invaccountquantity[rrw]=dw_product.object.pdtotal[row]//帐面库存数量
dw_inventory.object.invrealquantity[rrw]=rl//实际库存数量
dw_inventory.object.invdate[rrw]=datetime(today(),now())//盘点日期
dw_inventory.object.invchecker[rrw]=g_com.uf_getlogID()//盘点人
dw_inventory.object.invcause[rrw]=mle_cause.text//盈亏原因
//修改库存信息
dif=dw_inventory.object.invrealquantity[rrw]-dw_inventory.object.invaccountquantity[rrw]
dw_product.object.pdtotal[row]=dw_inventory.object.invrealquantity[rrw]
dw_product.object.pdquantity[row]=dw_product.object.pdquantity[row]+dif
//更新表信息
ifdw_inventory.Update(TRUE,FALSE)=1then
ifdw_product.Update(TRUE,FALSE)=1then
dw_inventory.ResetUpdate()
dw_product.ResetUpdate()
COMMITUSINGSQLCA;
sle_real.text=""
mle_cause.text=""
endif
endif
退出按钮cd_quit的事件
clicked()事件关闭窗口
close(parent)
(2)商品出库窗口w_outstorage
①功能:
客户所订购的商品内容将在客户订购单里显示,其中包括订购单号及时间,订单客户及类型,还有销售人员,处理状态等,选择你所要准备出库的商品,订购单明细将会把你所选商品的生产厂家及商品的详细内容显示出来。
然后拖拉放置到出库单内,此时处理状态由3变成4,表示状态由分配完毕变成出库完成将,便生成出库单,在出库单明细里也将详细内容显示出来。
如按存盘键可再录入数据。
②窗口事件
open()事件产生出库单初始化
//设置出库单数据窗口
dw_outList.SetTransObject(SQLCA)
dw_outList.SetRowFocusIndicator(Hand!
0,0)
//设置出库单明细数据窗口
dw_outItems.SetTransObject(SQLCA)
//设置订单明细数据窗口
dw_items.SetTransObject(SQLCA)
//设置客户订单数据窗口
dw_list.SetTransObject(SQLCA)
dw_list.SetRowFocusIndicator(Hand!
0,0)
dw_list.retrieve()
//dw_list.setFilter("soStatus=4")
定义函数:
wf_filteritems(longa_row)returns(none)过滤当前单据a_row行对应的出库明细
longoid
oid=dw_outList.object.outID[a_row]
dw_outItems.SetFilter("outid="+string(oid))
dw_outItems.Filter()
wf_moveitem(longa_row,longa_rwp)returns(none)按订单内容生成出库明细longrsm,row,rws
//在出库明细表中追加一行记录
row=dw_outItems.insertrow(0)
dw_outItems.scrolltorow(row)
dw_outItems.setrow(row)
//将订单商品信息赋值给出库单明细表
dw_outItems.object.outID[row]=dw_outList.object.outID[a_rwp]//出库单编号
dw_outItems.object.outmNum[row]=row//出库项目序号
dw_outItems.object.pdID[row]=dw_items.object.pdID[a_row]
//商品编号
dw_outItems.object.pdName[row]=dw_items.object.pdName[a_row]//商品名称
dw_outItems.object.pdModel[row]=dw_items.object.pdModel[a_row]//规格型号
dw_outItems.object.pdMadein[row]=dw_items.object.pdMadein[a_row]//生产厂商
dw_outItems.object.pdUnit[row]=dw_items.object.pdUnit[a_row]//单位
dw_outItems.object.outmQuantity[row]=dw_items.object.siQuantity[a_row]//出库数量
wf_movelist(longa_row)returnslong生成出库单新记录,将客户订单中的有关内容移到出库单中
long
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 课程 作业 仓库 管理 子系统