ckm3查看的下一层次的消费层次理论 对应的组件是怎么产生的

sap经验分享之ckm3的价格确定试图与成本组件视图金额不一致
在暴打某人一顿之后心情舒畅,决心好好学习sap,解决了一点小问题与大家分享一下。
背景:某公司co模块使用了物料帐,使用跨成本组件的作业类型处理固定费
使用kp06和kp26作作业类型计划
问题:在某次月结之后,客户发现使用ckm3查看物料实际成本时,价格确定试图的金额
(初级评估+价格差异+汇率差异)与成本组件视图的金额不一致,而且起初、收据、消耗
、期末的几行都不一致。
查找方法:初步判断为标准成本的组件视图问题,以为两个视图间的不同之处是:价格确定
视图使用标准单价+实际差异;组件视图是使用标准成本的组件+组件差异
所以使用ck13n查看标准成本估算,发现在标准成本估算时条目视图与组件视图
就已经不一致了。进一步计算发现差异存在于在使用作业类型的成本组件中
最后发现问题出在其中一个作业类型上,该作业类的计划价格为0(kspi计算时
价格小于0.01*10000),物料的routing中该作业类型的数量不为0,sap在成本
估算时重新进行作业类型的组件计算,导致组件视图与条目视图不一致。
解决方法:由于客户的物料比较少,在kspi后发现作业类型价格为0后,修改routing的作业
类型的数量为0,
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。查看: 5198|回复: 12
#SAP一句话#对于按成本组件结构(要素)还原
认证徽章论坛徽章:93
本帖最后由 whx1977 于
14:32 编辑
#SAP一句话#对于按成本组件结构(要素)还原:
目的:用户需要基于物料进行各组成成本要素(成本组成部分)的分析,给用户最直观的就是在CKM3中基于成本组件进行展示.
1,OKTZ维护结构并分配给公司代码,
2,SM30:V_T001K_CCS激活实际成本组件划分,只有激活这里,才能看到实际的材料、人工、费用。
3,如果已使用物料账,后又想激活实际成本组件划分.则需激活后,运行SE38:MLCCS_STARTUP创建成本组件划分数据.
认证徽章论坛徽章:93
认证徽章论坛徽章:93
认证徽章论坛徽章:74
认证徽章论坛徽章:93
shenzhen_sap 发表于
论坛徽章:140
起码介绍介绍用途和背景吧。。
认证徽章论坛徽章:93
zhao_417 发表于
起码介绍介绍用途和背景吧。。
你补充,&&不是整了个ML的文档嘛
认证徽章论坛徽章:93
zhao_417 发表于
起码介绍介绍用途和背景吧。。
当然是用户需要基于物料进行各组成成本要素(成本组成部分)的分析,给用户最直观的就是在CKM3中基于成本组件进行展示.
求职 : 认证徽章论坛徽章:254
认证徽章论坛徽章:93
houbao408 发表于
itpub.net All Right Reserved. 北京皓辰网域网络信息技术有限公司版权所有    
 北京市公安局海淀分局网监中心备案编号: 广播电视节目制作经营许可证:编号(京)字第1149号物料帐里面提供了一个强大的功能,就是物料价格分析,T-CODE是CKM3,我们可以利用CKM3的功能针对物料的期初库存、期初差异、本期收货、本期消耗、期末库存和期末差异一览无余。
我们先看一个原材料:我们查看的期间是8月份,可以从期间状态查看到该物料已经执行完了物料帐结算,而且是原材料,只需要执行单层价格确定。可以看到在物料帐结账完成之后,该物料的价格控制变成了V(参与物料帐运行的物料,价格控制在物料帐运行完毕之后会变成V,下期的期初自动变成S)。我们可以看到该物料本期的标准价是23273.54/T,PUP是24460.64/T,当前的库存时18.800T,当前的库存金额是PUP*当前的库存=元(是期末存货的实际成本)。
再往下,则可以分析物料的价格变化和库存变化。我们可以看到,物料期初的价格(即7月底的PUP)是24460.64/T,以标准价计价的期初库存时.6
,期初库存的差异是23286.72元(即本期发布了标准单价之后的期初差异)。可以看到,本期没有收货(如果没有收货而有价格差异,那是发票校验造成的),本期的消耗是0.8T,期末库存时18.8T,按照差异在消耗和期末库存之间以数量比例进行分摊,总差异=期初差异+本期收货差异,所以,消耗承担的差异是.800+18.800)*0.800
950.48,期末库存承担的差异是.800+18.800)*18.800=22336.24。而这个期末差异,将在下个期初作为期初差异,直到发布新的标准价形成新的差异。而在期末运行完物料帐之后,也得到了PUP24460.64。
以上是原材料,下面,我们举一个更复杂的产成品为例来讲解。
我们可以看到,该产成品在8月份的物料帐结算已经完成,可以看到其在8月份的标准价及8月份的实际单价(即期末的PUP),8月份期末的库存及实际库存金额。我们可以先通过查看价格变化的历史记录,来了解该物料价格的变化过程:
我们可以看到,该物料在7月份物料帐运行完毕之后的PUP是13712.86,在发布标准单价之后标准价变更为月份物料帐运行完毕之后,该物料的实际成本(即月末加权平均单价是13370.80)。接下来,我们回到价格确定结构,对初始库存、本期收货、本期消耗、期末库存进行逐一分析。
我们先来看初始库存:
我们看到,物料以标准价计价的期初库存是.125=,而当时的实际单价评估的库存金额的差异是(12.86)*57.125=19889.64,那么我们换个思路思考一下,这个差异其实就是本期发布新的标准价之后评估的库存与上一期期末的实际库存之间的差异。从下面的明细项目我们也可以看到:1期间未清表示上一期期末的标准价计价评估的库存,而3物料价格修改则是本期发布标准价之后,使得物料的标准成本发生了变化,从而对标准成本估价库存发生影响,这里表示的是库存价值变化的金额。而2物料帐过账结算则代表着期初过账到物料帐上的差异。在期末物料帐结算时,会在本期期末和下期期初生成一正一反的凭证:
重估物料,将标准价格控制S改成V,结算凭证如下:
原材料&&&&&&
(存货数量承担的差异,将差异调整到库存,从而得出库存实际成本)
Cr: 材料采购差异& (存货数量承担的差异)
Dr:物料消耗&&&
(消耗数量承担的差异)
Cr:材料采购差异&& (消耗数量承担的差异)
从而将本期的差异在消耗和期末库存间分完, 如果是生产性的物料消耗层层上卷后反应到产成品的销售成本和期末库存上去,不需要再冲回。
而第下一期期初将冲回期末存货差异部分,在物料分类帐结算时和第8期的结算凭证同时产生,如果第9期依旧使用以前的标准价格,则冲回的会计分录如下:
Dr: 材料采购差异&& (存货数量承担的差异)
Cr:原材料&&&&&
(存货数量承担的差异)
我们再来看收货:
本期收货了45.625T,收进来的差异是51032.22,收货主要来自于生产订单的收货和采购收货,而差异来自于底层生产物料的价格差异和订单结算的生产成本差异(为何会有生产成本差异,大家想一下,订单收货时会以标准价来收货入库,而订单的投入和产出的差异进行结算时,并不会直接去更新库存的价值,而是结算到生产的差异科目去。因此,每一笔订单的差异结算,都会形成这里的一笔差异)。那么,总差异=期初差异+本期收集的差异=70921.86。
消耗和期末库存将会按照数量的比例57.5:45.25,来分摊差异。
我们可以看到,消耗承担的差异是.5+45.25)*57.5 = 39688.63。
最后,我们来看一下期末库存:
在期末库存中,我们能够很清晰的看到物料的单多级差异。单级价格确定表示该物料的直接价格变化所形成的差异,而多级价格确定则表示生产该物料的其他原材料和半成品的价格变化所上卷上来的差异。
此外,我们还可以通过勾选“成本组件”,来查看差异是在哪个环节形成的,从而有利于企业找到原因,改进生产效率:
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。3830人阅读
02 SAP MM(37)
************************************************************************* Program Title: 产成实际成本组件明细表&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& ** 对本期与基期的产品单位成本按成本组件原材料、包装物、半成品、直接人工、*制造费用及制造费用-闲置设备分解到下一阶*----------------------------------------------------------------------**----------------------------------------------------------------------** Data Table List:&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& **&&& mlit:物料分类帐凭证: 项目&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& **&&& mlhd:物料总帐凭证:标题&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& **&&& mlpp:物料分类帐凭证:记帐期间和数量&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& **&&& mlcr:物料分类帐凭证:货币和值&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& **&&& mlcrf:物料分类帐文件:字段组(货币)&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& **&&& s026:* Refrence Table List:&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& **----------------------------------------------------------------------** Modification Log:&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& ************************************************************************** Date&&&&&&& Programmer&&&& Correction Number&&&&& DesingDoc Number&& *************************************************************************REPORT& zcor0009& LINE-SIZE 100& MESSAGE-ID zdev.*----------------------------------------------------------------------** TYPES OR TYPE-POOLS&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& **----------------------------------------------------------------------*TYPE-POOLS: slis.*----------------------------------------------------------------------**TABLES&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& **----------------------------------------------------------------------*TABLES:s026,coss,mara.
*----------------------------------------------------------------------** GLOBAL VARIABLES&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& **----------------------------------------------------------------------**系统公用变量,调用程序名及屏幕编号DATA:&&& g_repid&&&& LIKE sy-repid,&&&&&&&& g_dynnum&&& LIKE sy-dynnr.DATA:&&& g_return_rc LIKE sy-subrc,&&&&&&&& g_dates&&&& LIKE sy-datum,&&&&&&&& g_datee&&&& LIKE sy-datum.*用于提高查询速度见的空查询条件RANGES:& r_werks FOR ekpo-werks,&&&&&&&& r_vrsio&& FOR mcs0-vrsio,&&&&&&&& r_spmon&& FOR mcs0-spmon,&&&&&&&& r_sptag&& FOR s026-sptag,&&&&&&&& r_spwoc&& FOR mcs0-spwoc,&&&&&&&& r_mcomp&& FOR s026-mcomp,&&&&&&&& r_aufnr&& FOR s026-aufnr,&&&&&&&& r_spbup&& FOR mcs0-spbup.*返回期间单据DATA: BEGIN OF gt_s000 OCCURS 100.&&&&&&& INCLUDE STRUCTURE s026.DATA:&& farbe.DATA: END OF gt_s000.*可用物料(用于计算差异)DATA: BEGIN OF gt_matnr OCCURS 100,&& werks LIKE s026-werks,&& matnr LIKE s026-matnr,END OF gt_matnr.*物料制造数量(用于计算差异)DATA: BEGIN OF gt_matnr_q OCCURS 100,&& matnr LIKE s026-matnr,&& menge LIKE mlppf-menge,END OF gt_matnr_q.*生产订单-&对象 (用于计算非材料消耗)DATA: BEGIN OF gt_objnr OCCURS 100,&& objnr LIKE coep-objnr,END OF gt_objnr.*结果内表DATA: BEGIN OF gt_result OCCURS 0 ,&&& type(2),&&&&&&&&&&&&&&&&&&&&& &成本类型&&& desc(8),&&&&&&&&&&&&&&&&&&&&& &成本类型描述&&& mcomp&&&&&&& LIKE s026-mcomp, &组件&&& mcompdesc&&& LIKE makt-maktx, &物料描叙&&& basme&&&&&&& LIKE s026-basme, &单位&&& req_q&&&&&&& LIKE s026-bdmng, &需求数量&&& withdrawn_q& LIKE s026-bdmng, &领料数量&&& withdrawn_m& LIKE s026-enwrt, &标准值&&& differ_m&&&& LIKE s026-enwrt, &差异值&&& fact_m&&&&&& LIKE s026-enwrt, &实际值END OF gt_result.*global value of alv displayDATA:&&&&& gt_sort& TYPE slis_t_sortinfo_alv,&&&&& gt_fieldcat TYPE slis_t_fieldcat_alv,&&&&& gt_event TYPE slis_alv_event OCCURS 0 WITH HEADER LINE, &Grid输出表头事件内表&&&&& gt_head TYPE slis_t_listheader.&&&& &Grid输出表头DATA: BEGIN OF bdcdata OCCURS 10.&&&&&&& INCLUDE STRUCTURE bdcdata.DATA: END OF bdcdata.*----------------------------------------------------------------------** PARAMETERS AND SELECT-OPTIONS&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& **----------------------------------------------------------------------**选择条件:工厂/物料/生产订单号/期间PARAMETERS: p_werks LIKE s026-werks OBLIGATORY&&&&&&&&&&&&&&&&& MEMORY ID wrk&&&&&&& MODIF ID sc.SELECT-OPTIONS: s_matnr FOR s026-matnr MEMORY ID mat&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& MATCHCODE OBJECT mat1&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& MODIF ID sc.*SELECT-OPTIONS: s_aufnr FOR s026-aufnr MEMORY ID auf MODIF ID auf*&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& MATCHCODE OBJECT orde.*本期起始/截止期间,基期起始SELECTION-SCREEN BEGIN OF BLOCK sc_1 WITH FRAME TITLE text-001.PARAMETERS: p_mons& TYPE spmon OBLIGATORY MEMORY ID pos&&&&&&&&&&& MODIF ID sc.PARAMETERS: p_mone& TYPE spmon OBLIGATORY MEMORY ID poe MODIF ID sc.SELECTION-SCREEN END OF BLOCK sc_1.
************************************************************************INITIALIZATION.***********************************************************************INITIALIZATION.& g_repid = sy-repid.& g_dynnum = sy-dynnr.& GET PARAMETER ID 'POS' FIELD p_mons.& IF p_mons IS INITIAL.&&& SET PARAMETER ID 'POS' FIELD sy-datum+0(6).& ENDIF.& GET PARAMETER ID 'POE' FIELD p_mone.& IF p_mone IS INITIAL.&&& SET PARAMETER ID 'POE' FIELD sy-datum+0(6).& ENDIF.************************************************************************AT SELECTION-SCREEN OUTPUT***********************************************************************AT SELECTION-SCREEN OUTPUT.
************************************************************************ START-OF-SELECTION***********************************************************************START-OF-SELECTION.**计算报表日期本期相关变量& IF p_mons NE space AND p_mone NE space.&&& CONCATENATE p_mons '01' INTO r_sptag-low.&&& CONCATENATE p_mone '01' INTO g_dates.&&& CALL FUNCTION 'LAST_DAY_OF_MONTHS'&&&&& EXPORTING&&&&&&& day_in&&&&&&&&&&& = g_dates&&&&& IMPORTING&&&&&&& last_day_of_month = g_datee.&&& MOVE g_datee+0(8) TO r_sptag-high.&&& r_sptag-option = 'BT'.&&& r_sptag-sign = 'I'.&&& APPEND r_sptag.& ENDIF.*判断用否可以运算& CALL FUNCTION 'Z_AUTH_CPU'&&& IMPORTING&&&&& z_return_error = g_return_rc.& IF g_return_rc & 0.&&& MESSAGE e100 WITH '服务器达到最大会话数,请稍后再试'.&&& EXIT.& ENDIF.**权限控制& r_werks-sign = 'I'.& r_werks-option = 'EQ'.& r_werks-low = p_werks.& APPEND r_werks.& CALL FUNCTION 'Z_AUTH_WERKS'&&& IMPORTING&&&&& z_return_code = g_return_rc&&& TABLES&&&&& z_ittab&&&&&& = r_werks&&&&& z_outtab&&&&& = r_werks.& IF g_return_rc NE 0.&&& EXIT.& ENDIF.
*计算数据& PERFORM select_data.************************************************************************ END-OF-SELECTION***********************************************************************END-OF-SELECTION.*设置显示格式& PERFORM f_fieldcat_init.*& PERFORM event_top_of_page TABLES gt_event.*ALV显示报表& CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'&&& EXPORTING&&&&& i_callback_program&&&&& = g_repid&&&&& i_callback_user_command = 'USER_COMMAND'&&&&& it_fieldcat&&&&&&&&&&&& = gt_fieldcat[]&&&&& it_sort&&&&&&&&&&&&&&&& = gt_sort[]&&&&& it_events&&&&&&&&&&&&&& = gt_event[]&&& TABLES&&&&& t_outtab&&&&&&&&&&&&&&& = gt_result.
************************************************************************ Form Name :& select_data* Form Description:*提取数据*----------------------------------------------------------------------*参数说明&&&&&&&&&&&*----------------------------------------------------------------------*修改说明*----------------------------------------------------------------------FORM select_data .& RANGES: lr_kstar FOR coep-kstar,&&&&&&&&& lr_gjahr& FOR coep-gjahr,&&&&&&&&& lr_perio& FOR coep-perio,&&&&&&&&& lr_parob1& FOR coep-parob1,&&&&&&&&& lr_objnr FOR coep-objnr.& data:&& l_oldmatnr like mara-matnr.& DATA: BEGIN OF lt_mlit OCCURS 100,&&& belnr LIKE mlit-belnr,&&& kjahr LIKE mlit-kjahr,&&& matnr LIKE mlit-matnr,*&&& posnr LIKE mlit-posnr,& END OF lt_mlit.
& DATA: BEGIN OF lt_mlit2 OCCURS 100,&&& belnr LIKE mlit-belnr,&&& kjahr LIKE mlit-kjahr,& END OF lt_mlit2.
& DATA: BEGIN OF lt_mlit3 OCCURS 100,&&& belnr LIKE mlit-belnr,&&& kjahr LIKE mlit-kjahr,& END OF lt_mlit3.
& DATA: BEGIN OF lt_mlhd OCCURS 100,&&& belnr LIKE mlit-belnr,&&& kjahr LIKE mlit-kjahr,& END OF lt_mlhd.
& DATA: it_mlhd LIKE mlhd OCCURS&& 0 WITH HEADER LINE.
& DATA:l_kstar LIKE coep-kstar,l_money LIKE coep-wogbtr.& SELECT * FROM s026 INTO TABLE gt_s000&&&&& WHERE ssour =& space&&&&&&& AND vrsio IN r_vrsio&&&&&&& AND spmon IN r_spmon&&&&&&& AND sptag IN r_sptag&&&&&&& AND spwoc IN r_spwoc&&&&&&& AND spbup IN r_spbup&&&&&&& AND werks = p_werks&&&&&&& AND matnr IN s_matnr&&&&&&& AND mcomp IN r_mcomp&&&&&&& AND aufnr IN r_aufnr.
& LOOP AT gt_s000.&&& gt_result-type = '02'.&&&&&&&&&&&&& &直接材料&&& gt_result-mcomp = gt_s000-mcomp.*&&& gt_result-basme = gt_s000-basme.&&& gt_result-req_q = gt_s000-bdmng.&&& gt_result-withdrawn_q = gt_s000-enmng.&&& gt_result-withdrawn_m = gt_s000-enwrt.&&& COLLECT gt_result.&&& MOVE gt_s000-matnr TO gt_matnr-matnr .&&& MOVE gt_s000-werks TO gt_matnr-werks .&&& APPEND gt_matnr.&&& CONCATENATE 'OR' gt_s000-aufnr INTO gt_objnr-objnr .&&& APPEND gt_objnr.&&& CLEAR gt_result.&&& CLEAR gt_matnr.&&& CLEAR gt_objnr.& ENDLOOP.*计算差异& SORT gt_matnr BY werks matnr.& DELETE ADJACENT DUPLICATES FROM gt_matnr.& IF NOT gt_matnr[] IS INITIAL.&&& SELECT mlit~belnr mlit~kjahr mlit~matnr mlppf~menge
&&&&& INTO (lt_mlit-belnr,lt_mlit-kjahr,gt_matnr_q-matnr,gt_matnr_q-menge)&&& FROM mlit&&& INNER JOIN mlpp&&&&& ON mlit~mandt = mlpp~mandt AND mlit~belnr = mlpp~belnr&&&&&&& AND mlit~kjahr = mlpp~kjahr AND mlit~posnr = mlpp~posnr&&& INNER JOIN mlppf&&&&& ON mlit~mandt = mlppf~mandt AND mlit~belnr = mlppf~belnr&&&&&&& AND mlit~kjahr = mlppf~kjahr AND mlit~posnr = mlppf~posnr*&&& INNER JOIN mlcrf*&&&&& ON mlit~mandt = mlcrf~mandt AND mlit~belnr = mlcrf~belnr*&&&&&&& AND mlit~kjahr = mlcrf~kjahr AND mlit~posnr = mlcrf~posnr&&& FOR ALL entries IN gt_matnr&&& WHERE mlit~bwkey = gt_matnr-werks& AND mlit~matnr = gt_matnr-matnr&&&&&& AND& mlit~psart = 'MO'&&&&&& AND mlpp~budat IN r_sptag&&&&&& AND ( mlit~xabrerr = space OR mlit~xabrerr IS NULL )*&&&&&& and mlcrf~FELDG = 'ZUMO'&&&&&& .&&&&& lt_mlit-matnr = gt_matnr_q-matnr.&&&&& APPEND lt_mlit.&&&&& APPEND gt_matnr_q.&&&&& CLEAR gt_matnr_q.&&&&& CLEAR lt_mlit.&&& ENDSELECT.&&& SORT lt_mlit BY matnr belnr kjahr .&&& DELETE ADJACENT DUPLICATES FROM lt_mlit.
&&& IF NOT lt_mlit[] IS INITIAL.&&&&& l_oldmatnr = space.&&&&& LOOP AT lt_mlit.&&&&&&& if l_oldmatnr = space.&&&&&&&&& l_oldmatnr = lt_mlit-matnr.&&&&&&& endif.&&&&&&& IF lt_mlit-matnr NE l_oldmatnr.&&&&&&&&& SELECT *&&&&&&&&&&& INTO TABLE it_mlhd&&&&&&&&&&& FROM mlhd&&&&&&&&&&&&& FOR ALL ENTRIES IN lt_mlit2&&&&&&&&&&& WHERE mlhd~belnr = lt_mlit2-belnr& AND mlhd~kjahr = lt_mlit2-kjahr&&&&&&&&&&&&&& AND& mlhd~vgart = 'MS'.&&&&&&&&& SORT it_mlhd DESCENDING BY cpudt cputm.&&&&&&&&& READ TABLE it_mlhd INDEX 1.&&&&&&&&& IF sy-subrc = 0.&取最后一次的差异调整&&&&&&&&&&& lt_mlit3-belnr = it_mlhd-belnr.&&&&&&&&&&& lt_mlit3-kjahr = it_mlhd-kjahr.&&&&&&&&&&& append lt_mlit3.&&&&&&&&& ENDIF.&&&&&&&&& refresh lt_mlit2.&&&&&&&&& l_oldmatnr = lt_mlit-matnr.&&&&&&& ENDIF.&&&&&&& lt_mlit2-belnr = lt_mlit-belnr.&&&&&&& lt_mlit2-kjahr = lt_mlit-kjahr.&&&&&&& append lt_mlit2.&&&&& ENDLOOP.&&&&& if l_oldmatnr ne space.&&&&&&&&& SELECT *&&&&&&&&&&& INTO TABLE it_mlhd&&&&&&&&&&& FROM mlhd&&&&&&&&&&&&& FOR ALL ENTRIES IN lt_mlit2&&&&&&&&&&& WHERE mlhd~belnr = lt_mlit2-belnr& AND mlhd~kjahr = lt_mlit2-kjahr&&&&&&&&&&&&&& AND& mlhd~vgart = 'MS'.&&&&&&&&& SORT it_mlhd DESCENDING BY cpudt cputm.&&&&&&&&& READ TABLE it_mlhd INDEX 1.&&&&&&&&& IF sy-subrc = 0.&取最后一次的差异调整&&&&&&&&&&& lt_mlit3-belnr = it_mlhd-belnr.&&&&&&&&&&& lt_mlit3-kjahr = it_mlhd-kjahr.&&&&&&&&&&& append lt_mlit3.&&&&&&&&& ENDIF.&&&&& endif.&&&&& SORT lt_mlit3 BY belnr kjahr .&&&&& SELECT mlit~matnr mlcrf~prdif&&&&&&& INTO (gt_result-mcomp,gt_result-differ_m)&&&&&&& FROM mlit&&&&&&&&& INNER JOIN mlcrf&&&&&&&&&&& ON mlit~mandt = mlcrf~mandt AND mlit~belnr = mlcrf~belnr&&&&&&&&&&& AND mlit~kjahr = mlcrf~kjahr AND mlit~posnr = mlcrf~posnr&&&&&&&&& FOR ALL entries IN lt_mlit3&&&&&&& WHERE mlit~belnr = lt_mlit3-belnr& AND mlit~kjahr = lt_mlit3-kjahr&&&&&&&&&& AND& mlit~psart = 'MI'.&&&&&&& gt_result-type = '02'.&& &直接材料差异&&&&&&& COLLECT gt_result.&&&&&&& CLEAR gt_result.&&&&& ENDSELECT.&&& ENDIF.& ENDIF.& SORT gt_objnr BY objnr.& DELETE ADJACENT DUPLICATES FROM gt_objnr.*取制造成本& IF NOT gt_objnr[] IS INITIAL.&&& lr_kstar-option = 'EQ'.&&& lr_kstar-sign = 'I'.&&& lr_kstar-low = 'DEP-ACT'.&&& APPEND lr_kstar.&&& lr_kstar-low = 'OVH-ACT'.&&& APPEND lr_kstar.&&& lr_kstar-low = 'LAB-ACT'.&&& APPEND lr_kstar.&&& lr_objnr-option = 'EQ'.&&& lr_objnr-sign = 'I'.&&& LOOP AT gt_objnr.&&&&& lr_objnr-low = gt_objnr-objnr.&&&&& APPEND lr_objnr.&&& ENDLOOP.&&& SELECT * INTO coss&&&&& FROM coss&&&&& WHERE objnr IN lr_objnr&&&&&&& AND coss~kstar& IN lr_kstar&&&&&&& AND wrttp = '04'.&&&&& CASE coss-kstar.&&&&&&& WHEN& 'LAB-ACT'.&&&&&&&&& gt_result-mcomp = '直接人工'.&&&&&&&&& gt_result-type = '03'.&&&&&&& WHEN 'OVH-ACT'.&&&&&&&&& gt_result-mcomp = '制造费用'.&&&&&&&&& gt_result-type = '03'.&&&&&&& WHEN 'DEP-ACT'.&&&&&&&&& gt_result-mcomp = '其他设备折旧'.&&&&&&&&& gt_result-type = '03'.&&&&& ENDCASE.&&&&& gt_result-withdrawn_m = coss-wkg001 + coss-wkg002 + coss-wkg003 +&&&&&&&&&&&&&&&&& coss-wkg004 + coss-wkg005 + coss-wkg006 +&&&&&&&&&&&&&&&&& coss-wkg007 + coss-wkg008 + coss-wkg009 +&&&&&&&&&&&&&&&&& coss-wkg010 + coss-wkg011 + coss-wkg012 +&&&&&&&&&&&&&&&&& coss-wkg013 + coss-wkg014 + coss-wkg015 +&&&&&&&&&&&&&&&&& coss-wkg016 .&&&&& COLLECT gt_result.&&&&& CLEAR gt_result.&&& ENDSELECT.& ENDIF.& LOOP AT gt_result.&&& CASE gt_result-type.&&&&& WHEN& '02'.&&&&&&& SELECT SINGLE maktx INTO (gt_result-mcompdesc) FROM makt&&&&&&&&& WHERE matnr = gt_result-mcomp AND spras = 1.&&&&&&& SELECT SINGLE meins INTO (gt_result-basme) FROM mara&&&&&&&&& WHERE matnr = gt_result-mcomp.&&&&&&& gt_result-desc =& '直接材料'.&&&&&&& gt_result-desc =& '直接材料'.&&&&& WHEN& '03'.&&&&&&& gt_result-desc =& '制造费用'.&&& ENDCASE.
&&& gt_result-fact_m = gt_result-withdrawn_m + gt_result-differ_m.&&& MODIFY gt_result.& ENDLOOP.ENDFORM.&&&&&&&&&&&&&&&&&&& & select_data*************************************************************************&Form Name&&& : event_top_of_page*----------------------------------------------------------------------** Function Description:&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& **& 设置表输出表头事件*----------------------------------------------------------------------**参数说明&&&&&&&&&&&&&& **----------------------------------------------------------------------**--&ex_gt_eventb& 事件内表*----------------------------------------------------------------------** Date&&&&&&& Programmer&& Description&&&&&&&&& ** YYYY/MM/DD& XXXXXXXX&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& *************************************************************************FORM event_top_of_page& TABLES&& ex_gt_event TYPE slis_t_event.& REFRESH ex_gt_event.& CLEAR ex_gt_event.& ex_gt_event-name = slis_ev_top_of_page.& ex_gt_event-form = 'WRITE_TOP_OF_PAGE'.& APPEND ex_gt_event.ENDFORM.&&&&&&&&&&&&&&&&&&& &event_top_of_page*************************************************************************&Form Name&&& : write_top_of_page*----------------------------------------------------------------------** Function Description:&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& **& 设置明细表表头*----------------------------------------------------------------------**参数说明&&&&&&&&&&&&&& **----------------------------------------------------------------------**----------------------------------------------------------------------** Date&&&&&&& Programmer&& Description&&&&&&&&& ** YYYY/MM/DD& XXXXXXXX&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& *************************************************************************FORM write_top_of_page.& DATA: wa_hline TYPE slis_listheader,&&&&&&& l_menge(15) TYPE c,&&&&&&& l_maktx LIKE makt-maktx,&&&&&&& l_matnr LIKE makt-matnr.& REFRESH gt_head.& CLEAR: wa_hline.& DATA:& l_count TYPE i.
& wa_hline-typ = 'H'.& wa_hline-info = '成品实际成本组件明细分析'.& APPEND wa_hline TO gt_head.
& wa_hline-typ = 'S'.& wa_hline-key = '统计时间'.& CONCATENATE g_dates+0(8) '-' g_datee+0(8) INTO wa_hline-info.& APPEND wa_hline TO gt_head.
& wa_hline-typ = 'S'.& wa_hline-key = '工&&& 厂'.& wa_hline-info = p_werks.& APPEND wa_hline TO gt_head.*& SELECT COUNT( * ) INTO (l_count) FROM mara WHERE matnr IN s_matnr.& IF l_count = 1.&&& wa_hline-typ = 'S'.&&& wa_hline-key = '物&&& 料'.&&& SELECT SINGLE matnr maktx INTO (l_matnr,l_maktx) FROM makt&&&&&&&&& WHERE matnr& IN s_matnr AND spras = 1.&&& READ TABLE gt_matnr_q.&&& l_menge = gt_matnr_q-menge.&&& CONCATENATE l_matnr ':' l_maktx '-数量:' l_menge INTO wa_hline-info.&&& APPEND wa_hline TO gt_head.& ENDIF.
& CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'&&& EXPORTING&&&&& it_list_commentary = gt_head.ENDFORM.&&&&&&&&&&&&&&&&&&& &write_top_of_page*************************************************************************&Form Name&&& : user_command*----------------------------------------------------------------------** Function Description:&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& **& 对汇总表双击显示收货明细*----------------------------------------------------------------------**参数说明*--&r_ucomm:&&&&& PAI触发的功能代码& &*--&rs_selfield:& 同Grid相关联性质结构*----------------------------------------------------------------------**----------------------------------------------------------------------** Date&&&&&&& Programmer&& Description&&&&&&&&& ** YYYY/MM/DD& XXXXXXXX&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& *************************************************************************FORM user_command USING r_ucomm LIKE sy-ucomm&&&&&&&&&&&&&&&&& rs_selfield TYPE slis_selfield.& DATA l_matnr LIKE mara-matnr.& CASE r_ucomm.&&& WHEN '&IC1'.&&&&&&&&&&&&&&&&&&&&&& &doubleclick&&&&& READ TABLE gt_result INDEX rs_selfield-tabindex.&&&&& IF sy-subrc = 0.&&&&&&& SELECT SINGLE * FROM mara WHERE matnr = gt_result-mcomp.&&&&&&& IF sy-subrc = 0.&&&&&&&&& SET PARAMETER ID 'WRK' FIELD p_werks.&&&&&&&&& SET PARAMETER ID 'MAT' FIELD gt_result-mcomp.&&&&&&&&& SET PARAMETER ID 'POS' FIELD p_mons.&&&&&&&&& SET PARAMETER ID 'POE' FIELD p_mone.&&&&&&&&& CALL TRANSACTION 'ZCOR0009' AND SKIP FIRST SCREEN.&&&&&&& ENDIF.&&&&& ENDIF.&&&&& CLEAR r_ucomm.& ENDCASE.ENDFORM.&&&&&&&&&&&&&&&&&&& &USER_COMMAND_SUM************************************************************************ Form Name : f_fieldcat_init* Form Description:*设置ALV输出报表的显示字段、排序字段及其相关属性&&&&&&&&&&&&&&&&&&&&& **----------------------------------------------------------------------*参数说明&&&&&&&&&&&*----------------------------------------------------------------------*修改说明*----------------------------------------------------------------------FORM f_fieldcat_init .& DATA: wa_fieldcat TYPE slis_fieldcat_alv,&&&&&&& wa_sort TYPE slis_sortinfo_alv.
*显示字段& CLEAR wa_fieldcat.& wa_fieldcat-fieldname =& 'TYPE'.& wa_fieldcat-seltext_s =& '序号'.& wa_fieldcat-key&&&&&& =& 'X'.& wa_fieldcat-no_out&&& = 'X'.& wa_fieldcat-fix_column = 'X'.& APPEND wa_fieldcat TO gt_fieldcat.
& CLEAR wa_fieldcat.& wa_fieldcat-fieldname =& 'DESC'.& wa_fieldcat-seltext_s =& '费用类型'.& wa_fieldcat-key&&&&&& =& 'X'.& wa_fieldcat-fix_column = 'X'.& APPEND wa_fieldcat TO gt_fieldcat.
& CLEAR wa_fieldcat.& wa_fieldcat-fieldname =& 'MCOMP'.& wa_fieldcat-seltext_l =& '组件'.& wa_fieldcat-key&&&&&& =& 'X'.& wa_fieldcat-outputlen = '20'.& wa_fieldcat-fix_column = 'X'.& APPEND wa_fieldcat TO gt_fieldcat.
& CLEAR wa_fieldcat.& wa_fieldcat-fieldname =& 'MCOMPDESC'.& wa_fieldcat-seltext_l =& '组件描叙'.& wa_fieldcat-outputlen = '30'.& APPEND wa_fieldcat TO gt_fieldcat.
& CLEAR wa_fieldcat.& wa_fieldcat-fieldname =& 'BASME'.& wa_fieldcat-seltext_l =& '单位'.& wa_fieldcat-outputlen = '3'.& APPEND wa_fieldcat TO gt_fieldcat.
& CLEAR wa_fieldcat.& wa_fieldcat-fieldname =& 'REQ_Q'.& wa_fieldcat-seltext_l =& '需求数量'.& wa_fieldcat-no_zero = 'X'.& wa_fieldcat-do_sum&&& = 'X'.& wa_fieldcat-outputlen = '15'.& APPEND wa_fieldcat TO gt_fieldcat.
& CLEAR wa_fieldcat.& wa_fieldcat-fieldname =& 'WITHDRAWN_Q'.& wa_fieldcat-seltext_l =& '领料数量'.& wa_fieldcat-no_zero = 'X'.& wa_fieldcat-do_sum&&& = 'X'.& wa_fieldcat-outputlen = '15'.& APPEND wa_fieldcat TO gt_fieldcat.
& CLEAR wa_fieldcat.& wa_fieldcat-fieldname =& 'WITHDRAWN_M'.& wa_fieldcat-seltext_l =& '标准值'.& wa_fieldcat-do_sum&&& = 'X'.& wa_fieldcat-no_zero = 'X'.& wa_fieldcat-outputlen = '18'.& APPEND wa_fieldcat TO gt_fieldcat.
& CLEAR wa_fieldcat.& wa_fieldcat-fieldname =& 'DIFFER_M'.& wa_fieldcat-seltext_l =& '下层差异'.& wa_fieldcat-do_sum&&& = 'X'.& wa_fieldcat-no_zero = 'X'.& wa_fieldcat-outputlen = '18'.& APPEND wa_fieldcat TO gt_fieldcat.
& CLEAR wa_fieldcat.& wa_fieldcat-fieldname =& 'FACT_M'.& wa_fieldcat-seltext_l =& '实际值'.& wa_fieldcat-no_zero = 'X'.& wa_fieldcat-do_sum&&& = 'X'.& wa_fieldcat-outputlen = '18'.& APPEND wa_fieldcat TO gt_fieldcat.
*排序字段(品牌/可比性/分类)& CLEAR wa_sort.& wa_sort-fieldname = 'DESC'.& wa_sort-spos&&&&& = 1.& wa_sort-up&&&&&&& = 'X'.& wa_sort-subtot&&& = 'X'.& APPEND wa_sort TO gt_sort.ENDFORM.&&&&&&&&&&&&&&&&&&& &f_fieldcat_init
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:3024486次
积分:32185
积分:32185
排名:第131名
原创:361篇
转载:222篇
译文:21篇
评论:450条
阅读:70201
(1)(1)(1)(1)(1)(1)(5)(9)(3)(1)(1)(1)(1)(2)(1)(3)(2)(1)(1)(1)(1)(2)(4)(1)(1)(2)(1)(1)(1)(1)(1)(1)(1)(3)(2)(6)(7)(4)(2)(1)(1)(6)(1)(1)(3)(1)(4)(3)(5)(5)(4)(4)(8)(2)(7)(12)(5)(11)(4)(6)(4)(8)(7)(3)(4)(7)(13)(19)(11)(23)(16)(30)(11)(26)(27)(20)(17)(17)(21)(17)(34)(14)(29)(42)(7)(4)}

我要回帖

更多关于 消费需求层次 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信