仓储过程的业务流程如图3.3所示:
图3.3 仓储业务流程图
图 3.6 库存管理子系统DFD
●库存单,包括的数据项有:商品编号,商品名称,仓库编号,当前库存,最高库存,安全库存,备注。
●库存盘点单,包括的数据项有:商品编号,盘点数量,调整数量,操作日期,操作人员,标志。
●入库单,包括的数据项有:入库单号,入库时间,商品编号,商品名称,出版社,仓库编号,货架区编号,货架编号,货位编号,数量,入库方式,已入
库,备注。
●验收单,包括的数据项有:验收单号,日期,送货单号,商品编号,商品名称,出版社,数量,单价,金额,验收结果。
●验收退货单,包括的数据项有:退货单号,日期,商品编号,商品名称,出版社,数量,供应商编号,退货原因,备注。
●缺货单,包括的数据项有:商品编号,日期,商品名称,出版社,缺货数量,备注。
●出库单,包括的数据项有:出库单号,出库时间,领货单号,商品编号,商品名称,出版社,仓库编号,货架区编号,货架编号,货位编号,数量,出库方式,已出库,备注
●领货单,包括的数据项有:领货单号,商品编号,商品名称,出版社,商品数量,验证,备注。
●商品信息表,包括的数据项有:商品编号,商品名称,出版社,供应商编号,仓库编号,备注。
●员工资料表,包括的数据项有:员工编号,姓名,职务,性别,联系电话,备注。
●仓库信息表,包括的数据项有:仓库编号,商品编号,货架区编号,货架编号,货位编号,备注
●用户表,包括的数据项有:用户名,密码,级别,备注。
●送货通知单,包括的数据项有:送货单号,日期,采购单号,商品编号,商品名称,出版社,商品数量,是否确认,备注。
表1.4 库存单表格
表1.5 送货通知单表格
表1.6验收退货单表格
表1.7 缺货单表格
表1.8 入库单表格
(注:入库单号取值范围:000000~999999)
表1.9 出库单表格
(注:出库单号取值范围:000000~999999)
表2.4 领货单表格
表2.5 商品信息表表格
表2.7 员工资料表表格
表2.9 仓库信息表表格
表3.1 用户表表格
表3.5 库存盘点单
1、“到货确认单.scx”的设计
数据环境:“送货通知单.dbf”
“验收单.dbf”
动作描述:采购部门将“送货验收单.dbf”发到仓储管理员手中,管理员进行清点货物数量是否正确,如果正确后进行“到货确认”,点击“打印到货确认单”,打印此单给送货员交差。然后点击“添加到验收单”把相关信息添加到“验收单.dbf”。如果错误则点击“修改”修改“数量”并提示跟采购部门协商确认
具体动作及代码:1、到货确认
a=messagebox('确定已到货吗?',32+4+256,'系统提示')
if a=6 then
if thisform.txt是否确认.value='是'
messagebox('不能重复确认!',64,'系统提示')
else
select 送货验收单
replace 是否确认with '是'
endif
endif
thisform.refresh
2、添加到验收单
a=messagebox('确定要添加到验收单吗?',32+4+256,'系统提示')
if a=6 then
if thisform.txt是否确认.value<>'是'
messagebox('没有进行到货确认,不能添加到验货单!',64,'系统提示')
else
select 验收单
采购单号=alltrim(thisform.txt采购单号.value)
商品编号=alltrim(thisform.txt商品编号.value)
商品名称=alltrim(thisform.txt商品名称.value)
出版社=alltrim(thisform.txt出版社.value)
数量=thisform.txt商品数量.value
单价=thisform.txt单价.value
金额=thisform.txt金额.value
calculate max(验收单号)to Czdph
Nzdph=val(right(Czdph,6))
if Nzdph=0 then
Zdph='YS000001'
else
Zdph='YS'+padl(alltrim(str(Nzdph+1)),6,'0')
endif
验收单号=zdph
日期=date()
insert into 验收单(验收单号,日期,采购单号,商品编号,商品名称,出版社,数量,单价,金额);
values(zdph, date(),thisform.txt采购单号.value, thisform.txt商品编
号.value,thisform.txt商品名称.value,thisform.txt出版社.value,;
thisform.txt数量.value,thisform.txt单价.value,thisform.txt金额.value)
endif
endif
thisform.refresh
3、修改(假设控件名称为command6例)
if this.caption='修改'
this.caption='保存'
thisform.text1.enabled=.f.
thisform.txt数量.enabled=.t.
https://www.wendangku.net/doc/a61536458.html,mand10.enabled=.f.
https://www.wendangku.net/doc/a61536458.html,mand9.enabled=.f.
https://www.wendangku.net/doc/a61536458.html,mand8.enabled=.f.
https://www.wendangku.net/doc/a61536458.html,mand7.enabled=.f.
https://www.wendangku.net/doc/a61536458.html,mand5.enabled=.f.
https://www.wendangku.net/doc/a61536458.html,mand4.enabled=.f.
https://www.wendangku.net/doc/a61536458.html,mand3.enabled=.f.
https://www.wendangku.net/doc/a61536458.html,mand2.enabled=.f.
https://www.wendangku.net/doc/a61536458.html,mand1.enabled=.f.
else
a=messagebox('确定要保存吗?',32+4,'系统提示')
if a=6
repl 数量with val(thisform.txt数量.value)
endif
this.caption='修改'
thisform.text1.enabled=.t.
thisform.txt数量.enabled=.f.
https://www.wendangku.net/doc/a61536458.html,mand10.enabled=.t.
https://www.wendangku.net/doc/a61536458.html,mand9.enabled=.t.
https://www.wendangku.net/doc/a61536458.html,mand8.enabled=.t.
https://www.wendangku.net/doc/a61536458.html,mand7.enabled=.t.
https://www.wendangku.net/doc/a61536458.html,mand5.enabled=.t.
https://www.wendangku.net/doc/a61536458.html,mand4.enabled=.t.
https://www.wendangku.net/doc/a61536458.html,mand3.enabled=.t.
https://www.wendangku.net/doc/a61536458.html,mand2.enabled=.t.
https://www.wendangku.net/doc/a61536458.html,mand1.enabled=.t.
endif
4、退出
thisform.release
5、查询
set exac off
if txt=alltrim(thisform.text1.value)
continue
thisform.refresh
else
txt=alltrim(thisform.text1.value)
locate for 送货单号=alltrim(thisform.text1.value)
endif
if found()=.t.
thisform.refresh
else
messagebox('没有找到符合条件的记录!',16,'系统提示') go top
thisform.refresh
endif
6上一个
if bof()=.f.
skip-1
else
messagebox('已经是第一条记录了!',64,'系统提示')
endif
thisform.refresh
7第一个
go top
thisform.refresh
8下一个
skip
if eof()
messagebox('已经是最后一条记录了!',64,'系统提示')
skip-1
endif
thisform.refresh
9、最后一个
go bottom
thisform.refresh
10、打印到货确认单
a=messagebox('确定要打印到货确认单吗?',32+4+256,'系统提示')
if a=6 then
if thisform.txt是否确认.value<>'是'
messagebox('没有进行到货确认,不能打印到货确认单!',64,'系统提示') else
select 到货确认单
txt送货单号=recno()
report form rep1 for recno()=txt送货单号preview
endif
endif
thisform.refresh
11、在表单form的init事件中添加以下代码:
thisform.refresh
thisform.txt送货单号.enabled=.f.
thisform.txt日期.enabled=.f.
thisform.txt采购单号.enabled=.f.
thisform.txt出版社.enabled=.f.
thisform.txt商品编号.enabled=.f.
thisform.txt商品名称.enabled=.f.
thisform.txt数量.enabled=.f.
thisform.txt单价.enabled=.f.
thisform.txt金额.enabled=.f.
thisform.txt是否确认.enabled=.f.
thisform.txt备注.enabled=.f.
在表单form的refresh事件中添加以下代码:
this.txt送货单号.value=alltrim(送货通知单.送货单号)
this.txt日期.value=送货通知单.日期
this.txt采购单号.value=alltrim(送货通知单.采购单号)
this.txt出版社.value=alltrim(送货通知单.出版社)
this.txt商品编号.value=alltrim(送货通知单.商品编号)
this.txt商品名称.value=alltrim(送货通知单.商品名称)
this.txt数量.value=alltrim(str(送货通知单.数量)) this.txt单价.value=alltrim(str(送货通知单.单价)) this.txt金额.value=alltrim(str(送货通知单.金额)) this.txt是否确认.value=alltrim(送货通知单.是否确认) this.txt备注.value=alltrim(送货通知单.备注)
在表单form的load事件中添加以下代码:public txt
txt=''