1 ******************************************************************** 2 * 事务代码: * 3 * 程序名称:ZCOR_013 * 4 * 程序目的:生产成本明细表 * 5 * 使用变式: * 6 * 设 计 人:DONGDONG * 7 *(修改日志)-------------------------------------------------------- * 8 * 日志号 修改人 修改时间 修改说明 传输号码 * 9 * ---- ------ ------ ----------- ----------- 10 * 001 DONGDONG 20210224 新建 DEVK906724 11 ******************************************************************** 12 REPORT zcor_013. 13 ************************************************************************ 14 * TABLES 15 ************************************************************************ 16 TABLES: mara,mseg,zv_dd_line. 17 TABLES: sscrfields. 18 TYPE-POOLS: slis,vrm. "声明类型池,使slis_t_specialcol_alv所在的包被包含进来 19 ************************************************************************ 20 * 类型定义 21 ************************************************************************ 22 TYPES: BEGIN OF ty_alv, 23 bukrs TYPE mseg-bukrs, "公司 24 werks TYPE mseg-werks, "工厂 25 budat_mkpf TYPE mseg-budat_mkpf, "过账日期 26 "bwart TYPE mseg-bwart, "移动类型 27 matnr TYPE mseg-matnr, "物料 28 groes TYPE mara-groes, "物料的大小量纲 29 maktx TYPE makt-maktx, "物料描述 30 mtart TYPE mara-mtart, "物料类型 31 shkzg TYPE mseg-shkzg, "借贷标识 32 mblnr TYPE mseg-mblnr, "物料凭证 33 mjahr TYPE mseg-mjahr, "物料凭证年度 34 zeile TYPE mseg-zeile, "物料凭证行 35 smbln TYPE mseg-smbln, "被冲销凭证 36 sjahr TYPE mseg-sjahr, "被冲销凭证年度 37 smblp TYPE mseg-smblp, "被冲销凭证行 38 aufnr TYPE mseg-aufnr, "生产订单号 39 kostl TYPE mseg-kostl, "成本中心 40 verid_nd TYPE zv_dd_line-verid_nd, "生产版本 41 text1 TYPE zv_dd_line-text1, "生产版本描述 42 dmbtr TYPE mseg-dmbtr, "金额 43 waers TYPE mseg-waers, "货币单位 44 menge TYPE mseg-menge, "库存单位数量 45 meins TYPE mseg-meins, "库存单位 46 47 END OF ty_alv. 48 49 TYPES: BEGIN OF ty_show, 50 bukrs TYPE mseg-bukrs, "公司 51 werks TYPE mseg-werks, "工厂 52 budat_mkpf TYPE mseg-budat_mkpf, "过账日期 53 matnr TYPE mseg-matnr, "物料 54 groes TYPE mara-groes, "物料的大小量纲 55 maktx TYPE makt-maktx, "物料描述 56 mtart TYPE mara-mtart, "物料类型 57 aufnr TYPE mseg-aufnr, "生产订单号 58 kostl TYPE mseg-kostl, "成本中心 59 verid_nd TYPE zv_dd_line-verid_nd, "生产版本 60 text1 TYPE zv_dd_line-text1, "生产版本描述 61 dmbtr TYPE mseg-dmbtr, "金额 62 waers TYPE mseg-waers, "货币单位 63 menge TYPE mseg-menge, "库存单位数量 64 meins TYPE mseg-meins, "库存单位 65 66 END OF ty_show. 67 68 TYPES: BEGIN OF ty_final, 69 bukrs TYPE mseg-bukrs, "公司 70 werks TYPE mseg-werks, "工厂 71 year TYPE gjahr, 72 month TYPE co_perio, "会计期间 73 "budat_mkpf TYPE mseg-budat_mkpf, "过账日期 74 matnr TYPE mseg-matnr, "物料 75 groes TYPE mara-groes, "物料的大小量纲 76 width TYPE mara-groes, "厚度 77 maktx TYPE makt-maktx, "物料描述 78 "mtart TYPE mara-mtart, "物料类型 79 aufnr TYPE mseg-aufnr, "生产订单号 80 kostl TYPE mseg-kostl, "成本中心 81 verid_nd TYPE zv_dd_line-verid_nd, "生产版本 82 text1 TYPE zv_dd_line-text1, "生产版本描述 83 dmbtr TYPE mseg-dmbtr, "金额 84 waers TYPE mseg-waers, "货币单位 85 menge TYPE mseg-menge, "库存单位数量 86 meins TYPE mseg-meins, "库存单位 87 menge_zx TYPE p DECIMALS 4, "重箱 88 89 yl001mg TYPE mseg-menge, "原料1数量 90 yl001ms TYPE mseg-meins, "原料1数量单位 91 yl001dr TYPE mseg-dmbtr, "原料1金额 92 yl001ws TYPE mseg-waers, "原料1金额单位 93 94 yl002mg TYPE mseg-menge, "原料1数量 95 yl002ms TYPE mseg-meins, "原料1数量单位 96 yl002dr TYPE mseg-dmbtr, "原料1金额 97 yl002ws TYPE mseg-waers, "原料1金额单位 98 99 yl003mg TYPE mseg-menge, "原料1数量 100 yl003ms TYPE mseg-meins, "原料1数量单位 101 yl003dr TYPE mseg-dmbtr, "原料1金额 102 yl003ws TYPE mseg-waers, "原料1金额单位 103 104 yl004mg TYPE mseg-menge, "原料1数量 105 yl004ms TYPE mseg-meins, "原料1数量单位 106 yl004dr TYPE mseg-dmbtr, "原料1金额 107 yl004ws TYPE mseg-waers, "原料1金额单位 108 109 yl005mg TYPE mseg-menge, "原料1数量 110 yl005ms TYPE mseg-meins, "原料1数量单位 111 yl005dr TYPE mseg-dmbtr, "原料1金额 112 yl005ws TYPE mseg-waers, "原料1金额单位 113 114 yl006mg TYPE mseg-menge, "原料1数量 115 yl006ms TYPE mseg-meins, "原料1数量单位 116 yl006dr TYPE mseg-dmbtr, "原料1金额 117 yl006ws TYPE mseg-waers, "原料1金额单位 118 119 yl007mg TYPE mseg-menge, "原料1数量 120 yl007ms TYPE mseg-meins, "原料1数量单位 121 yl007dr TYPE mseg-dmbtr, "原料1金额 122 yl007ws TYPE mseg-waers, "原料1金额单位 123 124 yl008mg TYPE mseg-menge, "原料1数量 125 yl008ms TYPE mseg-meins, "原料1数量单位 126 yl008dr TYPE mseg-dmbtr, "原料1金额 127 yl008ws TYPE mseg-waers, "原料1金额单位 128 129 yl009mg TYPE mseg-menge, "原料1数量 130 yl009ms TYPE mseg-meins, "原料1数量单位 131 yl009dr TYPE mseg-dmbtr, "原料1金额 132 yl009ws TYPE mseg-waers, "原料1金额单位 133 134 yl010mg TYPE mseg-menge, "原料1数量 135 yl010ms TYPE mseg-meins, "原料1数量单位 136 yl010dr TYPE mseg-dmbtr, "原料1金额 137 yl010ws TYPE mseg-waers, "原料1金额单位 138 139 rl001mg TYPE mseg-menge, "燃料1数量 140 rl001ms TYPE mseg-meins, "燃料1数量单位 141 rl001dr TYPE mseg-dmbtr, "燃料1金额 142 rl001ws TYPE mseg-waers, "燃料1金额单位 143 144 rl002mg TYPE mseg-menge, "燃料1数量 145 rl002ms TYPE mseg-meins, "燃料1数量单位 146 rl002dr TYPE mseg-dmbtr, "燃料1金额 147 rl002ws TYPE mseg-waers, "燃料1金额单位 148 149 rl003mg TYPE mseg-menge, "燃料1数量 150 rl003ms TYPE mseg-meins, "燃料1数量单位 151 rl003dr TYPE mseg-dmbtr, "燃料1金额 152 rl003ws TYPE mseg-waers, "燃料1金额单位 153 154 rl004mg TYPE mseg-menge, "燃料1数量 155 rl004ms TYPE mseg-meins, "燃料1数量单位 156 rl004dr TYPE mseg-dmbtr, "燃料1金额 157 rl004ws TYPE mseg-waers, "燃料1金额单位 158 159 cb001mg TYPE mseg-menge, "成本要素1数量 160 cb001ms TYPE mseg-meins, "成本要素1数量单位 161 cb001dr TYPE mseg-dmbtr, "成本要素1金额 162 cb001ws TYPE mseg-waers, "成本要素1金额单位 163 164 cb002mg TYPE mseg-menge, "成本要素1数量 165 cb002ms TYPE mseg-meins, "成本要素1数量单位 166 cb002dr TYPE mseg-dmbtr, "成本要素1金额 167 cb002ws TYPE mseg-waers, "成本要素1金额单位 168 169 cb003mg TYPE mseg-menge, "成本要素1数量 170 cb003ms TYPE mseg-meins, "成本要素1数量单位 171 cb003dr TYPE mseg-dmbtr, "成本要素1金额 172 cb003ws TYPE mseg-waers, "成本要素1金额单位 173 174 cb004mg TYPE mseg-menge, "成本要素1数量 175 cb004ms TYPE mseg-meins, "成本要素1数量单位 176 cb004dr TYPE mseg-dmbtr, "成本要素1金额 177 cb004ws TYPE mseg-waers, "成本要素1金额单位 178 179 cb005mg TYPE mseg-menge, "成本要素1数量 180 cb005ms TYPE mseg-meins, "成本要素1数量单位 181 cb005dr TYPE mseg-dmbtr, "成本要素1金额 182 cb005ws TYPE mseg-waers, "成本要素1金额单位 183 184 cb006mg TYPE mseg-menge, "成本要素1数量 185 cb006ms TYPE mseg-meins, "成本要素1数量单位 186 cb006dr TYPE mseg-dmbtr, "成本要素1金额 187 cb006ws TYPE mseg-waers, "成本要素1金额单位 188 189 cb007mg TYPE mseg-menge, "成本要素1数量 190 cb007ms TYPE mseg-meins, "成本要素1数量单位 191 cb007dr TYPE mseg-dmbtr, "成本要素1金额 192 cb007ws TYPE mseg-waers, "成本要素1金额单位 193 194 cb008mg TYPE mseg-menge, "成本要素1数量 195 cb008ms TYPE mseg-meins, "成本要素1数量单位 196 cb008dr TYPE mseg-dmbtr, "成本要素1金额 197 cb008ws TYPE mseg-waers, "成本要素1金额单位 198 199 cb009mg TYPE mseg-menge, "成本要素1数量 200 cb009ms TYPE mseg-meins, "成本要素1数量单位 201 cb009dr TYPE mseg-dmbtr, "成本要素1金额 202 cb009ws TYPE mseg-waers, "成本要素1金额单位 203 204 cb010mg TYPE mseg-menge, "成本要素1数量 205 cb010ms TYPE mseg-meins, "成本要素1数量单位 206 cb010dr TYPE mseg-dmbtr, "成本要素1金额 207 cb010ws TYPE mseg-waers, "成本要素1金额单位 208 209 cb011mg TYPE mseg-menge, "成本要素1数量 210 cb011ms TYPE mseg-meins, "成本要素1数量单位 211 cb011dr TYPE mseg-dmbtr, "成本要素1金额 212 cb011ws TYPE mseg-waers, "成本要素1金额单位 213 214 cb012mg TYPE mseg-menge, "成本要素1数量 215 cb012ms TYPE mseg-meins, "成本要素1数量单位 216 cb012dr TYPE mseg-dmbtr, "成本要素1金额 217 cb012ws TYPE mseg-waers, "成本要素1金额单位 218 219 cb013mg TYPE mseg-menge, "成本要素1数量 220 cb013ms TYPE mseg-meins, "成本要素1数量单位 221 cb013dr TYPE mseg-dmbtr, "成本要素1金额 222 cb013ws TYPE mseg-waers, "成本要素1金额单位 223 224 cb014mg TYPE mseg-menge, "成本要素1数量 225 cb014ms TYPE mseg-meins, "成本要素1数量单位 226 cb014dr TYPE mseg-dmbtr, "成本要素1金额 227 cb014ws TYPE mseg-waers, "成本要素1金额单位 228 229 cb015mg TYPE mseg-menge, "成本要素1数量 230 cb015ms TYPE mseg-meins, "成本要素1数量单位 231 cb015dr TYPE mseg-dmbtr, "成本要素1金额 232 cb015ws TYPE mseg-waers, "成本要素1金额单位 233 234 END OF ty_final. 235 236 237 TYPES:BEGIN OF ty_all, 238 budat_mkpf TYPE mseg-budat_mkpf. "过账日期 239 INCLUDE TYPE ty_final. 240 TYPES:END OF ty_all. 241 242 243 TYPES: BEGIN OF ty_cp, 244 bukrs TYPE mseg-bukrs, "公司 245 werks TYPE mseg-werks, "工厂 246 budat_mkpf TYPE mseg-budat_mkpf, "过账日期 247 kostl TYPE mseg-kostl, "成本中心 248 menge TYPE mseg-menge, "库存单位数量 249 meins TYPE mseg-meins, "库存单位 250 251 END OF ty_cp. 252 253 TYPES:BEGIN OF ty_cb_sum, 254 bukrs TYPE coep-bukrs, "公司 255 "werks TYPE coep-werks, "工厂 256 aufnr TYPE coep-aufnr, "订单 257 matnr TYPE coep-matnr, "物料 258 gkoar TYPE coep-gkoar, "冲销科目类型() 259 gjahr TYPE coep-gjahr, "财年 260 perio TYPE coep-perio, "期间 261 wtgbtr TYPE coep-wtgbtr, "业务货币值 262 twaer TYPE coep-twaer, "交易货币 263 megbtr TYPE coep-megbtr, "总计数量 264 meinh TYPE coep-meinh, "计量单位 265 kstar TYPE coep-kstar, "成本要素 266 paccas TYPE coep-paccas, "合作伙伴科目分配 267 END OF ty_cb_sum."成本要素结构 268 269 TYPES:BEGIN OF ty_cb, 270 belnr TYPE coep-belnr, "凭证编号 271 buzei TYPE coep-buzei. "过账行 272 INCLUDE TYPE: ty_cb_sum. 273 274 TYPES:END OF ty_cb. 275 276 ************************************************************************ 277 * 内表&工作区声明 278 ************************************************************************ 279 DATA: gt_alv TYPE TABLE OF ty_alv, "原料和成品的投入产出 280 gt_alv1 TYPE TABLE OF ty_alv, "燃料的消耗 281 gs_alv TYPE ty_alv, 282 gt_show TYPE TABLE OF ty_show, 283 gt_show1 TYPE TABLE OF ty_show, 284 gs_show TYPE ty_show. 285 286 DATA: gt_cp TYPE TABLE OF ty_cp, 287 gs_cp TYPE ty_cp. 288 289 DATA: gt_all TYPE TABLE OF ty_all, 290 gs_all TYPE ty_all. 291 292 DATA: gt_cb TYPE TABLE OF ty_cb, 293 gs_cb TYPE ty_cb, 294 gt_cb_sum TYPE TABLE OF ty_cb_sum, 295 gs_cb_sum TYPE ty_cb_sum. 296 297 DATA: gt_final TYPE TABLE OF ty_final, 298 gs_final TYPE ty_final. 299 300 DATA: hs_show TYPE HASHED TABLE OF ty_show WITH UNIQUE KEY bukrs werks budat_mkpf kostl mtart matnr groes maktx aufnr verid_nd text1 waers meins 301 WITH HEADER LINE. 302 DATA: hs_show1 TYPE HASHED TABLE OF ty_show WITH UNIQUE KEY bukrs werks budat_mkpf kostl mtart matnr groes maktx aufnr verid_nd text1 waers meins 303 WITH HEADER LINE. 304 DATA: hs_cp TYPE HASHED TABLE OF ty_cp WITH UNIQUE KEY bukrs werks budat_mkpf kostl meins 305 WITH HEADER LINE. 306 DATA: hs_cb TYPE HASHED TABLE OF ty_cb_sum WITH UNIQUE KEY bukrs aufnr matnr gkoar gjahr perio twaer meinh kstar paccas "belnr buzei 307 WITH HEADER LINE. 308 DATA:hs_final TYPE HASHED TABLE OF ty_final WITH UNIQUE KEY bukrs werks year month kostl matnr groes 309 width maktx aufnr verid_nd text1 waers meins 310 yl001ms yl001ws yl002ms yl002ws yl003ms yl003ws 311 yl004ms yl004ws yl005ms yl005ws yl006ms yl006ws 312 yl007ms yl007ws yl008ms yl008ws yl009ms yl009ws 313 yl010ms yl010ws rl001ms rl001ws rl002ms rl002ws 314 rl003ms rl003ws rl004ms rl004ws 315 cb001ms cb001ws cb002ms cb002ws cb003ms cb003ws 316 cb004ms cb004ws cb005ms cb005ws cb006ms cb006ws 317 cb007ms cb007ws cb008ms cb008ws cb009ms cb009ws 318 cb010ms cb010ws cb011ms cb011ws cb012ms cb012ws 319 cb013ms cb013ws cb014ms cb014ws cb015ms cb015ws 320 321 WITH HEADER LINE. 322 323 DATA: gs_variant TYPE disvariant. 324 325 *&---定义ALV显示的字段列及其描述等属性 326 DATA: gt_fcat TYPE lvc_t_fcat, 327 gs_fcat TYPE lvc_s_fcat, 328 gt_fcat_d TYPE lvc_t_fcat, 329 gs_fcat_d TYPE lvc_s_fcat, 330 gs_layout TYPE lvc_s_layo. 331 DATA: gs_grid_settings TYPE lvc_s_glay. 332 DATA: gt_raw_data TYPE truxs_t_text_data. 333 334 335 ************************************************************************ 336 * 全局变量声明 337 ************************************************************************ 338 DATA:yl001 TYPE matnr VALUE '000000101201000001', "高铁石英砂 339 yl002 TYPE matnr VALUE '000000101201000002', "低铁石英砂 340 yl003 TYPE matnr VALUE '000000101301000001', " 石灰石 341 yl004 TYPE matnr VALUE '000000101401000001', " 碱 342 yl005 TYPE matnr VALUE '000000101501000001', "元明粉 343 yl006 TYPE matnr VALUE '000000101601000001', "高铁白云 344 yl007 TYPE matnr VALUE '000000101601000002', "低铁白云 345 yl008 TYPE matnr VALUE '000000101701000001', "长石 346 yl009 TYPE matnr VALUE '000000101801000001', " 外购碎玻璃 347 yl010 TYPE matnr VALUE '000000101901000001', " 外购煤粉 348 rl001 TYPE matnr VALUE '000000110501000080', "调和油 349 rl002 TYPE matnr VALUE '000000140101000004', "石油沥青 350 rl003 TYPE matnr VALUE '000000140102000001', "天然气 351 rl004 TYPE matnr VALUE '000000140103000001'. "块煤 352 ************************************************************************ 353 * 宏声明 354 ************************************************************************ 355 DATA:lv_txt TYPE maktx. 356 DEFINE m_fill_fieldcat. 357 CLEAR gs_fcat. 358 gs_fcat-fieldname = &1. 359 gs_fcat-coltext = &2. 360 gs_fcat-no_zero = &3. 361 gs_fcat-outputlen = &4. 362 gs_fcat-key = &5. 363 gs_fcat-fix_column = &6. 364 gs_fcat-edit = &7. 365 366 CLEAR:lv_txt. 367 SELECT SINGLE maktx 368 INTO lv_txt 369 FROM makt 370 WHERE matnr = gs_fcat-coltext 371 AND spras = sy-langu. 372 373 CASE gs_fcat-fieldname+5(2). 374 WHEN 'MG'. 375 gs_fcat-coltext = lv_txt && '(数量)'. 376 WHEN 'MS'. 377 gs_fcat-coltext = lv_txt && '(数量单位)'. 378 WHEN 'DR'. 379 gs_fcat-coltext = lv_txt && '(金额)'. 380 WHEN 'WS'. 381 gs_fcat-coltext = lv_txt && '(金额单位)'. 382 WHEN OTHERS. 383 ENDCASE. 384 IF gs_fcat-fieldname+0(2) EQ 'CB' AND lv_txt IS NOT INITIAL. 385 gs_fcat-coltext = '成本要素-' && gs_fcat-coltext. 386 ELSEIF gs_fcat-fieldname+0(2) EQ 'CB' AND lv_txt IS INITIAL.. 387 gs_fcat-coltext = &2 && gs_fcat-coltext. 388 ENDIF. 389 APPEND gs_fcat TO gt_fcat. 390 END-OF-DEFINITION. 391 ************************************************************************ 392 * 选择屏幕参数 393 ************************************************************************ 394 SELECTION-SCREEN BEGIN OF BLOCK bk1 WITH FRAME TITLE TEXT-001. 395 396 PARAMETERS: p_werks TYPE marc-werks OBLIGATORY DEFAULT '1000', 397 p_gjahr TYPE mseg-gjahr OBLIGATORY DEFAULT sy-datum+0(4), 398 p_monat TYPE bkpf-monat OBLIGATORY DEFAULT sy-datum+4(2). 399 400 SELECT-OPTIONS: s_mat FOR zv_dd_line-matnr. 401 SELECTION-SCREEN END OF BLOCK bk1. 402 403 SELECTION-SCREEN BEGIN OF BLOCK list WITH FRAME TITLE TEXT-002. 404 PARAMETERS: pa_bwber LIKE rfpdo3-allgbwbe NO-DISPLAY. 405 PARAMETERS: pa_vari TYPE slis_vari, 406 pa_nmax LIKE itemset-nmax. 407 SELECTION-SCREEN END OF BLOCK list. 408 *... end of selection screen layout. 409 ************************************************************************ 410 *& 初始化处理 411 ************************************************************************ 412 INITIALIZATION. 413 *&---------------------------------------------------------------------* 414 *& at selection-screen output/选择屏幕前 * 415 *&---------------------------------------------------------------------* 416 AT SELECTION-SCREEN OUTPUT. 417 ************************************************************************ 418 *& 选择屏幕控制 419 ************************************************************************ 420 AT SELECTION-SCREEN. 421 422 AT SELECTION-SCREEN ON VALUE-REQUEST FOR pa_vari. 423 PERFORM alv_variant_f4 CHANGING pa_vari. 424 ************************************************************************ 425 * EVENT START OF SELECTION 426 ************************************************************************ 427 START-OF-SELECTION. 428 PERFORM frm_get_data. 429 ************************************************************************ 430 *EVENT END OF SELECTION 431 ************************************************************************ 432 END-OF-SELECTION. 433 PERFORM frm_create_fieldcat. 434 PERFORM frm_layout_init. 435 PERFORM frm_display_alv. 436 *&---------------------------------------------------------------------* 437 *& Form FRM_GET_DATA 438 *&---------------------------------------------------------------------* 439 *& text 440 *&---------------------------------------------------------------------* 441 *& --> p1 text 442 *& <-- p2 text 443 *&---------------------------------------------------------------------* 444 FORM frm_get_data . 445 DATA: lr_budat TYPE RANGE OF budat WITH HEADER LINE. 446 447 DATA: lv_jahrper TYPE mldoc-jahrper, 448 lv_poper TYPE ckmlprkeph-poper. 449 450 DATA: lt_data TYPE TABLE OF ty_alv, 451 ls_data TYPE ty_alv. 452 453 DATA:lv_groes_1 TYPE mara-groes, "长 454 lv_groes_2 TYPE mara-groes, "宽 455 lv_groes_3 TYPE mara-groes. "厚 456 457 DATA:lv_rc TYPE sy-subrc, 458 lv_coeff TYPE bstmg. 459 460 CLEAR lr_budat. 461 lr_budat-sign = 'I'. 462 lr_budat-option = 'BT'. 463 lr_budat-low = p_gjahr && p_monat && '01'. 464 CALL FUNCTION 'BKK_GET_MONTH_LASTDAY' "获取当前月的最后一天 465 EXPORTING 466 i_date = lr_budat-low 467 IMPORTING 468 e_date = lr_budat-high. 469 APPEND lr_budat. 470 471 REFRESH gt_alv. 472 473 **第一步取出成品入库和原料投料信息 474 SELECT 475 a~bukrs 476 a~werks 477 a~budat_mkpf 478 "a~bwart 479 a~matnr 480 c~groes 481 d~maktx 482 c~mtart 483 a~shkzg 484 a~mblnr 485 a~mjahr 486 a~zeile 487 a~smbln 488 a~sjahr 489 a~smblp 490 a~aufnr 491 a~kostl 492 b~verid_nd 493 b~text1 494 a~dmbtr 495 a~waers 496 a~menge 497 a~meins 498 INTO CORRESPONDING FIELDS OF TABLE gt_alv 499 FROM mseg AS a 500 INNER JOIN zv_dd_line AS b 501 ON a~aufnr = b~aufnr 502 INNER JOIN mara AS c 503 ON a~matnr = c~matnr 504 INNER JOIN makt AS d 505 ON c~matnr = d~matnr 506 WHERE a~werks EQ p_werks 507 AND a~gjahr EQ p_gjahr 508 AND a~budat_mkpf IN lr_budat 509 AND b~matnr IN s_mat 510 AND d~spras = sy-langu. 511 512 **取成本中心与生产版本对应关系 513 SELECT 514 * 515 INTO TABLE @DATA(lt_co007) 516 FROM ztco10007_1. 517 SORT lt_co007 BY verid kostl. 518 519 SORT gt_alv BY mjahr mblnr zeile. 520 521 LOOP AT gt_alv INTO gs_alv. 522 IF gs_alv-smbln IS NOT INITIAL."将冲销物料凭证和被冲销物料凭证过滤掉 523 READ TABLE gt_alv INTO DATA(ls_alv) WITH KEY mjahr = gs_alv-sjahr 524 mblnr = gs_alv-smbln 525 zeile = gs_alv-smblp BINARY SEARCH. 526 IF sy-subrc EQ 0. 527 DELETE TABLE gt_alv FROM ls_alv. 528 DELETE TABLE gt_alv FROM gs_alv. 529 CONTINUE. 530 ENDIF. 531 ELSE."给每一行赋值对应成本中心 532 READ TABLE lt_co007 INTO DATA(lv_co007) WITH KEY verid = gs_alv-verid_nd BINARY SEARCH. 533 "kostl+9(1) = gs_alv-verid_nd+3(1). 534 IF sy-subrc EQ 0. 535 gs_alv-kostl = lv_co007-kostl. 536 ENDIF. 537 538 IF gs_alv-shkzg EQ 'H'. 539 gs_alv-menge = gs_alv-menge * -1. 540 gs_alv-dmbtr = gs_alv-dmbtr * -1. 541 ENDIF. 542 ENDIF. 543 MODIFY gt_alv FROM gs_alv. 544 ENDLOOP. 545 546 **第二步取出燃料每日的消耗量 547 IF gt_alv IS NOT INITIAL. 548 SELECT 549 a~bukrs 550 a~werks 551 a~budat_mkpf 552 "a~bwart 553 a~matnr 554 c~mtart 555 a~shkzg 556 a~mblnr 557 a~mjahr 558 a~zeile 559 a~smbln 560 a~sjahr 561 a~smblp 562 a~aufnr 563 a~kostl 564 b~verid AS verid_nd 565 566 a~dmbtr 567 a~waers 568 a~menge 569 a~meins 570 INTO CORRESPONDING FIELDS OF TABLE gt_alv1 571 FROM mseg AS a 572 INNER JOIN mara AS c 573 ON a~matnr = c~matnr 574 INNER JOIN ztco10007 AS b 575 ON a~kostl = b~kostl 576 FOR ALL ENTRIES IN gt_alv 577 WHERE a~budat_mkpf IN lr_budat 578 AND a~matnr IN ( rl001,rl002,rl003,rl004 ) 579 AND a~werks EQ p_werks 580 AND a~gjahr EQ p_gjahr 581 AND a~kostl = gt_alv-kostl 582 . 583 584 SORT gt_alv1 BY mjahr mblnr zeile. 585 CLEAR:gs_alv,ls_alv. 586 LOOP AT gt_alv1 INTO gs_alv. 587 IF gs_alv-smbln IS NOT INITIAL."将冲销物料凭证和被冲销物料凭证过滤掉 588 READ TABLE gt_alv1 INTO ls_alv WITH KEY mjahr = gs_alv-sjahr 589 mblnr = gs_alv-smbln 590 zeile = gs_alv-smblp BINARY SEARCH. 591 IF sy-subrc EQ 0. 592 DELETE TABLE gt_alv1 FROM ls_alv. 593 DELETE TABLE gt_alv1 FROM gs_alv. 594 CONTINUE. 595 ENDIF. 596 ENDIF. 597 IF gs_alv-shkzg EQ 'H'. 598 gs_alv-menge = gs_alv-menge * -1. 599 gs_alv-dmbtr = gs_alv-dmbtr * -1. 600 ENDIF. 601 602 MODIFY gt_alv1 FROM gs_alv. 603 ENDLOOP. 604 605 606 ENDIF. 607 608 **按相应条件进行金额和数量汇总 609 MOVE-CORRESPONDING gt_alv TO gt_show."原料和成品数据 610 MOVE-CORRESPONDING gt_alv1 TO gt_show1."燃料消耗数据 611 SORT gt_show BY bukrs werks aufnr budat_mkpf kostl mtart matnr verid_nd . 612 SORT gt_show1 BY bukrs werks aufnr budat_mkpf kostl mtart matnr verid_nd . 613 614 **汇总原料和成品的金额和数量 615 CLEAR gs_show. 616 LOOP AT gt_show INTO gs_show. 617 COLLECT gs_show INTO hs_show. 618 ENDLOOP. 619 620 **汇总燃料消耗数据 621 CLEAR gs_show. 622 LOOP AT gt_show1 INTO gs_show. 623 COLLECT gs_show INTO hs_show1. 624 ENDLOOP. 625 626 **将汇总后的数据重新赋值到原来内表中 627 REFRESH:gt_show ,gt_show1. 628 gt_show[] = hs_show[]."汇总后的成品和原料 629 gt_show1[] = hs_show1[]."汇总后的燃料数据 630 631 **取出每日成品产量和原料量 632 DATA:lt_cp TYPE TABLE OF ty_show, 633 lt_yl TYPE TABLE OF ty_show, 634 lt_rl TYPE TABLE OF ty_show. 635 LOOP AT gt_show INTO gs_show. 636 CASE gs_show-mtart. 637 WHEN 'Z004'."成品 638 APPEND gs_show TO lt_cp. 639 MOVE-CORRESPONDING gs_show TO hs_cp. 640 COLLECT hs_cp. 641 WHEN OTHERS."原料 642 APPEND gs_show TO lt_yl. 643 ENDCASE. 644 ENDLOOP. 645 646 MOVE-CORRESPONDING gt_show1 TO lt_rl. 647 gt_cp[] = hs_cp[]."按天按公司、工厂、成本中心汇总成品片数总量用来分摊燃料消耗量 648 649 **成本要素核算、工时、燃动力等实际消耗 650 IF gt_show IS NOT INITIAL. 651 652 SELECT 653 bukrs 654 "werks 655 aufnr 656 gkoar 657 matnr 658 belnr 659 buzei 660 gjahr 661 perio 662 wtgbtr 663 twaer 664 megbtr 665 meinh 666 kstar 667 paccas 668 INTO CORRESPONDING FIELDS OF TABLE gt_cb 669 FROM coep 670 FOR ALL ENTRIES IN gt_show 671 WHERE aufnr = gt_show-aufnr 672 AND gjahr = p_gjahr 673 AND perio = p_monat 674 AND bukrs = p_werks. 675 ENDIF. 676 677 SORT gt_cb BY gjahr perio bukrs aufnr gkoar matnr paccas kstar belnr buzei. 678 679 LOOP AT gt_cb INTO gs_cb. 680 MOVE-CORRESPONDING gs_cb TO hs_cb. 681 COLLECT hs_cb. 682 ENDLOOP. 683 684 gt_cb_sum[] = hs_cb[]. 685 SORT gt_cb_sum BY gjahr perio bukrs aufnr gkoar matnr paccas kstar."实际核算的成本要素 686 687 SORT gt_cp BY bukrs werks budat_mkpf kostl." 688 SORT lt_cp BY bukrs werks budat_mkpf kostl aufnr matnr."成品 689 SORT lt_yl BY bukrs werks budat_mkpf kostl aufnr matnr."原料 690 SORT lt_rl BY bukrs werks budat_mkpf kostl aufnr matnr."燃料 691 692 693 **整理数据 694 LOOP AT lt_cp INTO gs_show. 695 MOVE-CORRESPONDING gs_show TO gs_all. 696 gs_all-year = gs_all-budat_mkpf+0(4). 697 gs_all-month = gs_all-budat_mkpf+4(2). 698 **高铁石英砂 699 READ TABLE lt_yl INTO DATA(ls_yl) WITH KEY bukrs = gs_show-bukrs werks = gs_show-werks budat_mkpf = gs_show-budat_mkpf 700 kostl = gs_show-kostl aufnr = gs_show-aufnr matnr = yl001 BINARY SEARCH. 701 IF sy-subrc EQ 0. 702 gs_all-yl001mg = ls_yl-menge. 703 gs_all-yl001ms = ls_yl-meins. 704 gs_all-yl001dr = ls_yl-dmbtr. 705 gs_all-yl001ws = ls_yl-waers. 706 ENDIF. 707 CLEAR:ls_yl. 708 **低铁石英砂 709 READ TABLE lt_yl INTO ls_yl WITH KEY bukrs = gs_show-bukrs werks = gs_show-werks budat_mkpf = gs_show-budat_mkpf 710 kostl = gs_show-kostl aufnr = gs_show-aufnr matnr = yl002 BINARY SEARCH. 711 IF sy-subrc EQ 0. 712 gs_all-yl002mg = ls_yl-menge. 713 gs_all-yl002ms = ls_yl-meins. 714 gs_all-yl002dr = ls_yl-dmbtr. 715 gs_all-yl002ws = ls_yl-waers. 716 ENDIF. 717 CLEAR:ls_yl. 718 **石灰石 719 READ TABLE lt_yl INTO ls_yl WITH KEY bukrs = gs_show-bukrs werks = gs_show-werks budat_mkpf = gs_show-budat_mkpf 720 kostl = gs_show-kostl aufnr = gs_show-aufnr matnr = yl003 BINARY SEARCH. 721 IF sy-subrc EQ 0. 722 gs_all-yl003mg = ls_yl-menge. 723 gs_all-yl003ms = ls_yl-meins. 724 gs_all-yl003dr = ls_yl-dmbtr. 725 gs_all-yl003ws = ls_yl-waers. 726 ENDIF. 727 CLEAR:ls_yl. 728 **碱 729 READ TABLE lt_yl INTO ls_yl WITH KEY bukrs = gs_show-bukrs werks = gs_show-werks budat_mkpf = gs_show-budat_mkpf 730 kostl = gs_show-kostl aufnr = gs_show-aufnr matnr = yl004 BINARY SEARCH. 731 IF sy-subrc EQ 0. 732 gs_all-yl004mg = ls_yl-menge. 733 gs_all-yl004ms = ls_yl-meins. 734 gs_all-yl004dr = ls_yl-dmbtr. 735 gs_all-yl004ws = ls_yl-waers. 736 ENDIF. 737 CLEAR:ls_yl. 738 **元明粉 739 READ TABLE lt_yl INTO ls_yl WITH KEY bukrs = gs_show-bukrs werks = gs_show-werks budat_mkpf = gs_show-budat_mkpf 740 kostl = gs_show-kostl aufnr = gs_show-aufnr matnr = yl005 BINARY SEARCH. 741 IF sy-subrc EQ 0. 742 gs_all-yl005mg = ls_yl-menge. 743 gs_all-yl005ms = ls_yl-meins. 744 gs_all-yl005dr = ls_yl-dmbtr. 745 gs_all-yl005ws = ls_yl-waers. 746 ENDIF. 747 CLEAR:ls_yl. 748 **高铁白云 749 READ TABLE lt_yl INTO ls_yl WITH KEY bukrs = gs_show-bukrs werks = gs_show-werks budat_mkpf = gs_show-budat_mkpf 750 kostl = gs_show-kostl aufnr = gs_show-aufnr matnr = yl006 BINARY SEARCH. 751 IF sy-subrc EQ 0. 752 gs_all-yl006mg = ls_yl-menge. 753 gs_all-yl006ms = ls_yl-meins. 754 gs_all-yl006dr = ls_yl-dmbtr. 755 gs_all-yl006ws = ls_yl-waers. 756 ENDIF. 757 CLEAR:ls_yl. 758 **低铁白云 759 READ TABLE lt_yl INTO ls_yl WITH KEY bukrs = gs_show-bukrs werks = gs_show-werks budat_mkpf = gs_show-budat_mkpf 760 kostl = gs_show-kostl aufnr = gs_show-aufnr matnr = yl007 BINARY SEARCH. 761 IF sy-subrc EQ 0. 762 gs_all-yl007mg = ls_yl-menge. 763 gs_all-yl007ms = ls_yl-meins. 764 gs_all-yl007dr = ls_yl-dmbtr. 765 gs_all-yl007ws = ls_yl-waers. 766 ENDIF. 767 CLEAR:ls_yl. 768 **长石 769 READ TABLE lt_yl INTO ls_yl WITH KEY bukrs = gs_show-bukrs werks = gs_show-werks budat_mkpf = gs_show-budat_mkpf 770 kostl = gs_show-kostl aufnr = gs_show-aufnr matnr = yl008 BINARY SEARCH. 771 IF sy-subrc EQ 0. 772 gs_all-yl008mg = ls_yl-menge. 773 gs_all-yl008ms = ls_yl-meins. 774 gs_all-yl008dr = ls_yl-dmbtr. 775 gs_all-yl008ws = ls_yl-waers. 776 ENDIF. 777 CLEAR:ls_yl. 778 **外购碎玻璃 779 READ TABLE lt_yl INTO ls_yl WITH KEY bukrs = gs_show-bukrs werks = gs_show-werks budat_mkpf = gs_show-budat_mkpf 780 kostl = gs_show-kostl aufnr = gs_show-aufnr matnr = yl009 BINARY SEARCH. 781 IF sy-subrc EQ 0. 782 gs_all-yl009mg = ls_yl-menge. 783 gs_all-yl009ms = ls_yl-meins. 784 gs_all-yl009dr = ls_yl-dmbtr. 785 gs_all-yl009ws = ls_yl-waers. 786 ENDIF. 787 CLEAR:ls_yl. 788 **外购煤粉 789 READ TABLE lt_yl INTO ls_yl WITH KEY bukrs = gs_show-bukrs werks = gs_show-werks budat_mkpf = gs_show-budat_mkpf 790 kostl = gs_show-kostl aufnr = gs_show-aufnr matnr = yl010 BINARY SEARCH. 791 IF sy-subrc EQ 0. 792 gs_all-yl010mg = ls_yl-menge. 793 gs_all-yl010ms = ls_yl-meins. 794 gs_all-yl010dr = ls_yl-dmbtr. 795 gs_all-yl010ws = ls_yl-waers. 796 ENDIF. 797 CLEAR:ls_yl. 798 799 **找到当前成品总数以分摊燃料消耗 800 READ TABLE gt_cp INTO DATA(ls_c) WITH KEY bukrs = gs_show-bukrs werks = gs_show-werks budat_mkpf = gs_show-budat_mkpf 801 kostl = gs_show-kostl BINARY SEARCH. 802 IF sy-subrc EQ 0. 803 **调和油 110501000080 804 READ TABLE lt_rl INTO DATA(ls_rl) WITH KEY bukrs = gs_show-bukrs werks = gs_show-werks budat_mkpf = gs_show-budat_mkpf 805 kostl = gs_show-kostl matnr = rl001 BINARY SEARCH. 806 IF sy-subrc EQ 0. 807 gs_all-rl001mg = gs_show-menge / ls_c-menge * ls_rl-menge. 808 gs_all-rl001ms = ls_rl-meins. 809 gs_all-rl001dr = gs_show-menge / ls_c-menge * ls_rl-dmbtr. 810 gs_all-rl001ws = ls_rl-waers. 811 ENDIF. 812 CLEAR:ls_rl. 813 **石油沥青 140101000004 814 READ TABLE lt_rl INTO ls_rl WITH KEY bukrs = gs_show-bukrs werks = gs_show-werks budat_mkpf = gs_show-budat_mkpf 815 kostl = gs_show-kostl matnr = rl002 BINARY SEARCH. 816 IF sy-subrc EQ 0. 817 gs_all-rl002mg = gs_show-menge / ls_c-menge * ls_rl-menge. 818 gs_all-rl002ms = ls_rl-meins. 819 gs_all-rl002dr = gs_show-menge / ls_c-menge * ls_rl-dmbtr. 820 gs_all-rl002ws = ls_rl-waers. 821 ENDIF. 822 CLEAR:ls_rl. 823 **天然气 140102000001 824 READ TABLE lt_rl INTO ls_rl WITH KEY bukrs = gs_show-bukrs werks = gs_show-werks budat_mkpf = gs_show-budat_mkpf 825 kostl = gs_show-kostl matnr = rl003 BINARY SEARCH. 826 IF sy-subrc EQ 0. 827 gs_all-rl003mg = gs_show-menge / ls_c-menge * ls_rl-menge. 828 gs_all-rl003ms = ls_rl-meins. 829 gs_all-rl003dr = gs_show-menge / ls_c-menge * ls_rl-dmbtr. 830 gs_all-rl003ws = ls_rl-waers. 831 ENDIF. 832 CLEAR:ls_rl. 833 **块煤 140103000001 834 READ TABLE lt_rl INTO ls_rl WITH KEY bukrs = gs_show-bukrs werks = gs_show-werks budat_mkpf = gs_show-budat_mkpf 835 kostl = gs_show-kostl matnr = rl004 BINARY SEARCH. 836 IF sy-subrc EQ 0. 837 gs_all-rl004mg = gs_show-menge / ls_c-menge * ls_rl-menge. 838 gs_all-rl004ms = ls_rl-meins. 839 gs_all-rl004dr = gs_show-menge / ls_c-menge * ls_rl-dmbtr. 840 gs_all-rl004ws = ls_rl-waers. 841 ENDIF. 842 CLEAR:ls_rl. 843 ENDIF. 844 845 **取出成品厚度及计算重箱数 846 CLEAR:lv_groes_1, 847 lv_groes_2, 848 lv_groes_3. 849 850 SPLIT gs_all-groes 851 AT 'X' 852 INTO lv_groes_1 853 lv_groes_2 854 lv_groes_3. 855 IF lv_groes_3 <> 0. 856 gs_all-width = lv_groes_3 && 'mm'. 857 CLEAR:lv_rc,lv_coeff. 858 PERFORM frm_check_number(zsdr_003) USING lv_groes_3 CHANGING lv_rc. 859 860 IF lv_rc = 0 AND lv_groes_3 NE 0. 861 lv_coeff = 20 / lv_groes_3. 862 863 gs_all-menge_zx = gs_all-menge * lv_groes_1 * lv_groes_2 / lv_coeff. 864 ENDIF. 865 866 ENDIF. 867 868 869 870 APPEND gs_all TO gt_all. 871 872 MOVE-CORRESPONDING gs_all TO hs_final. 873 COLLECT hs_final. 874 875 CLEAR gs_all. 876 ENDLOOP. 877 878 gt_final[] = hs_final[]. 879 880 LOOP AT gt_final INTO gs_final. 881 **取出实际核算成本要素数据 882 CLEAR:gs_cb_sum. 883 *9000000001 人工作业及附加 成本要素 884 READ TABLE gt_cb_sum INTO gs_cb_sum WITH KEY gjahr = gs_final-year perio = gs_final-month bukrs = gs_final-bukrs 885 aufnr = gs_final-aufnr gkoar = '' matnr = '' kstar = '9000000001' BINARY SEARCH. 886 IF sy-subrc EQ 0. 887 gs_final-cb001mg = gs_cb_sum-megbtr. 888 gs_final-cb001ms = gs_cb_sum-meinh. 889 gs_final-cb001dr = gs_cb_sum-wtgbtr. 890 gs_final-cb001ws = gs_cb_sum-twaer. 891 892 ENDIF. 893 CLEAR:gs_cb_sum. 894 *9000000002 制造费用 成本要素 895 READ TABLE gt_cb_sum INTO gs_cb_sum WITH KEY gjahr = gs_final-year perio = gs_final-month bukrs = gs_final-bukrs 896 aufnr = gs_final-aufnr gkoar = '' matnr = '' kstar = '9000000002' BINARY SEARCH. 897 IF sy-subrc EQ 0. 898 gs_final-cb002mg = gs_cb_sum-megbtr. 899 gs_final-cb002ms = gs_cb_sum-meinh. 900 gs_final-cb002dr = gs_cb_sum-wtgbtr. 901 gs_final-cb002ws = gs_cb_sum-twaer. 902 903 ENDIF. 904 CLEAR:gs_cb_sum. 905 *9000000003 折旧费用 成本要素 906 READ TABLE gt_cb_sum INTO gs_cb_sum WITH KEY gjahr = gs_final-year perio = gs_final-month bukrs = gs_final-bukrs 907 aufnr = gs_final-aufnr gkoar = '' matnr = '' kstar = '9000000003' BINARY SEARCH. 908 IF sy-subrc EQ 0. 909 gs_final-cb003mg = gs_cb_sum-megbtr. 910 gs_final-cb003ms = gs_cb_sum-meinh. 911 gs_final-cb003dr = gs_cb_sum-wtgbtr. 912 gs_final-cb003ws = gs_cb_sum-twaer. 913 914 ENDIF. 915 CLEAR:gs_cb_sum. 916 *9000000004 能源动力 成本要素 917 READ TABLE gt_cb_sum INTO gs_cb_sum WITH KEY gjahr = gs_final-year perio = gs_final-month bukrs = gs_final-bukrs 918 aufnr = gs_final-aufnr gkoar = '' matnr = '' kstar = '9000000004' BINARY SEARCH. 919 IF sy-subrc EQ 0. 920 gs_final-cb004mg = gs_cb_sum-megbtr. 921 gs_final-cb004ms = gs_cb_sum-meinh. 922 gs_final-cb004dr = gs_cb_sum-wtgbtr. 923 gs_final-cb004ws = gs_cb_sum-twaer. 924 925 ENDIF. 926 CLEAR:gs_cb_sum. 927 *9000000005 其他制造费用 成本要素 928 READ TABLE gt_cb_sum INTO gs_cb_sum WITH KEY gjahr = gs_final-year perio = gs_final-month bukrs = gs_final-bukrs 929 aufnr = gs_final-aufnr gkoar = '' matnr = '' kstar = '9000000005' BINARY SEARCH. 930 IF sy-subrc EQ 0. 931 gs_final-cb005mg = gs_cb_sum-megbtr. 932 gs_final-cb005ms = gs_cb_sum-meinh. 933 gs_final-cb005dr = gs_cb_sum-wtgbtr. 934 gs_final-cb005ws = gs_cb_sum-twaer. 935 936 ENDIF. 937 CLEAR:gs_cb_sum. 938 *高铁石英砂 实际核算成本 939 READ TABLE gt_cb_sum INTO gs_cb_sum WITH KEY gjahr = gs_final-year perio = gs_final-month bukrs = gs_final-bukrs 940 aufnr = gs_final-aufnr gkoar = 'M' matnr = yl001 kstar = '5001010100' BINARY SEARCH. 941 IF sy-subrc EQ 0. 942 gs_final-cb006mg = gs_cb_sum-megbtr. 943 gs_final-cb006ms = gs_cb_sum-meinh. 944 gs_final-cb006dr = gs_cb_sum-wtgbtr. 945 gs_final-cb006ws = gs_cb_sum-twaer. 946 947 ENDIF. 948 CLEAR:gs_cb_sum. 949 *低铁石英砂 实际核算成本 950 READ TABLE gt_cb_sum INTO gs_cb_sum WITH KEY gjahr = gs_final-year perio = gs_final-month bukrs = gs_final-bukrs 951 aufnr = gs_final-aufnr gkoar = 'M' matnr = yl002 kstar = '5001010100' BINARY SEARCH. 952 IF sy-subrc EQ 0. 953 gs_final-cb007mg = gs_cb_sum-megbtr. 954 gs_final-cb007ms = gs_cb_sum-meinh. 955 gs_final-cb007dr = gs_cb_sum-wtgbtr. 956 gs_final-cb007ws = gs_cb_sum-twaer. 957 958 ENDIF. 959 CLEAR:gs_cb_sum. 960 *石灰石 实际核算成本 961 READ TABLE gt_cb_sum INTO gs_cb_sum WITH KEY gjahr = gs_final-year perio = gs_final-month bukrs = gs_final-bukrs 962 aufnr = gs_final-aufnr gkoar = 'M' matnr = yl003 kstar = '5001010100' BINARY SEARCH. 963 IF sy-subrc EQ 0. 964 gs_final-cb008mg = gs_cb_sum-megbtr. 965 gs_final-cb008ms = gs_cb_sum-meinh. 966 gs_final-cb008dr = gs_cb_sum-wtgbtr. 967 gs_final-cb008ws = gs_cb_sum-twaer. 968 969 ENDIF. 970 CLEAR:gs_cb_sum. 971 *碱 实际核算成本 972 READ TABLE gt_cb_sum INTO gs_cb_sum WITH KEY gjahr = gs_final-year perio = gs_final-month bukrs = gs_final-bukrs 973 aufnr = gs_final-aufnr gkoar = 'M' matnr = yl004 kstar = '5001010100' BINARY SEARCH. 974 IF sy-subrc EQ 0. 975 gs_final-cb009mg = gs_cb_sum-megbtr. 976 gs_final-cb009ms = gs_cb_sum-meinh. 977 gs_final-cb009dr = gs_cb_sum-wtgbtr. 978 gs_final-cb009ws = gs_cb_sum-twaer. 979 980 ENDIF. 981 CLEAR:gs_cb_sum. 982 *元明粉实际核算成本 983 READ TABLE gt_cb_sum INTO gs_cb_sum WITH KEY gjahr = gs_final-year perio = gs_final-month bukrs = gs_final-bukrs 984 aufnr = gs_final-aufnr gkoar = 'M' matnr = yl005 kstar = '5001010100' BINARY SEARCH. 985 IF sy-subrc EQ 0. 986 gs_final-cb010mg = gs_cb_sum-megbtr. 987 gs_final-cb010ms = gs_cb_sum-meinh. 988 gs_final-cb010dr = gs_cb_sum-wtgbtr. 989 gs_final-cb010ws = gs_cb_sum-twaer. 990 ENDIF. 991 CLEAR:gs_cb_sum. 992 *高铁白云 实际核算成本 993 READ TABLE gt_cb_sum INTO gs_cb_sum WITH KEY gjahr = gs_final-year perio = gs_final-month bukrs = gs_final-bukrs 994 aufnr = gs_final-aufnr gkoar = 'M' matnr = yl006 kstar = '5001010100' BINARY SEARCH. 995 IF sy-subrc EQ 0. 996 gs_final-cb011mg = gs_cb_sum-megbtr. 997 gs_final-cb011ms = gs_cb_sum-meinh. 998 gs_final-cb011dr = gs_cb_sum-wtgbtr. 999 gs_final-cb011ws = gs_cb_sum-twaer. 1000 ENDIF. 1001 CLEAR:gs_cb_sum. 1002 *低铁白云 实际核算成本 1003 READ TABLE gt_cb_sum INTO gs_cb_sum WITH KEY gjahr = gs_final-year perio = gs_final-month bukrs = gs_final-bukrs 1004 aufnr = gs_final-aufnr gkoar = 'M' matnr = yl007 kstar = '5001010100' BINARY SEARCH. 1005 IF sy-subrc EQ 0. 1006 gs_final-cb012mg = gs_cb_sum-megbtr. 1007 gs_final-cb012ms = gs_cb_sum-meinh. 1008 gs_final-cb012dr = gs_cb_sum-wtgbtr. 1009 gs_final-cb012ws = gs_cb_sum-twaer. 1010 ENDIF. 1011 CLEAR:gs_cb_sum. 1012 *长石 实际核算成本 1013 READ TABLE gt_cb_sum INTO gs_cb_sum WITH KEY gjahr = gs_final-year perio = gs_final-month bukrs = gs_final-bukrs 1014 aufnr = gs_final-aufnr gkoar = 'M' matnr = yl008 kstar = '5001010100' BINARY SEARCH. 1015 IF sy-subrc EQ 0. 1016 gs_final-cb013mg = gs_cb_sum-megbtr. 1017 gs_final-cb013ms = gs_cb_sum-meinh. 1018 gs_final-cb013dr = gs_cb_sum-wtgbtr. 1019 gs_final-cb013ws = gs_cb_sum-twaer. 1020 ENDIF. 1021 CLEAR:gs_cb_sum. 1022 *外购碎玻璃实际核算成本 1023 READ TABLE gt_cb_sum INTO gs_cb_sum WITH KEY gjahr = gs_final-year perio = gs_final-month bukrs = gs_final-bukrs 1024 aufnr = gs_final-aufnr gkoar = 'M' matnr = yl009 kstar = '5001010100' BINARY SEARCH. 1025 IF sy-subrc EQ 0. 1026 gs_final-cb014mg = gs_cb_sum-megbtr. 1027 gs_final-cb014ms = gs_cb_sum-meinh. 1028 gs_final-cb014dr = gs_cb_sum-wtgbtr. 1029 gs_final-cb014ws = gs_cb_sum-twaer. 1030 ENDIF. 1031 CLEAR:gs_cb_sum. 1032 *外购煤粉 实际核算成本 1033 READ TABLE gt_cb_sum INTO gs_cb_sum WITH KEY gjahr = gs_final-year perio = gs_final-month bukrs = gs_final-bukrs 1034 aufnr = gs_final-aufnr gkoar = 'M' matnr = yl010 kstar = '5001010100' BINARY SEARCH. 1035 IF sy-subrc EQ 0. 1036 gs_final-cb015mg = gs_cb_sum-megbtr. 1037 gs_final-cb015ms = gs_cb_sum-meinh. 1038 gs_final-cb015dr = gs_cb_sum-wtgbtr. 1039 gs_final-cb015ws = gs_cb_sum-twaer. 1040 ENDIF. 1041 1042 MODIFY gt_final FROM gs_final. 1043 1044 CLEAR:gs_final. 1045 1046 ENDLOOP. 1047 1048 1049 1050 1051 1052 ENDFORM. 1053 *&---------------------------------------------------------------------* 1054 *& FORM FRM_CREATE_FIELDCAT 1055 *&---------------------------------------------------------------------* 1056 * 1057 *----------------------------------------------------------------------* 1058 FORM frm_create_fieldcat . 1059 1060 1061 m_fill_fieldcat: 1062 'BUKRS' '公司' '' 4 '' '' '', 1063 'WERKS' '工厂' '' 4 '' '' '', 1064 'YEAR' '年度' '' 4 '' '' '', 1065 'MONTH' '期间' '' 3 '' '' '', 1066 'MATNR' '成品物料号' '' 3 '' '' '', 1067 'MAKTX' '成品物料描述' '' 3 '' '' '', 1068 'GROES' '大小量纲' '' 3 '' '' '', 1069 'WIDTH' '成品厚度' '' 3 '' '' '', 1070 "'BUDAT_MKPF' '过账日期' '' 10 '' '' '', 1071 'AUFNR' '订单号' '' 10 '' '' '', 1072 'KOSTL' '成本中心' '' 10 '' '' '', 1073 'VERID_ND' '生产线' '' 10 '' '' '', 1074 'TEXT1' '生产线描述' '' 10 '' '' '', 1075 'DMBTR' '成品金额' '' 10 '' '' '', 1076 'WAERS' '成品金额单位' '' 10 '' '' '', 1077 'MENGE' '成品数量' '' 10 '' '' '', 1078 'MEINS' '成品数量单位' '' 10 '' '' '', 1079 'MENGE_ZX' '成品重箱数' '' 10 '' '' '', 1080 'YL001MG ' yl001 '' 10 '' '' '', 1081 'YL001MS' yl001 '' 10 '' '' '', 1082 'YL001DR' yl001 '' 10 '' '' '', 1083 'YL001WS' yl001 '' 10 '' '' '', 1084 1085 'YL002MG ' yl002 '' 10 '' '' '', 1086 'YL002MS' yl002 '' 10 '' '' '', 1087 'YL002DR' yl002 '' 10 '' '' '', 1088 'YL002WS' yl002 '' 10 '' '' '', 1089 1090 'YL003MG ' yl003 '' 10 '' '' '', 1091 'YL003MS' yl003 '' 10 '' '' '', 1092 'YL003DR' yl003 '' 10 '' '' '', 1093 'YL003WS' yl003 '' 10 '' '' '', 1094 1095 'YL004MG ' yl004 '' 10 '' '' '', 1096 'YL004MS' yl004 '' 10 '' '' '', 1097 'YL004DR' yl004 '' 10 '' '' '', 1098 'YL004WS' yl004 '' 10 '' '' '', 1099 1100 'YL005MG ' yl005 '' 10 '' '' '', 1101 'YL005MS' yl005 '' 10 '' '' '', 1102 'YL005DR' yl005 '' 10 '' '' '', 1103 'YL005WS' yl005 '' 10 '' '' '', 1104 1105 'YL006MG ' yl006 '' 10 '' '' '', 1106 'YL006MS' yl006 '' 10 '' '' '', 1107 'YL006DR' yl006 '' 10 '' '' '', 1108 'YL006WS' yl006 '' 10 '' '' '', 1109 1110 'YL007MG ' yl007 '' 10 '' '' '', 1111 'YL007MS' yl007 '' 10 '' '' '', 1112 'YL007DR' yl007 '' 10 '' '' '', 1113 'YL007WS' yl007 '' 10 '' '' '', 1114 1115 'YL008MG ' yl008 '' 10 '' '' '', 1116 'YL008MS' yl008 '' 10 '' '' '', 1117 'YL008DR' yl008 '' 10 '' '' '', 1118 'YL008WS' yl008 '' 10 '' '' '', 1119 1120 'YL009MG ' yl009 '' 10 '' '' '', 1121 'YL009MS' yl009 '' 10 '' '' '', 1122 'YL009DR' yl009 '' 10 '' '' '', 1123 'YL009WS' yl009 '' 10 '' '' '', 1124 1125 'YL010MG ' yl010 '' 10 '' '' '', 1126 'YL010MS' yl010 '' 10 '' '' '', 1127 'YL010DR' yl010 '' 10 '' '' '', 1128 'YL010WS' yl010 '' 10 '' '' '', 1129 1130 'RL001MG ' rl003 '' 10 '' '' '', 1131 'RL001MS' rl003 '' 10 '' '' '', 1132 'RL001DR' rl003 '' 10 '' '' '', 1133 'RL001WS' rl003 '' 10 '' '' '', 1134 1135 'RL002MG ' rl002 '' 10 '' '' '', 1136 'RL002MS' rl002 '' 10 '' '' '', 1137 'RL002DR' rl002 '' 10 '' '' '', 1138 'RL002WS' rl002 '' 10 '' '' '', 1139 1140 'RL003MG ' rl003 '' 10 '' '' '', 1141 'RL003MS' rl003 '' 10 '' '' '', 1142 'RL003DR' rl003 '' 10 '' '' '', 1143 'RL003WS' rl003 '' 10 '' '' '', 1144 1145 'RL004MG ' rl004 '' 10 '' '' '', 1146 'RL004MS' rl004 '' 10 '' '' '', 1147 'RL004DR' rl004 '' 10 '' '' '', 1148 'RL004WS' rl004 '' 10 '' '' '', 1149 1150 'CB001MG ' '人工作业及附加' '' 10 '' '' '', 1151 'CB001MS' '人工作业及附加' '' 10 '' '' '', 1152 'CB001DR' '人工作业及附加' '' 10 '' '' '', 1153 'CB001WS' '人工作业及附加' '' 10 '' '' '', 1154 1155 'CB002MG ' '制造费用' '' 10 '' '' '', 1156 'CB002MS' '制造费用' '' 10 '' '' '', 1157 'CB002DR' '制造费用' '' 10 '' '' '', 1158 'CB002WS' '制造费用' '' 10 '' '' '', 1159 1160 'CB003MG ' '折旧费用' '' 10 '' '' '', 1161 'CB003MS' '折旧费用' '' 10 '' '' '', 1162 'CB003DR' '折旧费用' '' 10 '' '' '', 1163 'CB003WS' '折旧费用' '' 10 '' '' '', 1164 1165 'CB004MG ' '能源动力' '' 10 '' '' '', 1166 'CB004MS' '能源动力' '' 10 '' '' '', 1167 'CB004DR' '能源动力' '' 10 '' '' '', 1168 'CB004WS' '能源动力' '' 10 '' '' '', 1169 1170 'CB005MG ' '其他制造费用' '' 10 '' '' '', 1171 'CB005MS' '其他制造费用' '' 10 '' '' '', 1172 'CB005DR' '其他制造费用' '' 10 '' '' '', 1173 'CB005WS' '其他制造费用' '' 10 '' '' '', 1174 1175 'CB006MG ' yl001 '' 10 '' '' '', 1176 'CB006MS' yl001 '' 10 '' '' '', 1177 'CB006DR' yl001 '' 10 '' '' '', 1178 'CB006WS' yl001 '' 10 '' '' '', 1179 1180 'CB007MG ' yl002 '' 10 '' '' '', 1181 'CB007MS' yl002 '' 10 '' '' '', 1182 'CB007DR' yl002 '' 10 '' '' '', 1183 'CB007WS' yl002 '' 10 '' '' '', 1184 1185 'CB008MG ' yl003 '' 10 '' '' '', 1186 'CB008MS' yl003 '' 10 '' '' '', 1187 'CB008DR' yl003 '' 10 '' '' '', 1188 'CB008WS' yl003 '' 10 '' '' '', 1189 1190 'CB009MG ' yl004 '' 10 '' '' '', 1191 'CB009MS' yl004 '' 10 '' '' '', 1192 'CB009DR' yl004 '' 10 '' '' '', 1193 'CB009WS' yl004 '' 10 '' '' '', 1194 1195 'CB010MG ' yl005 '' 10 '' '' '', 1196 'CB010MS' yl005 '' 10 '' '' '', 1197 'CB010DR' yl005 '' 10 '' '' '', 1198 'CB010WS' yl005 '' 10 '' '' '', 1199 1200 'CB011MG ' yl006 '' 10 '' '' '', 1201 'CB011MS' yl006 '' 10 '' '' '', 1202 'CB011DR' yl006 '' 10 '' '' '', 1203 'CB011WS' yl006 '' 10 '' '' '', 1204 1205 'CB012MG ' yl007 '' 10 '' '' '', 1206 'CB012MS' yl007 '' 10 '' '' '', 1207 'CB012DR' yl007 '' 10 '' '' '', 1208 'CB012WS' yl007 '' 10 '' '' '', 1209 1210 'CB013MG ' yl008 '' 10 '' '' '', 1211 'CB013MS' yl008 '' 10 '' '' '', 1212 'CB013DR' yl008 '' 10 '' '' '', 1213 'CB013WS' yl008 '' 10 '' '' '', 1214 1215 'CB014MG ' yl009 '' 10 '' '' '', 1216 'CB014MS' yl009 '' 10 '' '' '', 1217 'CB014DR' yl009 '' 10 '' '' '', 1218 'CB014WS' yl009 '' 10 '' '' '', 1219 1220 'CB015MG ' yl010 '' 10 '' '' '', 1221 'CB015MS' yl010 '' 10 '' '' '', 1222 'CB015DR' yl010 '' 10 '' '' '', 1223 'CB015WS' yl010 '' 10 '' '' ''. 1224 1225 1226 LOOP AT gt_fcat INTO gs_fcat. 1227 IF gs_fcat-fieldname = 'MEINS'. 1228 gs_fcat-ref_field = 'MEINS'. 1229 gs_fcat-ref_table = 'MARA'. 1230 ENDIF. 1231 1232 IF gs_fcat-fieldname = 'MATNR'. 1233 gs_fcat-ref_field = 'MATNR'. 1234 gs_fcat-ref_table = 'MARA'. 1235 ENDIF. 1236 1237 MODIFY gt_fcat FROM gs_fcat. 1238 CLEAR gs_fcat. 1239 ENDLOOP. 1240 ENDFORM. " FRM_CR 1241 *&---------------------------------------------------------------------* 1242 *& FORM LAYOUT_INIT 1243 *&---------------------------------------------------------------------* 1244 * TEXT 1245 *----------------------------------------------------------------------* 1246 FORM frm_layout_init . 1247 gs_layout-zebra = 'X'. 1248 gs_layout-cwidth_opt = 'X'. 1249 * GS_LAYOUT-BOX_FNAME = 'CBOX'. 1250 gs_layout-sel_mode = 'A'. 1251 1252 gs_variant-report = sy-repid. 1253 gs_variant-username = sy-uname. 1254 gs_variant-variant = pa_vari. 1255 ENDFORM. "LAYOUT_INIT 1256 *&---------------------------------------------------------------------* 1257 *& FORM FRM_DISPLAY_BY_ALV 1258 *&---------------------------------------------------------------------* 1259 * TEXT 1260 *----------------------------------------------------------------------* 1261 FORM frm_display_alv . 1262 CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC' 1263 EXPORTING 1264 i_callback_program = sy-repid 1265 is_layout_lvc = gs_layout 1266 * I_CALLBACK_PF_STATUS_SET = 'SET_PF_STATUS' 1267 * I_CALLBACK_USER_COMMAND = 'USER_COMMAND' 1268 it_fieldcat_lvc = gt_fcat 1269 i_save = 'A' "变式是否可以保存 1270 i_grid_settings = gs_grid_settings 1271 is_variant = gs_variant 1272 TABLES 1273 t_outtab = gt_final 1274 EXCEPTIONS 1275 program_error = 1 1276 OTHERS = 2. 1277 IF sy-subrc <> 0. 1278 MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno 1279 WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4. 1280 ENDIF. 1281 ENDFORM. " FRM_DISPLAY_BY_ALV 1282 *&---------------------------------------------------------------------* 1283 *& Form ALV_VARIANT_F4 1284 *&---------------------------------------------------------------------* 1285 *& text 1286 *&---------------------------------------------------------------------* 1287 *& <-- PA_VARI 1288 *&---------------------------------------------------------------------* 1289 FORM alv_variant_f4 CHANGING p_pa_vari. 1290 DATA: rs_variant LIKE disvariant. 1291 DATA nof4 TYPE c. 1292 1293 CLEAR nof4. 1294 LOOP AT SCREEN. 1295 IF screen-name = 'PA_VARI'. 1296 IF screen-input = 0. 1297 nof4 = 'X'. 1298 ENDIF. 1299 ENDIF. 1300 ENDLOOP. 1301 1302 rs_variant-report = sy-repid. 1303 rs_variant-username = sy-uname. 1304 CALL FUNCTION 'REUSE_ALV_VARIANT_F4' 1305 EXPORTING 1306 is_variant = rs_variant 1307 i_save = 'A' 1308 IMPORTING 1309 es_variant = rs_variant 1310 EXCEPTIONS 1311 OTHERS = 1. 1312 IF sy-subrc = 0 AND nof4 EQ space. 1313 pa_vari = rs_variant-variant. 1314 ENDIF. 1315 ENDFORM.