1: 修改触发器tr_yk_yprkd0_afupd ,注释 “ UPDATE YF_YPCKD0 SET CKZT00='1' WHERE CKDH00=V_CKDH00; ”保存, 运行 2: UPDATE YK_YPRKD0 SET RKZT00='3' ,QRRQ00=TO_CHAR(SYSDATE,'YYYYMMDD'),QRSJ00=TO_CHAR(SYSDATE,'HH24:MI:SS') ,QRRBH0='2' WHERE RKDH00 = '31110' 4: 修改触发器tr_yk_yprkd0_afupd ,去除注释该行 “ UPDATE YF_YPCKD0 SET CKZT00='1' WHERE CKDH00=V_CKDH00; ”保存, 运行 5:通过下面语句找到 产生的出库单号 ,查明具体问题为,药库单价格管理,药房多价格管理,两个价格不一,造成问题: select * from yf_ypckd0 where srrq00='20100623' and bz0000 like '31110%' 6:手工产生调价损益 INSERT INTO YF_YPMXZ0( MXZLSH, --明细账流水号-->SQ_YF_YPMXZ0_MXZLSH YFBMBH, --药房部门编号 YPNM00, --药品内码 YPMC00, --药品名称 YPGG00, --规格 JZRQ00, --记账日期 JZSJ00, --记账时间 CRBMBH, --出入部门编号 ZY0000, --摘要(自动:出入部门名称) JZDW00, --记账单位 ZHL000, --转换率(记账单位/剂量单位) GJDJ00, --购进单价(记账单位) FCDJ00, --发出单价(零售价)(记账单位) FCSL00, --发出数量(记账单位) FCJE00, --发出金额(零售价) JCDJ00, --结存单价(结存金额/结存数量) JCSL00, --结存数量(记账单位)(药品总量) JCJE00, --结存金额(零售价)(药品总量) RCLXBH, --入出库类型编码:BM_YFRKLX,BM_YFCKLX RCLXMC, --入出库类型名称:BM_YFRKLX,BM_YFCKLX JZXZ00) --记账性质:'R',入库,'C',出库 select SQ_YF_YPMXZ0_MXZLSH.NEXTVAL, 158, 19880, YPMC00, YPGG00, '20100623', '13:12:01', 66666, '处方调亏', CKDW00, ZHL000, GJDJ00, LSDJ00, 0, -ROUND(0.01*49,2), 0.97, 9800, 48.02-0.49, '06', '调价报亏', 'C' FROM YF_YPCKMX WHERE CKDH00='339384' UPDATE YF_YPKCXX SET LSDJ00=0.97 WHERE YFBMBH=158 AND YPNM00=19880; UPDATE YF_PCKCMX SET LSDJ00=0.97 WHERE YFBMBH=158 AND YPNM00=19880; 7:将药房的出库单改成入库状态。 UPDATE YF_YPCKD0 SET CKZT00='1' WHERE CKDH00='339384'; COMMIT; 备注:存在的程序问题提交需求YK-20100623-001处理: 在参数YK_YF_LSJSFDLGL='N',YF_SFDLSJGL='Y'的参数模式下, 如果此时药库的药品单价与药房要退的批次的单价不一致,那么系统提示批次库存不足,退库确认失败, 现在触发器tr_yk_yprkd0_afupd中, 确认药房的入库单前, 将退库数量部分价格从药房的批次价格调整成药库的价格, 只记录到YF_YPMXZ0,并且修改YF_PCKCMX表的单价为调整后的价格,该调价部分写成过程在触发器中调用。