图5.4 基础信息管理菜单窗口
5.2.2物资入库出库管理
其中入库业务管理涉及三个窗口,主入库操作窗口如下:
图5.5入库业务管理主窗口
其中入库单审核的存储过程如下(proc_wzrk): /*物资入库审核*/
/*作者:黄盛 重大网院 082计算机科学与技术*/ CREATE PROC proc_wzrk
@shczybm CHAR(6), @dh CHAR(10) AS
BEGIN TRANSACTION up
--1、设置审核标志,以防别人读取。
UPDATE tb_RKD SET shczy=@shczybm FROM tb_RKD WHERE (shczy='' or shczy is null) AND dh=@dh IF @@error>0
BEGIN
SELECT '设置审核标志时失败。请重试!' ROLLBACK TRANSACTION up RETURN
END
--2、生成流水帐记录
INSERT INTO tb_KCLSZ
([DH],[DJLX],[DJRQ],[WZBM],[DW],[DJ],[KCDJ],[CSKC],[RKSL],[CKSL],[JYKC],[LYQX]) SELECT
a.dh,'I',getdate(),b.wzbm,c.dw,b.dj,c.dj,c.dqkc,b.sl,0,c.dqkc+b.sl,d.gysmc
FROM tb_rkd a,tb_rkdmx b,tb_wz c,tb_gys d
WHERE a.dh=b.dh and b.wzbm=c.wzbm and a.gysbm=d.gysbm and a.dh=@dh IF @@error>0
BEGIN
SELECT '生成流水帐记录时失败,请重试!'
ROLLBACK TRANSACTION up
RETURN
END
--3、从流水帐记录中计算出加权平均单价及新的库存 UPDATE tb_WZ set dj=b.newdj ,dqkc=b.jykc FROM tb_WZ a,(SELECT
WZBM,JYKC,CONVERT(DECIMAL(12,2),(CSKC*KCDJ+RKSL*DJ)/JYKC) AS 'newdj'
FROM tb_KCLSZ WHERE djlx='I' and dh=@dh) b WHERE a.wzbm=b.wzbm IF @@error>0
BEGIN
SELECT '更新库存时失败,请重试!'
ROLLBACK TRANSACTION up
RETURN
END
--提交事务 SELECT 'OK'
COMMIT TRANSACTION up
点击新单或在打开入库单窗口时已存未完成的单据,都将显示一个单据列表供用户选择要编辑的单据,该窗口同时还可以新增或删除未完成的单据,如图5.6所示:
图5.6 待处理的入库单列表
出库单的窗口及处理和入库单相类似,考虑到出库时物资实际库存量可能会因其他用户也同时在进行出库处理,而导致在审核单据时发生某项物资的实际库存不足的情况,因此,出库单审核时需要增加一步库存量是否足够的检测工作,这一步在存储过程中有体现。同时为了方便操作员提前检查这种待出库物资库存不足的情况,窗口中增加了一个【检测】按钮,如图5.7所示:
相关推荐: