递归方法计划销售订单的计划物料成本
2008-06-19 11:03
447 查看
一个PS报表中的需求,要求求销售订单的计划成本,其中就包括计划物料成本,比较确准的计算主法就是遍历BOM,求出物料成本. 如果在创建销售订单时项目BOM可以产生,且用户进行了成本估算,则完全可以从系统表中取出系统计算的计划成本,此法简单且快,但可惜不是所有的销售订单都能满足. 代码如下:
SPAN {
font-family: "Anonymous";
font-size: 10pt;
color: #000000;
background: #FFFFFF;
}
.L1S31 {
font-style: italic;
color: #808080;
}
.L1S32 {
color: #3399FF;
}
.L1S33 {
color: #4DA619;
}
.L1S52 {
color: #0000FF;
}
[/code]
SPAN {
font-family: "Anonymous";
font-size: 10pt;
color: #000000;
background: #FFFFFF;
}
.L1S31 {
font-style: italic;
color: #808080;
}
.L1S32 {
color: #3399FF;
}
.L1S33 {
color: #4DA619;
}
.L1S52 {
color: #0000FF;
}
DATA: v_vbeln LIKE vbap-vbeln, v_posnr LIKE vbap-posnr, v_matnr LIKE vbap-matnr, v_plcst LIKE vbap-netwr, v_plcst2 LIKE vbap-netwr, v_menge LIKE stpo-menge. " 数量初始变量 v_vbeln = '0002000008'. v_posnr = '000010'. v_matnr = 'FT820'. "v_menge = 1. PERFORM calc_plncst_b USING v_vbeln v_posnr v_matnr v_menge CHANGING v_plcst. * 总成本 固定成本 可变成本 * 货物制造成本 133,680.99 32,756.59 100,924.40 CNY WRITE: 'BOM成本:' ,v_plcst. *&---------------------------------------------------------------------* *& Form calc_plncst_b *&---------------------------------------------------------------------* * 遍历BOM计算计划物料成本,因为在生产本报表时基本上已经都存在项目BOM了, * 故此法虽慢,却可满足所有情况. *----------------------------------------------------------------------* FORM calc_plncst_b USING p_vbeln p_posnr p_matnr p_menge CHANGING p_plcst. " 订议BOM展开的结构 DATA: BEGIN OF wa_bom, idnrk LIKE stpo-idnrk, " 物料号 menge LIKE stpo-menge, " 用量 END OF wa_bom. DATA: it_bom_fst LIKE TABLE OF wa_bom, it_bom_temp LIKE TABLE OF wa_bom. DATA: v_stlnr LIKE kdst-stlnr, * v_cst_tmp LIKE vbap-netwr, " 临时成本变量 v_stprs LIKE mbew-stprs. " 物料标准价格 SELECT SINGLE stlnr INTO v_stlnr FROM kdst WHERE vbeln = p_vbeln AND vbpos = p_posnr AND matnr = p_matnr. IF sy-subrc <> 0. "没找到记录,说明是叶子节点 SELECT SINGLE stprs INTO v_stprs FROM mbew WHERE matnr = p_matnr. p_plcst = p_plcst + p_menge * v_stprs. ELSE. "找到了,接着走(递归) SELECT idnrk menge INTO CORRESPONDING FIELDS OF TABLE it_bom_fst FROM stpo WHERE stlnr = v_stlnr. FIELD-SYMBOLS: <wa> LIKE wa_bom. LOOP AT it_bom_fst ASSIGNING <wa>. PERFORM calc_plncst_b USING p_vbeln p_posnr <wa>-idnrk <wa>-menge CHANGING p_plcst. ENDLOOP. ENDIF. ENDFORM. " calc_plncst_b
[/code]
相关文章推荐
- 递归方法计划销售订单的计划物料成本
- 生产订单成本计划成本错误修改方法
- 销售订单计划行物料可用期修改时,提示报错
- Back to back销售订单和drop ship第三方销售订单的销售成本的问题
- SD销售订单输入成本中心
- 销售订单行项的成本估算及其发布
- 用友U8按BOM计算销售订单物料需求SQL代码 第一稿
- 创建销售订单-用外部给号的方法步骤
- ERP中递归获取物料清单(BOM)方法
- 销售订单的计划行类别与状态问题
- BAPI 修改销售订单的方法 ‘BAPI_SALESORDER_CHANGE’
- 将销售订单中docType改成下拉列表的方法
- 利用php-cli和任务计划实现订单同步功能的方法
- SAP-采购订单交货成本抓取方法
- 销售订单过账装箱单方法调用流程[AX2012]
- Oracle EBS 销售时物料保留出错相关症状和处理方法
- 未清销售订单及预测的所有工序物料需求(按BOM展开不考虑已发料)
- 计划策略-30-按销售与库存订单以批量生产
- 未清销售订单及预测的所有工序物料需求(按BOM展开.考虑已发料)
- 生产订单成本的计划、控制和结算