课程大作业仓库管理子系统Word文档格式.docx

上传人:b****5 文档编号:19819682 上传时间:2023-01-10 格式:DOCX 页数:18 大小:246.64KB
下载 相关 举报
课程大作业仓库管理子系统Word文档格式.docx_第1页
第1页 / 共18页
课程大作业仓库管理子系统Word文档格式.docx_第2页
第2页 / 共18页
课程大作业仓库管理子系统Word文档格式.docx_第3页
第3页 / 共18页
课程大作业仓库管理子系统Word文档格式.docx_第4页
第4页 / 共18页
课程大作业仓库管理子系统Word文档格式.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

课程大作业仓库管理子系统Word文档格式.docx

《课程大作业仓库管理子系统Word文档格式.docx》由会员分享,可在线阅读,更多相关《课程大作业仓库管理子系统Word文档格式.docx(18页珍藏版)》请在冰豆网上搜索。

课程大作业仓库管理子系统Word文档格式.docx

通过时间段及类型的分类,可以把近期出库的商品的信息检索出来。

查询盘点记录:

通过商品类别的分类,将各种商品的盘点情况显示出来。

二、系统分析和设计思想

库房管理子系统是由两个模块组成:

管理模块和查询模块。

管理模块主要用来管理商品出库入库和库房盘点的工作。

查询模块主要用来对库存、入库单、出库单、盘点记录进行查询。

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)

记录针对一个具体库存地点的每一次入库的物资内容,必须依赖于入库单发生。

自动继承入库单的编号

IntmNum

入库项目序号

入库项目序号,1,2,3……

SMALLINT

commNum

商品编号

CHAR(8)

IntmCost

入库单价

单价

IntmQuantity

入库数量

数量

FLOAT

PONum

相关采购单号

采购单号

出库单(outwarehouse)

记录针对一个具体库存地点的每一次出库,必须拥有物资内容(库存出库)。

outNum

出库单编号

不能重复,自动生成,不同类型的出库单规则如下:

销售出库;

XSCK年月日-3位流水号

outDate

出库时间

outObject

出库外部对象

客户编号

outTotal

出库总金额

outWareman

出库单录入人

仓库管理员,自动等于当前系统用户键值

出库单明细(outitem)

记录针对一个具体库存地点的每一次出库的物资内容,必须依赖于出库单发生。

自动继承出库单的编号

outmNum

出库项目序号

出库项目序号,1,2,3……

outmQuantity

出库数量

出库数量,不能等于0

outPrice

出库单价

成本单价,自动继承所属物资的成本单价

SONum

相关销售单号

盘点表(inventory)

说明:

对库内商品进行盘查核对

invDate

盘点日期

盘点商品

盘点商品编号

invAccountQuantity

帐面库存数量

invRealQuantity

实际库存数量

invCause

盈亏原因

VARCHAR(100)

invChecker

盘点人

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"

//创建用户对象实例

g_com=CREATEu_comused

//得到路径和单位名称

sname="

.\business.ini"

sdir=ProfileString(sname,"

application"

"

exedir"

"

g_com.uf_setDir(sdir)

corp=ProfileString(sname,"

单位名称"

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])

数据窗口控件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

ifisnull(sle_real.text)orlen(trim(sle_real.text))=0then

没有输入实际库存数,请重新输入!

rl=double(sle_real.text)

ifdw_product.object.pdtotal[row]=rlthen

实际库存数与帐面库存数相符,没有必要记录盈亏信息!

//插入盘点记录

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

退出按钮cd_quit的事件

clicked()事件关闭窗口

close(parent)

(2)商品出库窗口w_outstorage

①功能:

客户所订购的商品内容将在客户订购单里显示,其中包括订购单号及时间,订单客户及类型,还有销售人员,处理状态等,选择你所要准备出库的商品,订购单明细将会把你所选商品的生产厂家及商品的详细内容显示出来。

然后拖拉放置到出库单内,此时处理状态由3变成4,表示状态由分配完毕变成出库完成将,便生成出库单,在出库单明细里也将详细内容显示出来。

如按存盘键可再录入数据。

②窗口事件

open()事件产生出库单初始化

//设置出库单数据窗口

dw_outList.SetTransObject(SQLCA)

dw_outList.SetRowFocusIndicator(Hand!

//设置出库单明细数据窗口

dw_outItems.SetTransObject(SQLCA)

//设置订单明细数据窗口

dw_items.SetTransObject(SQLCA)

//设置客户订单数据窗口

dw_list.SetTransObject(SQLCA)

dw_list.SetRowFocusIndicator(Hand!

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

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

当前位置:首页 > 高等教育 > 研究生入学考试

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

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