日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

成本分析报表

發布時間:2025/3/20 编程问答 14 豆豆
生活随笔 收集整理的這篇文章主要介紹了 成本分析报表 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
最近做的一個成本分析的報表。

*&---------------------------------------------------------------------*
*& Report? ZCOXY006
*&
*&---------------------------------------------------------------------*
*&Author:? xieyao 2009.08.21
*&Funtion: 成本分析-制造費用、人工成本、材料費用分析
*&注意:定義的表結構順序請不要更改
*&
*&Modify: xieyao 2009.08.31
*&??????? xieyao 2009.09.03 標準價格取MBEW 實際采購價格取KONP
*&
*&---------------------------------------------------------------------*

REPORT? zcoxy006 NO STANDARD PAGE HEADING LINE-SIZE 255..

TYPE-POOLS: slis.
INCLUDE zsy_xy_tcus.
TABLES: coss,cost, afru,mcafpov,cobk,afko,afpo,
??????? s026, aufk,mapl,ckmlhd,ckmlcr,mbew.

DATA:??? g_repid???? LIKE sy-repid.
g_repid = sy-repid.
*
DATA: BEGIN OF gt_objnr OCCURS 100,
????? objnr LIKE coep-objnr,
????? END OF gt_objnr.

DATA: BEGIN OF i_list OCCURS 0,
????? rueck LIKE afru-rueck,????????????? "操作完成的確認編號
????? ersda LIKE afru-ersda,????????????? "確認輸入日期
????? budat LIKE afru-budat,????????????? "記帳日期
????? werks LIKE afru-werks,
????? ile01 LIKE afru-ile01,????????????? "要確認作業的計量單位
????? ism01 LIKE afru-ism01,????????????? "當前需確認作業
????? ile02 LIKE afru-ile02,"
????? ism02 LIKE afru-ism02,"
????? ile03 LIKE afru-ile03,"
????? ism03 LIKE afru-ism03,"
????? ile04 LIKE afru-ile04,"
????? ism04 LIKE afru-ism04,"
????? ile05 LIKE afru-ile05,"
????? ism05 LIKE afru-ism05,"
????? ile06 LIKE afru-ile06,"
????? ism06 LIKE afru-ism06,"
????? wablnr LIKE afru-wablnr,??????????? "物料憑證編號
????? aufnr LIKE afru-aufnr,????????????? "訂單號
????? vornr LIKE afru-vornr,????????????? "工序
????? arbid LIKE afru-arbid,????????????? "對象ID
????? matnr LIKE afko-plnbez,
????? plnnr LIKE afko-plnnr,
????? objnr LIKE aufk-objnr,????????????? "對象號
????? auart LIKE aufk-auart,????????????? "PO type
????? month TYPE char_02,???????????????? "期間
????? END OF i_list.

DATA: BEGIN OF gt_list OCCURS 0,
????? aufnr LIKE afru-aufnr,????????????? "訂單號
????? vornr LIKE afru-vornr,????????????? "工序
????? arbid LIKE afru-arbid,????????????? "對象ID
????? auart LIKE aufk-auart,????????????? "PO type
????? werks LIKE afru-werks,
????? matnr LIKE afko-plnbez,
????? objnr LIKE aufk-objnr,
????? plnnr LIKE afko-plnnr,
????? year(4)? TYPE c,
????? month TYPE char_02,
????? gmnga(13) TYPE c,
????? gmein LIKE afru-gmein,
????? ile01 LIKE afru-ile01,
????? ism01 LIKE afru-ism01,
????? ile02 LIKE afru-ile02,"
????? ism02 LIKE afru-ism02,"
????? ile03 LIKE afru-ile03,"
????? ism03 LIKE afru-ism03,"
????? ile04 LIKE afru-ile04,"
????? ism04 LIKE afru-ism04,"
????? ile05 LIKE afru-ile05,"
????? ism05 LIKE afru-ism05,"
????? ile06 LIKE afru-ile06,"
????? ism06 LIKE afru-ism06,"
????? withcost_s_03 LIKE s026-enwrt,???? "實際材料成本
????? withcost_q_03 LIKE s026-enwrt,???? "標準材料成本
????? END OF gt_list.
DATA: lwa_list LIKE LINE OF gt_list,
????? wa_list LIKE LINE OF gt_list.

DATA: BEGIN OF i_coss OCCURS 0,
????? objnr LIKE coss-objnr,
????? gjahr LIKE coss-gjahr,
????? kstar LIKE coss-kstar,?????????????? "成本要素
????? uspob(22) TYPE c,??????????????????? "初始對象
????? meinh LIKE coss-meinh,?????????????? "計量單位
????? wkg001 type p decimals 4,
????? wkg002 type p decimals 4,
????? wkg003 type p decimals 4,
????? wkg004 type p decimals 4,
????? wkg005 type p decimals 4,
????? wkg006 type p decimals 4,
????? wkg007 type p decimals 4,
????? wkg008 type p decimals 4,
????? wkg009 type p decimals 4,
????? wkg010 type p decimals 4,
????? wkg011 type p decimals 4,
????? wkg012 type p decimals 4,
????? wkg013 type p decimals 4,
????? wkg014 type p decimals 4,
????? wkg015 type p decimals 4,
????? wkg016 type p decimals 4,

????? END OF i_coss.
DATA? i_tkg LIKE TABLE OF i_coss WITH HEADER LINE.?????? "標準成本表

DATA: BEGIN OF gt_coss OCCURS 0,
????? objnr LIKE coss-objnr,
????? gjahr LIKE coss-gjahr,
????? uspob(22) TYPE c,????????????? "初始對象
????? meinh LIKE coss-meinh,

????? withdrawn_01 LIKE s026-enwrt,????????? "機器
????? withdrawn_02 LIKE s026-enwrt,
????? withdrawn_03 LIKE s026-enwrt,
????? withdrawn_04 LIKE s026-enwrt,
????? withdrawn_05 LIKE s026-enwrt,
????? withdrawn_06 LIKE s026-enwrt,????????? "
????? END OF gt_coss.
DATA: gt_tkg LIKE TABLE OF gt_coss WITH HEADER LINE.

DATA: BEGIN OF tkg OCCURS 0,???????????? "作業價格
????? objnr LIKE cost-objnr,???????????? "對象號 如:KL10000000004130LAB2
????? gjahr LIKE cost-gjahr,
????? tkg001 LIKE cost-tkg001,? "作業價格
????? tkg002 LIKE cost-tkg002,
????? tkg003 LIKE cost-tkg003,
????? tkg004 LIKE cost-tkg004,
????? tkg005 LIKE cost-tkg005,
????? tkg006 LIKE cost-tkg006,
????? tkg007 LIKE cost-tkg007,
????? tkg008 LIKE cost-tkg008,
????? tkg009 LIKE cost-tkg009,
????? tkg010 LIKE cost-tkg010,
????? tkg011 LIKE cost-tkg011,
????? tkg012 LIKE cost-tkg012,
????? tke001 LIKE cost-tke001,? "計量單位
????? tke002 LIKE cost-tke002,
????? tke003 LIKE cost-tke003,
????? tke004 LIKE cost-tke004,
????? tke005 LIKE cost-tke005,
????? tke006 LIKE cost-tke006,
????? tke007 LIKE cost-tke007,
????? tke008 LIKE cost-tke008,
????? tke009 LIKE cost-tke009,
????? tke010 LIKE cost-tke010,
????? tke011 LIKE cost-tke011,
????? tke012 LIKE cost-tke012,
????? END OF tkg.

?

DATA: order_s_objects TYPE bapi_pp_order_objects.??? "輸入表頭查詢

DATA: order_t_component LIKE TABLE OF bapi_order_component,
????? order_s_component TYPE bapi_order_component,

????? order_t_header LIKE TABLE OF bapi_order_header1,
????? order_s_header TYPE bapi_order_header1,

????? order_t_item LIKE TABLE OF bapi_order_item,
????? order_s_item TYPE bapi_order_item.

DATA: tab_s_routing TYPE zxy_routing,
????? tab_t_routing LIKE TABLE OF tab_s_routing,

????? routing_table LIKE TABLE OF tab_s_routing.
DATA: tab_s_purchasing TYPE zxy_purchasing,
????? tab_t_purchasing LIKE TABLE OF tab_s_purchasing.

*用作輸出的內表
DATA: BEGIN OF gt_result OCCURS 0,
????? objnr LIKE aufk-objnr,
????? year(4) TYPE c,
????? month TYPE char_02,
????? aufnr LIKE afru-aufnr,????????????? "訂單號
????? auart LIKE aufk-auart,
????? matnr LIKE afko-plnbez,
????? werks LIKE afru-werks,
????? plnnr LIKE afko-plnnr,
????? vornr LIKE afru-vornr,????????????? "工序
????? budat LIKE afru-budat,
????? gmnga(13) TYPE c,????????? "數量
????? gmein LIKE afru-gmein,????????? "單位

????? ism01 LIKE afru-ism01,????????? "實際機器時間
????? ile01 LIKE afru-ile01,????????? "時間單位MIN
????? ism01_q LIKE afru-ism01,??????? "標準機器時間

????? ism02 LIKE afru-ism02,????????? "實際人工時間
????? ile02 LIKE afru-ile02,????????? "時間單位MIN
????? ism02_q LIKE afru-ism02,??????? "標準人工時間

????? withcost_s_01 LIKE s026-enwrt,???? "實際機器成本
????? withcost_s_02 LIKE s026-enwrt,???? "實際人工成本
????? withcost_s_03 LIKE s026-enwrt,???? "實際材料成本

????? withcost_q_01 LIKE s026-enwrt,???? "標準機器成本
????? withcost_q_02 LIKE s026-enwrt,???? "標準人工成本
????? withcost_q_03 LIKE s026-enwrt,???? "標準材料成本

????? with_ef_m TYPE p DECIMALS 2,??? "機器效率
????? with_ef_l TYPE p DECIMALS 2,??? "人工效率

????? END OF gt_result.
FIELD-SYMBOLS: <fs_result> LIKE LINE OF gt_result.

*global value of alv display
DATA:
????? 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輸出表頭


*選擇條件:
SELECTION-SCREEN BEGIN OF BLOCK sc_1 WITH FRAME TITLE text-001.
SELECT-OPTIONS:
??????????????? s_werks FOR afru-werks,
??????????????? s_matnr FOR mapl-matnr,

??????????????? s_aufnr FOR afru-aufnr MEMORY ID auf MODIF ID auf,
??????????????? s_auart FOR aufk-auart,
??????????????? s_budat FOR afru-budat.
SELECTION-SCREEN END OF BLOCK sc_1.
SELECTION-SCREEN BEGIN OF BLOCK sc_2 WITH FRAME TITLE text-002.
SELECT-OPTIONS: s_rueck FOR afru-rueck .
SELECTION-SCREEN END OF BLOCK sc_2.
***********************************************************************
* START-OF-SELECTION
***********************************************************************
START-OF-SELECTION.


*計算數據
? PERFORM select_data.
? PERFORM append_gt_result.
? PERFORM alv_output.
*&---------------------------------------------------------------------*
*&????? Form? select_data
*&---------------------------------------------------------------------*
*?????? text
*----------------------------------------------------------------------*
*? -->? p1??????? text
*? <--? p2??????? text
*----------------------------------------------------------------------*
FORM select_data .
*range
? RANGES: lr_kstar? FOR coep-kstar,
????????? lr_gjahr? FOR coep-gjahr,
????????? lr_perio? FOR coep-perio,
????????? lr_objnr? FOR coep-objnr,
????????? lr_matnr? FOR mapl-matnr,
????????? lr_plnnr? FOR mapl-plnnr,
????????? lr_uspob? FOR coss-uspob.

? DATA: t_plnnr LIKE afko-plnnr,
??????? t_matnr LIKE afko-plnbez,
??????? t_aufnr LIKE afko-aufnr,
??????? t_result TYPE c.
*得到訂單的確認消耗成本單位-分批的
? SELECT
??????? a~rueck
??????? a~ersda
??????? a~budat
??????? a~werks
??????? a~ile01 "
??????? a~ism01 "
??????? a~ile02 "
??????? a~ism02 "
??????? a~ile03 "
??????? a~ism03 "
??????? a~ile04 "
??????? a~ism04 "
??????? a~ile05 "
??????? a~ism05 "
??????? a~ile06 "
??????? a~ism06 "
??????? a~wablnr????????????? "物料憑證編號
??????? a~aufnr
??????? a~vornr
??????? a~arbid?????????????? "對象ID,---->成本中心
??????? b~plnbez AS matnr
??????? b~plnnr
??????? c~objnr
??????? c~auart
??????? FROM afru AS a
??????? INNER JOIN afko AS b ON a~aufnr = b~aufnr
??????? INNER JOIN aufk AS c ON a~aufnr = c~aufnr
??????? INTO TABLE i_list
??????? WHERE a~aufnr IN s_aufnr
??????????? AND a~werks IN s_werks
??????????? AND b~plnbez IN s_matnr
??????????? AND c~auart IN s_auart
??????????? AND a~budat IN s_budat
??????????? AND a~rueck IN s_rueck
??????????? AND a~stokz <> 'X'
??????????? AND a~stzhl = ''.

? "工藝路線范圍選擇
? lr_matnr-sign = 'I'.
? lr_matnr-option = 'EQ'.
? lr_plnnr-sign = 'I'.
? lr_plnnr-option = 'EQ'.

*匯總實際工時
? LOOP AT i_list.
??? MOVE-CORRESPONDING i_list TO gt_list.??????????????? "i_list ------> gt_list

??? gt_list-year =? i_list-budat(4).
??? gt_list-month = i_list-budat+4(2).

??? CONCATENATE 'OR' i_list-aufnr INTO gt_objnr-objnr .

??? lr_matnr-low = i_list-matnr.
??? lr_plnnr-low = i_list-plnnr.

??? COLLECT gt_objnr.
??? COLLECT lr_matnr.
??? COLLECT lr_plnnr.

??? COLLECT gt_list.
??? CLEAR gt_list.
? ENDLOOP.??????????????????????????????????????????????? "is right, ok!

? CLEAR: gt_objnr,lr_matnr,lr_plnnr.
*delete rubbish
? DELETE gt_list WHERE ism01 = 0 AND ism02 = 0 AND ism03 = 0 AND ism04 = 0 AND ism05 = 0 AND ism06 = 0.
**************************************************************************************************

? LOOP AT gt_list[] INTO lwa_list.
***********************************************
*取訂單主數據、訂單組件,算材料成本
*******
*add
********
??? MOVE-CORRESPONDING lwa_list TO wa_list.
??? t_plnnr = lwa_list-plnnr.
??? t_matnr = lwa_list-matnr.
??? t_aufnr = lwa_list-aufnr.
??? AT END OF plnnr.

*********************************************************************************************

*取標準工藝路線值
*******
*add
********
????? CALL FUNCTION 'ZXY_ROUTING_READ'
??????? EXPORTING
????????? plnty?????? = 'N'
????????? plnnr?????? = t_plnnr
????????? plnal?????? = '01'
????????? matnr?????? = t_matnr
????????? sign??????? = 'X'
??????? TABLES
????????? routing_new = tab_t_routing.

????? IF sy-subrc = 0.
??????? IF NOT tab_t_routing IS INITIAL.
????????? "判斷內表數據是否相同
????????? CALL FUNCTION 'COMPARE_TABLES'
??????????? IMPORTING
????????????? RESULT??? = t_result
??????????? TABLES
????????????? table_new = tab_t_routing
????????????? table_old = routing_table.
????????? IF sy-subrc = 0.
??????????? IF t_result = 'F'.
????????????? APPEND LINES OF tab_t_routing TO routing_table.
??????????? ENDIF.
????????? ENDIF.
??????? ENDIF.
??????? CLEAR tab_t_routing.
????? ENDIF.

????? MODIFY gt_list FROM wa_list.
????? CLEAR? gt_list.
????? CLEAR: t_plnnr,
???????????? t_matnr.

??? ENDAT.
? ENDLOOP.
**************************************************************
*此處算實際的成本消耗
**************************************************************
*算實際成本
? IF NOT gt_objnr[] IS INITIAL.
??? lr_kstar-option = 'EQ'.
??? lr_kstar-sign = 'I'.

??? "DIP機器
??? lr_kstar-low = '0000600100'.?????????? "成本要素
??? APPEND lr_kstar.
??? "AV/JV機器
??? lr_kstar-low = '0000600110'.
??? APPEND lr_kstar.
??? "輔料耗錫
??? lr_kstar-low = '0000600130'.
??? APPEND lr_kstar.
??? "跳線
??? lr_kstar-low = '0000600140'.
??? APPEND lr_kstar.
??? "DIP人工
??? lr_kstar-low = '0000600210'.
??? APPEND lr_kstar.

??? "成型人工
??? lr_kstar-low = '0000600220'.
??? 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 CORRESPONDING FIELDS OF TABLE i_coss
????? FROM coss
????? WHERE objnr IN lr_objnr
??????? AND kstar IN lr_kstar???????????????????? "成本要素
??????? AND wrttp = '04'.???????????????????????? "實際成本消耗
*分離成本
??? lr_uspob-option = 'EQ'.
??? lr_uspob-sign = 'I'.

??? LOOP AT i_coss.
????? gt_coss-objnr = i_coss-objnr.
????? gt_coss-gjahr = i_coss-gjahr.?????????????? "年度
????? gt_coss-meinh = i_coss-meinh.?????????????? "單位

????? gt_coss-uspob = i_coss-uspob.?????????????? "初始對象號
????? lr_uspob-low? = i_coss-uspob.?????????????? "用于計算計劃作業價格的對象號

????? CASE i_coss-kstar.
??????? WHEN? '0000600100'.
*實際機器制造費用-總
????????? gt_coss-withdrawn_01 = i_coss-wkg001 + i_coss-wkg002 + i_coss-wkg003 +
???????????????? i_coss-wkg004 + i_coss-wkg005 + i_coss-wkg006 +
???????????????? i_coss-wkg007 + i_coss-wkg008 + i_coss-wkg009 +
???????????????? i_coss-wkg010 + i_coss-wkg011 + i_coss-wkg012 +
???????????????? i_coss-wkg013 + i_coss-wkg014 + i_coss-wkg015 +
???????????????? i_coss-wkg016 .

??????? WHEN? '0000600110'.
*AV/JV機器-總
????????? gt_coss-withdrawn_02 = i_coss-wkg001 + i_coss-wkg002 + i_coss-wkg003 +
???????????????? i_coss-wkg004 + i_coss-wkg005 + i_coss-wkg006 +
???????????????? i_coss-wkg007 + i_coss-wkg008 + i_coss-wkg009 +
???????????????? i_coss-wkg010 + i_coss-wkg011 + i_coss-wkg012 +
???????????????? i_coss-wkg013 + i_coss-wkg014 + i_coss-wkg015 +
???????????????? i_coss-wkg016 .

??????? WHEN? '0000600130'.
*輔料耗錫-總
????????? gt_coss-withdrawn_03 = i_coss-wkg001 + i_coss-wkg002 + i_coss-wkg003 +
???????????????? i_coss-wkg004 + i_coss-wkg005 + i_coss-wkg006 +
???????????????? i_coss-wkg007 + i_coss-wkg008 + i_coss-wkg009 +
???????????????? i_coss-wkg010 + i_coss-wkg011 + i_coss-wkg012 +
???????????????? i_coss-wkg013 + i_coss-wkg014 + i_coss-wkg015 +
???????????????? i_coss-wkg016 .

??????? WHEN? '0000600140'.
*跳線-總
????????? gt_coss-withdrawn_04 = i_coss-wkg001 + i_coss-wkg002 + i_coss-wkg003 +
???????????????? i_coss-wkg004 + i_coss-wkg005 + i_coss-wkg006 +
???????????????? i_coss-wkg007 + i_coss-wkg008 + i_coss-wkg009 +
???????????????? i_coss-wkg010 + i_coss-wkg011 + i_coss-wkg012 +
???????????????? i_coss-wkg013 + i_coss-wkg014 + i_coss-wkg015 +
???????????????? i_coss-wkg016 .

??????? WHEN? '0000600210'.
*DIP人工-總
????????? gt_coss-withdrawn_05 = i_coss-wkg001 + i_coss-wkg002 + i_coss-wkg003 +
???????????????? i_coss-wkg004 + i_coss-wkg005 + i_coss-wkg006 +
???????????????? i_coss-wkg007 + i_coss-wkg008 + i_coss-wkg009 +
???????????????? i_coss-wkg010 + i_coss-wkg011 + i_coss-wkg012 +
???????????????? i_coss-wkg013 + i_coss-wkg014 + i_coss-wkg015 +
???????????????? i_coss-wkg016 .

??????? WHEN '0000600220'.
*成型人工-總
????????? gt_coss-withdrawn_06 = i_coss-wkg001 + i_coss-wkg002 + i_coss-wkg003 +
???????????????? i_coss-wkg004 + i_coss-wkg005 + i_coss-wkg006 +
???????????????? i_coss-wkg007 + i_coss-wkg008 + i_coss-wkg009 +
???????????????? i_coss-wkg010 + i_coss-wkg011 + i_coss-wkg012 +
???????????????? i_coss-wkg013 + i_coss-wkg014 + i_coss-wkg015 +
???????????????? i_coss-wkg016 .

????? ENDCASE.
????? COLLECT gt_coss.
????? COLLECT lr_uspob.

????? CLEAR gt_coss.
??? ENDLOOP.
??? CLEAR lr_uspob. "清除表頭
??? CLEAR i_coss.
? ENDIF.

*計算作業價格-----計算標準作業價格----table: cost
? SELECT objnr
???????? gjahr
???????? tkg001
???????? tkg002
???????? tkg003
???????? tkg004
???????? tkg005
???????? tkg006
???????? tkg007
???????? tkg008
???????? tkg009
???????? tkg010
???????? tkg011
???????? tkg012
???????? tke001 tke002 tke003 tke004 tke005 tke006 tke007 tke008 tke009 tke010 tke011 tke012
???????? INTO TABLE tkg FROM cost
???????? WHERE
*???????? objnr in lr_uspob
*?????????????? and
?????????????? lednr = '00'?? "控制對象的分類帳
?????????????? AND wrttp = '01'.? "值類型

*計算作業價格 * 工藝路線(工序)
? DATA: t_lar01,
??????? t_uspob_c(16) TYPE c,
??????? t_uspob(22) TYPE c,
??????? t_kstar LIKE coss-kstar,? "成本要素
??????? t_case(3) TYPE c,
??????? t_year(4) TYPE c,
??????? t_month TYPE char_02,
??????? t_field1(6) TYPE c,
??????? t_field(16) TYPE c,
??????? t_value TYPE P DECIMALS 4." s026-enwrt.?????????????? "xieyao 2009.09.07

? CONSTANTS: index TYPE i VALUE 7.
? DATA: i_index TYPE i,
??????? i_month TYPE i.

? DATA: lwa_gt_list LIKE LINE OF gt_list,
??????? lwa_i_coss LIKE LINE OF i_coss,
??????? lwa_i_tkg LIKE LINE OF i_tkg.

? FIELD-SYMBOLS: <fs1>,??? "結構
???????????????? <fs2>,??? "字段
???????????????? <fs3>,??? "結構
???????????????? <fs4>,??? "字段
???????????????? <fs5>,??? "字段
???????????????? <fs6>,??? "字段
???????????????? <fs_kostl>,
???????????????? <f_one>,
???????????????? <f_field>.

? LOOP AT gt_list INTO lwa_gt_list.
??? t_year? = lwa_gt_list-year.
??? t_month = lwa_gt_list-month .
??? i_month = lwa_gt_list-month + 2.

??? lwa_i_tkg-objnr = lwa_gt_list-objnr.??????????? "1
??? lwa_i_tkg-gjahr = lwa_gt_list-year.???????????? "2

??? READ TABLE routing_table ASSIGNING <fs1> WITH KEY plnnr = lwa_gt_list-plnnr?? "標準工藝路線
????????????????????????????????????????????????????? vornr = lwa_gt_list-vornr.
??? IF sy-subrc = 0.
????? ASSIGN COMPONENT 'KOSTL' OF STRUCTURE <fs1> TO <fs_kostl>.
????? "成本中心相關號-->不要作業編號
????? CONCATENATE 'KL1000' <fs_kostl> INTO t_uspob_c.

????? i_index = index.
????? DO.
??????? ASSIGN COMPONENT i_index OF STRUCTURE <fs1> TO <fs2>.?????? "工藝路線-->作業類型如:MAC、LAB3
??????? IF sy-subrc <> 0.
????????? EXIT.
??????? ENDIF.

??????? CONCATENATE t_uspob_c <fs2> INTO t_uspob.?????????????????? "read的條件
??????? READ TABLE tkg ASSIGNING <fs3> WITH KEY objnr = t_uspob
??????????????????????????????????????????????? gjahr = t_year.
??????? IF sy-subrc = 0.
????????? lwa_i_tkg-uspob = t_uspob.?????????????? "4

????????? ASSIGN COMPONENT i_month OF STRUCTURE <fs3> TO <fs4>.???? "當月作業價格
????????? "定價單位
????????? CONCATENATE 'TKE0' t_month INTO t_field1.
????????? ASSIGN COMPONENT t_field1 OF STRUCTURE <fs3> TO <fs6>.

????????? i_index = i_index + 2.
????????? ASSIGN COMPONENT i_index OF STRUCTURE <fs1> TO <fs2>.???? "工藝路線標準工時
????????? ASSIGN COMPONENT 'BMSCH' OF STRUCTURE <fs1> TO <fs5>.???? "工藝路線基本單位
????????? IF <fs5> <> 0 AND <fs6> <> 0.
??????????? t_value = <fs2> * <fs4> / <fs5> / <fs6> * 100.????????? "擴大100倍
????????? ELSE.
??????????? t_value = 0.
????????? ENDIF.

????????? CONCATENATE 'LWA_I_TKG' '-WKG0' t_month INTO t_field.
????????? ASSIGN (t_field) TO <f_field>.
????????? <f_field> = t_value.????????????????????????????? "從列6/7/8……
*collect cost.
????????? COLLECT lwa_i_tkg INTO i_tkg.
????????? CLEAR t_value.

????????? i_index = i_index + 1.
??????? ELSE.
????????? i_index = i_index + 3.
??????? ENDIF.
????? ENDDO.
??? ENDIF.
? ENDLOOP.

? LOOP AT i_tkg.
??? gt_tkg-objnr = i_tkg-objnr.
??? gt_tkg-gjahr = i_tkg-gjahr.?????????????? "年度
??? gt_tkg-meinh = i_tkg-meinh.?????????????? "單位

??? gt_tkg-uspob = i_tkg-uspob.?????????????? "初始對象號
??? t_case = i_tkg-uspob+16(3).
??? CASE t_case.

????? WHEN? 'MAC'.
*標準機器制造費用-總
??????? gt_tkg-withdrawn_01 = i_tkg-wkg001 + i_tkg-wkg002 + i_tkg-wkg003 +
?????????????? i_tkg-wkg004 + i_tkg-wkg005 + i_tkg-wkg006 +
?????????????? i_tkg-wkg007 + i_tkg-wkg008 + i_tkg-wkg009 +
?????????????? i_tkg-wkg010 + i_tkg-wkg011 + i_tkg-wkg012 +
?????????????? i_tkg-wkg013 + i_tkg-wkg014 + i_tkg-wkg015 +
?????????????? i_tkg-wkg016 .

????? WHEN? 'FAC'.
*人工-總
??????? gt_tkg-withdrawn_02 = i_tkg-wkg001 + i_tkg-wkg002 + i_tkg-wkg003 +
?????????????? i_tkg-wkg004 + i_tkg-wkg005 + i_tkg-wkg006 +
?????????????? i_tkg-wkg007 + i_tkg-wkg008 + i_tkg-wkg009 +
?????????????? i_tkg-wkg010 + i_tkg-wkg011 + i_tkg-wkg012 +
?????????????? i_tkg-wkg013 + i_tkg-wkg014 + i_tkg-wkg015 +
?????????????? i_tkg-wkg016 .

????? WHEN? 'LAB'.
*人工-總
??????? gt_tkg-withdrawn_03 = i_tkg-wkg001 + i_tkg-wkg002 + i_tkg-wkg003 +
?????????????? i_tkg-wkg004 + i_tkg-wkg005 + i_tkg-wkg006 +
?????????????? i_tkg-wkg007 + i_tkg-wkg008 + i_tkg-wkg009 +
?????????????? i_tkg-wkg010 + i_tkg-wkg011 + i_tkg-wkg012 +
?????????????? i_tkg-wkg013 + i_tkg-wkg014 + i_tkg-wkg015 +
?????????????? i_tkg-wkg016 .

??? ENDCASE.
??? COLLECT gt_tkg.
??? CLEAR gt_tkg.
? ENDLOOP.

ENDFORM.??????????????????? " select_data

*&---------------------------------------------------------------------*
*&????? Form? append_gt_result
*&---------------------------------------------------------------------*
*?????? text
*----------------------------------------------------------------------*
*? -->? p1??????? text
*? <--? p2??????? text
*----------------------------------------------------------------------*
FORM append_gt_result .
? DATA: i_index TYPE i,
??????? t_withcost_s_01 LIKE s026-enwrt,
??????? t_withcost_s_02 LIKE s026-enwrt,
??????? t_withcost_q_01 LIKE s026-enwrt,
??????? t_withcost_q_02 LIKE s026-enwrt.
*data
? DATA: t_withcost_s LIKE s026-enwrt,
??????? t_withcost_q LIKE s026-enwrt.
? DATA: t_c_date LIKE sy-datum.

? FIELD-SYMBOLS: <fs>,
???????????????? <fs_st>, "標準價格
???????????????? <fs_pe>,
???????????????? <fs_kb>,? "價格
???????????????? <fs_kp>.? "條件定價單位
*select options
? order_s_objects-components = 'X'.
? order_s_objects-header???? = 'X'.
? order_s_objects-positions? = 'X'.

*填充輸出內表
? LOOP AT gt_list.
??? gt_result-objnr = gt_list-objnr.
??? gt_result-aufnr = gt_list-aufnr.
??? gt_result-auart = gt_list-auart.
??? gt_result-werks = gt_list-werks.
??? gt_result-year = gt_list-year.
??? gt_result-month = gt_list-month.
??? gt_result-gmnga = gt_list-gmnga.
??? gt_result-gmein = gt_list-gmein.

*用于read的關鍵字---標準工藝路線
??? gt_result-matnr = gt_list-matnr.
??? gt_result-plnnr = gt_list-plnnr.

??? COLLECT gt_result.
??? CLEAR gt_list.
??? CLEAR gt_result.
? ENDLOOP.


*一統
? SORT gt_coss BY objnr gjahr.
? SORT gt_tkg BY objnr gjahr.

? CLEAR: t_withcost_s_01,
???????? t_withcost_s_02,
???????? t_withcost_q_01,
???????? t_withcost_q_02.

? LOOP AT gt_result ASSIGNING <fs_result>.
*計算材料成本
***********************************************************************
??? CALL FUNCTION 'BAPI_PRODORD_GET_DETAIL'
????? EXPORTING
??????? number??????? = <fs_result>-aufnr
??????? order_objects = order_s_objects
????? TABLES
??????? header??????? = order_t_header
??????? position????? = order_t_item
??????? component???? = order_t_component.

??? READ TABLE order_t_header INDEX 1 INTO order_s_header.?????? "讀取表頭
*??? <fs_result>-gmnga = order_s_header-confirmed_quantity.?????? "取收到數量
??? <fs_result>-gmein = order_s_header-unit.

??? READ TABLE order_t_item INDEX 1 INTO order_s_item.
??? <fs_result>-gmnga = order_s_item-delivered_quantity.?????? "取收到數量

??? CONCATENATE <fs_result>-year <fs_result>-month '01' INTO t_c_date.

??? LOOP AT order_t_component INTO order_s_component WHERE material <> order_s_header-material.
????? "價格
????? CALL FUNCTION 'ZXY_PURCHASE_DATE_READ'
??????? EXPORTING
????????? matnr???? = order_s_component-material
????????? werks???? = order_s_component-prod_plant
????????? budat???? = t_c_date
??????? TABLES
????????? pur_table = tab_t_purchasing.

????? IF sy-subrc = 0 AND tab_t_purchasing IS NOT INITIAL.

??????? READ TABLE tab_t_purchasing INDEX 1 ASSIGNING <fs> .
??????? "實際消耗的數量 * 標準價格 / 價格單位
??????? ASSIGN COMPONENT 'KBETR' OF STRUCTURE <fs> TO <fs_kb>.
??????? ASSIGN COMPONENT 'KPEIN' OF STRUCTURE <fs> TO <fs_kp>.
??????? IF <fs_kp> <> 0.
????????? t_withcost_s = t_withcost_s + order_s_component-withdrawn_quantity * <fs_kb> / <fs_kp>.??? "實際材料成本
??????? ELSE.
????????? t_withcost_s = 0.
??????? ENDIF.

??????? "計劃消耗的數量 * 標準價格 / 價格單位
??????? ASSIGN COMPONENT 'STPRS' OF STRUCTURE <fs> TO <fs_st>.
??????? ASSIGN COMPONENT 'PEINH' OF STRUCTURE <fs> TO <fs_pe>.
??????? IF <fs_pe> <> 0.
????????? t_withcost_q = t_withcost_q + order_s_component-req_quan * <fs_st> / <fs_pe>.????????????? "標準材料成本
??????? ELSE.
????????? t_withcost_q = 0.
??????? ENDIF.
????? ENDIF.
????? CLEAR tab_t_purchasing.
??? ENDLOOP.

??? "實際材料成本
??? <fs_result>-withcost_s_03 = t_withcost_s.
??? "標準材料成本
??? <fs_result>-withcost_q_03 = t_withcost_q.

??? CLEAR:?????? t_c_date,
???????????????? t_withcost_s,
???????????????? t_withcost_q,
???????????????? order_t_header,
???????????????? order_t_item,
???????????????? order_t_component.

*計算實際成本
??? READ TABLE gt_coss WITH KEY objnr = <fs_result>-objnr
????????????????????????????? gjahr = <fs_result>-year.
??? IF sy-subrc = 0.
????? i_index = sy-tabix.
????? LOOP AT gt_coss FROM i_index WHERE objnr = <fs_result>-objnr
??????????????????????????????????????? AND gjahr = <fs_result>-year.
??????? "實際制造費用
??????? t_withcost_s_01 = t_withcost_s_01 + :
????????????????????????? gt_coss-withdrawn_03 , gt_coss-withdrawn_04 ,
????????????????????????? gt_coss-withdrawn_01 , gt_coss-withdrawn_02.
??????? "實際人工成本
??????? t_withcost_s_02 = t_withcost_s_02 + :
????????????????????????? gt_coss-withdrawn_05 , gt_coss-withdrawn_06.

????? ENDLOOP.
????? <fs_result>-withcost_s_01 = t_withcost_s_01.
????? <fs_result>-withcost_s_02 = t_withcost_s_02.
??? ENDIF.

*計算標準成本
??? READ TABLE gt_tkg WITH KEY objnr = <fs_result>-objnr
????????????????????????????? gjahr = <fs_result>-year.
??? IF sy-subrc = 0.
????? i_index = sy-tabix.
????? LOOP AT gt_tkg FROM i_index WHERE objnr = <fs_result>-objnr
??????????????????????????????????????? AND gjahr = <fs_result>-year.
??????? "標準制造費用
??????? t_withcost_q_01 = t_withcost_q_01 + : gt_tkg-withdrawn_02 ,
????????????????????????? gt_tkg-withdrawn_01 .
??????? "標準人工成本
??????? t_withcost_q_02 = t_withcost_q_02 + :
????????????????????????? gt_tkg-withdrawn_03 .


????? ENDLOOP.
????? <fs_result>-withcost_q_01 = t_withcost_q_01 * <fs_result>-gmnga / 100.??? "xieyao 2009.09.07
????? <fs_result>-withcost_q_02 = t_withcost_q_02 * <fs_result>-gmnga / 100.??? "xieyao 2009.09.07
??? ENDIF.

??? CLEAR: t_withcost_s_01,
?????????? t_withcost_s_02,
?????????? t_withcost_q_01,
?????????? t_withcost_q_02.

*去掉前導零
??? CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'
????? EXPORTING
??????? input? = <fs_result>-aufnr
????? IMPORTING
??????? output = <fs_result>-aufnr.

?

? ENDLOOP.


ENDFORM.??????????????????? " append_gt_result
***********************************************************************
* END-OF-SELECTION
***********************************************************************
END-OF-SELECTION.
*&---------------------------------------------------------------------*
*&????? Form? alv_output
*&---------------------------------------------------------------------*
*?????? text
*----------------------------------------------------------------------*
*? -->? p1??????? text
*? <--? p2??????? text
*----------------------------------------------------------------------*
FORM alv_output .
*設置顯示格式
? 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
??? EXCEPTIONS
????? program_error?????????? = 1
????? OTHERS????????????????? = 2.
ENDFORM.??????????????????? " alv_output

************************************************************************
*? 設置表輸出表頭事件
************************************************************************
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 write_top_of_page.
? DATA: wa_hline TYPE slis_listheader.

? REFRESH gt_head.
? CLEAR: wa_hline.
? DATA:? l_count TYPE i.

? wa_hline-typ = 'H'.
? wa_hline-info = '成品實際/標準成本分析'.
? APPEND wa_hline TO gt_head.

? CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
??? EXPORTING
????? it_list_commentary = gt_head.
ENDFORM.??????????????????? "write_top_of_page

************************************************************************
* 雙擊
************************************************************************
FORM user_command USING r_ucomm LIKE sy-ucomm
????????????????? rs_selfield TYPE slis_selfield.
? READ TABLE gt_result INDEX rs_selfield-tabindex.
? CHECK sy-subrc = 0.
? CASE r_ucomm.
??? WHEN '&IC1'.?????????????????????? "doubleclick
????? CASE rs_selfield-sel_tab_field.
??????? WHEN '1-AUFNR'.
????????? SET PARAMETER ID 'ANR' FIELD gt_result-aufnr .
????????? CALL TRANSACTION? 'CO03'? AND? SKIP? FIRST? SCREEN.
????????? CLEAR r_ucomm.
????? ENDCASE.
? ENDCASE.
ENDFORM.??????????????????? "USER_COMMAND_SUM

***********************************************************************
*設置ALV輸出報表的顯示字段、排序字段及其相關屬性????????????????????? *
***********************************************************************
FORM f_fieldcat_init .
? DATA: wa_fieldcat TYPE slis_fieldcat_alv,
??????? wa_sort TYPE slis_sortinfo_alv.

*顯示字段
? CLEAR wa_fieldcat.
? wa_fieldcat-fieldname =? 'AUFNR'.
? wa_fieldcat-seltext_s =? '工單號'.
? wa_fieldcat-key?????? =? 'X'.
? wa_fieldcat-fix_column = 'X'.
? wa_fieldcat-outputlen = '12'.
? APPEND wa_fieldcat TO gt_fieldcat.

? CLEAR wa_fieldcat.
? wa_fieldcat-fieldname =? 'YEAR'.
? wa_fieldcat-seltext_s =? '年度'.
? wa_fieldcat-key?????? =? 'X'.
? wa_fieldcat-fix_column = 'X'.
? wa_fieldcat-outputlen = '4'.
? APPEND wa_fieldcat TO gt_fieldcat.

? CLEAR wa_fieldcat.
? wa_fieldcat-fieldname =? 'MONTH'.
? wa_fieldcat-seltext_s =? '期間'.
? wa_fieldcat-key?????? =? 'X'.
? wa_fieldcat-fix_column = 'X'.
? wa_fieldcat-outputlen = '4'.
? APPEND wa_fieldcat TO gt_fieldcat.

? CLEAR wa_fieldcat.
? wa_fieldcat-fieldname =? 'AUART'.
? wa_fieldcat-seltext_s =? '訂單類型'.
? wa_fieldcat-key?????? =? 'X'.
? wa_fieldcat-fix_column = 'X'.
? wa_fieldcat-outputlen = '8'.
? APPEND wa_fieldcat TO gt_fieldcat.

? CLEAR wa_fieldcat.
? wa_fieldcat-fieldname =? 'WERKS'.
? wa_fieldcat-seltext_s =? '工廠'.
? wa_fieldcat-key?????? =? 'X'.
? wa_fieldcat-fix_column = 'X'.
? wa_fieldcat-outputlen = '10'.
? APPEND wa_fieldcat TO gt_fieldcat.

? CLEAR wa_fieldcat.
? wa_fieldcat-fieldname =? 'MATNR'.
? wa_fieldcat-seltext_s =? '成品物料'.
? wa_fieldcat-fix_column = 'X'.
? wa_fieldcat-outputlen = '10'.
? APPEND wa_fieldcat TO gt_fieldcat.

? CLEAR wa_fieldcat.
? wa_fieldcat-fieldname =? 'GMNGA'.
? wa_fieldcat-seltext_l =? '工單收貨數量'.
? wa_fieldcat-fix_column = 'X'.
? APPEND wa_fieldcat TO gt_fieldcat.

? CLEAR wa_fieldcat.
? wa_fieldcat-fieldname =? 'GMEIN'.
? wa_fieldcat-seltext_l =? '單位'.
? wa_fieldcat-outputlen = '3'.
? APPEND wa_fieldcat TO gt_fieldcat.

*? clear wa_fieldcat.
*? wa_fieldcat-fieldname =? 'ISM01'.
*? wa_fieldcat-seltext_l =? '實際機器工時'.
*? append wa_fieldcat to gt_fieldcat.
*
*? clear wa_fieldcat.
*? wa_fieldcat-fieldname =? 'ISM02'.
*? wa_fieldcat-seltext_l =? '實際人工工時'.
*? append wa_fieldcat to gt_fieldcat.
*
*? clear wa_fieldcat.
*? wa_fieldcat-fieldname =? 'ILE01'.
*? wa_fieldcat-seltext_l =? '單位'.
*? wa_fieldcat-outputlen = '3'.
*? append wa_fieldcat to gt_fieldcat.
*
*? clear wa_fieldcat.
*? wa_fieldcat-fieldname =? 'ISM01_Q'.
*? wa_fieldcat-seltext_l =? '標準機器工時'.
*? append wa_fieldcat to gt_fieldcat.
*
*? clear wa_fieldcat.
*? wa_fieldcat-fieldname =? 'ISM02_Q'.
*? wa_fieldcat-seltext_l =? '標準人工工時'.
*? append wa_fieldcat to gt_fieldcat.
*
*? clear wa_fieldcat.
*? wa_fieldcat-fieldname =? 'ILE02'.
*? wa_fieldcat-seltext_l =? '單位'.
*? wa_fieldcat-outputlen = '3'.
*? append wa_fieldcat to gt_fieldcat.

? CLEAR wa_fieldcat.
? wa_fieldcat-fieldname =? 'WITHCOST_S_01'.
? wa_fieldcat-seltext_l =? '實際制造成本'.
? wa_fieldcat-emphasize = 'C500'.
? APPEND wa_fieldcat TO gt_fieldcat.

? CLEAR wa_fieldcat.
? wa_fieldcat-fieldname =? 'WITHCOST_S_02'.
? wa_fieldcat-seltext_l =? '實際人工成本'.
? wa_fieldcat-emphasize = 'C500'.
? APPEND wa_fieldcat TO gt_fieldcat.

? CLEAR wa_fieldcat.
? wa_fieldcat-fieldname =? 'WITHCOST_S_03'.
? wa_fieldcat-seltext_l =? '實際材料成本'.
? wa_fieldcat-emphasize = 'C500'.
? APPEND wa_fieldcat TO gt_fieldcat.

? CLEAR wa_fieldcat.
? wa_fieldcat-fieldname =? 'WITHCOST_Q_01'.
? wa_fieldcat-seltext_l =? '標準制造成本'.
? wa_fieldcat-emphasize = 'C701'.
? APPEND wa_fieldcat TO gt_fieldcat.

? CLEAR wa_fieldcat.
? wa_fieldcat-fieldname =? 'WITHCOST_Q_02'.
? wa_fieldcat-seltext_l =? '標準人工成本'.
? wa_fieldcat-emphasize = 'C701'.
? APPEND wa_fieldcat TO gt_fieldcat.

? CLEAR wa_fieldcat.
? wa_fieldcat-fieldname =? 'WITHCOST_Q_03'.
? wa_fieldcat-seltext_l =? '標準材料成本'.
? wa_fieldcat-emphasize = 'C701'.
? APPEND wa_fieldcat TO gt_fieldcat.

*? clear wa_fieldcat.
*? wa_fieldcat-fieldname =? 'WITH_EF_M'.
*? wa_fieldcat-seltext_l =? '機器生產效率'.
*? append wa_fieldcat to gt_fieldcat.
*
*? clear wa_fieldcat.
*? wa_fieldcat-fieldname =? 'WITH_EF_L'.
*? wa_fieldcat-seltext_l =? '人工生產效率'.
*? append wa_fieldcat to gt_fieldcat.
ENDFORM.??????????????????? "f_fieldcat_init


與50位技術專家面對面20年技術見證,附贈技術全景圖

總結

以上是生活随笔為你收集整理的成本分析报表的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。