REPORT ZVVF_CR_003_REJREP no standard page heading line-size 160.
*---------------------------------------------------------------------*
* *
* MODULE : Production Planning *
* *
*---------------------------------------------------------------------*
* Objective : Online Rejection Report of the R.M./P.M. rejected *
* during on-line inspection/usage during manufacture of*
* soap/bulk manufacturing or packing of pharma & pcpd *
* products. *
* Program : Update Tables ( ) Download Data ( ) Outputs List (X)*
* Technical Specs No : *
* LDB : *
* *
*---------------------------------------------------------------------*
*---------------------------------------------------------------------*
* Tables *
*---------------------------------------------------------------------*
TABLES :MSEG, "Document Segment Material: Item Data
MKPF, "Material Document: Header Data
MAKT, "Material Descriptions
LFA1, "Vendor Master
T157E. "Text Table: Reason for Movement
*----------------------------------------------------------------------*
* INTERNAL TABLES: Begin with IT_ *
*----------------------------------------------------------------------*
DATA: it_plant type standard table of zty_plant with header line,
it_plant1 type standard table of zty_plant with header line,
it_lfa1 type sorted table of zty_plant with header line
with non-unique key lifnr,
it_matl type sorted table of zty_plant with header line with
non-unique key matnr,
it_grund type sorted table of t157e with header line with
non-unique key bwart grund.
*----------------------------------------------------------------------*
* STRUCTURES : Begin with WA_ *
*----------------------------------------------------------------------*
DATA : wa_plant type zty_plant.
*----------------------------------------------------------------------*
* DATA: Begin with W_ *
*----------------------------------------------------------------------*
DATA : w_lifnr type ELIFN,
w_name1 type NAME1_GP,
w_ebeln type BSTNR,
w_srno type i,
w_numlin type i,
w_name type t001w-name1.
*----------------------------------------------------------------------*
* CONSTANTS: Begin with C_ *
*----------------------------------------------------------------------*
CONSTANTS : C_BWART(3) TYPE C VALUE '101',
C_BLART(2) TYPE C VALUE 'WA'.
*----------------------------------------------------------------------*
* SELECTION SCREEN *
*----------------------------------------------------------------------*
SELECTION-SCREEN BEGIN OF BLOCK RejMat WITH FRAME TITLE TEXT-004.
*----------------------------------------------------------------------*
* PARAMETERS: Begin with PR_ *
*----------------------------------------------------------------------*
PARAMETERS : pr_werks LIKE MSEG-WERKS OBLIGATORY. "Plant Code
*----------------------------------------------------------------------*
* SELECT-OPTIONS: Begin with SO_ *
*----------------------------------------------------------------------*
SELECT-OPTIONS: so_lgort FOR MSEG-LGORT . "Storage Location
SELECT-OPTIONS: so_bwart FOR MSEG-BWART OBLIGATORY. "Movenment Type
SELECT-OPTIONS: so_usnam FOR MKPF-USNAM. "UserName
SELECT-OPTIONS: so_budat FOR MKPF-BUDAT. "Posting Date
SELECTION-SCREEN END OF BLOCK RejMat.
*----------------------------------------------------------------------*
* START-OF-SELECTION *
*----------------------------------------------------------------------*
START-OF-SELECTION.
PERFORM f001_fill_itab.
*----------------------------------------------------------------------*
* END-OF-SELECTION *
*----------------------------------------------------------------------*
END-OF-SELECTION.
PERFORM f002_DISPLAY_DATA.
FORMAT RESET.
WRITE : /1(210) text-001 CENTERED.
*----------------------------------------------------------------------*
* TOP-OF-PAGE *
*----------------------------------------------------------------------*
TOP-OF-PAGE.
PERFORM f003_header.
*&---------------------------------------------------------------------*
*& Form f001_fill_itab *
*&---------------------------------------------------------------------*
FORM f001_fill_itab .
* QUERY THE MSEG TABLE
SELECT distinct a~werks a~matnr a~mblnr a~charg a~menge a~meins
a~grund b~budat a~bwart
INTO corresponding fields of TABLE it_plant
FROM MSEG as a inner join MKPF as b
on a~mblnr = b~mblnr and a~mjahr = b~mjahr
WHERE b~budat IN so_budat
AND b~blart = c_blart
AND a~werks = pr_werks
AND a~lgort IN so_lgort
AND a~bwart IN so_bwart
AND b~usnam IN so_usnam.
select single name1 into w_name
from t001w where werks = pr_werks.
IF SY-SUBRC NE '0'.
MESSAGE E000(ZPP).
ELSE.
select mblnr lifnr ebeln matnr werks charg bwart
into corresponding fields of table it_plant1
from mseg
for all entries in it_plant
where matnr = it_plant-matnr
and werks = it_plant-werks
and charg = it_plant-charg
and bwart = c_bwart.
SORT it_plant BY matnr ASCENDING.
select lifnr name1
from lfa1
into corresponding fields of table it_lfa1
for all entries in it_plant1
where lifnr = it_plant1-lifnr.
if sy-subrc ne 0.
endif.
select matnr maktx
from makt
into corresponding fields of table it_matl
for all entries in it_plant
where matnr = it_plant-matnr .
if sy-subrc ne 0.
endif.
SELECT bwart grund grtxt
from t157e
into corresponding fields of table it_grund
for all entries in it_plant
WHERE bwart = it_plant-bwart and grund = it_plant-grund
and spras = sy-langu.
if sy-subrc ne 0.
endif.
loop at it_plant into wa_plant.
read table it_matl with key matnr = wa_plant-matnr binary search.
read table it_grund with key grund = wa_plant-grund .
read table it_plant1 with key matnr = wa_plant-matnr werks =
wa_plant-werks charg = wa_plant-charg bwart = c_bwart.
wa_plant-lifnr = it_plant1-lifnr.
wa_plant-ebeln = it_plant1-ebeln.
read table it_lfa1 with key lifnr = wa_plant-lifnr.
wa_plant-name1 = it_lfa1-name1.
wa_plant-grtxt = it_grund-grtxt.
wa_plant-maktx = it_matl-maktx.
modify it_plant from wa_plant.
endloop.
ENDIF.
ENDFORM. " f001_fill_itab
*&---------------------------------------------------------------------*
*& Form DISPLAY_DATA *
*&---------------------------------------------------------------------*
FORM f002_DISPLAY_DATA .
DESCRIBE TABLE IT_PLANT LINES W_NUMLIN.
if W_NUMLIN > 0.
w_srno = 0.
loop at it_plant.
w_srno = w_srno + 1.
WRITE : /1 sy-vline, 2(6) w_srno CENTERED,
sy-vline, 10(10) it_plant-matnr,
sy-vline, 22(20) it_plant-maktx,
sy-vline, 44(10) it_plant-charg,
sy-vline, 56(13) it_plant-menge right-justified,
sy-vline, 71(4) it_plant-meins,
sy-vline, 77(15) it_plant-grtxt,
sy-vline, 94(10) it_plant-ebeln,
sy-vline, 106(10) it_plant-lifnr,
sy-vline, 118(15) it_plant-name1,
sy-vline, 135(24) ' ',
sy-vline.
if it_plant-maktx+20(20) NE '' or it_plant-name1+15(15) ne ''.
WRITE : /1 sy-vline,
9 sy-vline,
21 sy-vline, 22(15) it_plant-maktx+20(20),
43 sy-vline,
55 sy-vline,
70 sy-vline,
76 sy-vline,
93 sy-vline,
105 sy-vline,
117 sy-vline, 118(15) it_plant-name1+15(15),
134 sy-vline,
160 sy-vline.
endif.
endloop.
else.
write :/1 sy-vline, 2(160) text-002 centered, 160
sy-vline.
endif.
ULINE.
ENDFORM. " DISPLAY_DATA
*&---------------------------------------------------------------------*
*& Form header *
*&---------------------------------------------------------------------*
FORM f003_header .
FORMAT COLOR 1 INTENSIFIED OFF.
ULINE.
IF PR_WERKS = 'P071'.
WRITE : /1 sy-vline, 2(160) text-023 CENTERED, 160
sy-vline.
ELSE.
WRITE : /1 sy-vline, 2(160) text-003 CENTERED, 160 sy-vline.
ENDIF.
WRITE : /1 sy-vline, 2(160) text-004 CENTERED, 160 sy-vline.
FORMAT COLOR 1 INVERSE ON.
write : /1 sy-vline, 3(8) text-005, 10(4) pr_werks, 140(6) text-006,
148(10) sy-datum, 160 sy-vline.
write : /1 sy-vline, 3(12) text-024, 16(30) w_name, 160 sy-vline.
write : /1 sy-vline, 3(8) text-007, 10(10) text-009, 160 sy-vline.
write : /1 sy-vline, 3(8) text-008, 10(6) text-010, 160 sy-vline.
FORMAT RESET.
FORMAT COLOR 1 INTENSIFIED ON.
ULINE.
WRITE : /1 sy-vline, 2(6) text-011 CENTERED,
sy-vline, 10(10) text-012,
sy-vline, 22(20) text-013,
sy-vline, 44(10) text-014,
sy-vline, 56(13) text-015,
sy-vline, 71(4) text-016,
sy-vline, 77(15) text-017,
sy-vline, 94(10) text-018,
sy-vline, 106(10) text-019,
sy-vline, 118(15) text-020,
sy-vline, 135(24) text-021,
sy-vline.
ULINE.
ENDFORM. " header
if you want to publish or Add something on ERP, SAP , SAP FUNCTIONAL, SAP ABAP then mail us along with your email-id. contain must be yours email-id :- avinashkr_raj@yahoo.com(any email) email-id :- avinaskr_raj.abap@blogger.com
Go on link..
link us with ...
Showing posts with label PP Report. Show all posts
Showing posts with label PP Report. Show all posts
Tuesday, December 21, 2010
Consumption Report of the R.M./P.M. which are consumed against the Process Orders required on Daily/
REPORT ZVVF_CR_004_CONSREP NO STANDARD PAGE HEADING LINE-SIZE 150.
*---------------------------------------------------------------------*
* *
* MODULE : Production Planning *
* *
*---------------------------------------------------------------------*
* Objective : Consumption Report of the R.M./P.M. which are *
* consumed against the Process Orders required on *
* Daily/Weekly basis. *
* *
* Program : Update Tables ( ) Download Data ( ) Outputs List (X)*
* Technical Specs No : *
* LDB : *
* *
*---------------------------------------------------------------------*
*---------------------------------------------------------------------*
* Tables *
*---------------------------------------------------------------------*
TABLES :MSEG, "Document Segment Material: Item Data
MKPF, "Material Document: Header Data
MARA. "Material Master
*----------------------------------------------------------------------*
* INTERNAL TABLES: Begin with IT_ *
*----------------------------------------------------------------------*
DATA: it_plant1 type standard table of ZCT004_01 with header line,
it_plant2 type standard table of ZCT004_01 with header line,
it_mseg type standard table of ZCT004_01 with header line.
*----------------------------------------------------------------------*
* STRUCTURES : Begin with WA_ *
*----------------------------------------------------------------------*
DATA: wa_plant type ZCT004_01,
wa_plant1 type ZCT004_01,
wa_mseg type ZCT004_01.
*----------------------------------------------------------------------*
* DATA : Begin with W_ *
*----------------------------------------------------------------------*
DATA: w_totqty type MENGE_D,
w_batchqty type MENGE_D,
w_matqty type MENGE_D,
w_wtotqty type MENGE_D,
w_wbatchqty type MENGE_D,
w_wmatqty type MENGE_D,
w_rtotqty type MENGE_D,
w_rbatchqty type MENGE_D,
w_rmatqty type MENGE_D,
w_var type p decimals 3,
w_batchvar type p decimals 3,
w_matvar type p decimals 3,
w_totvar type p decimals 3,
w_maktx type maktx,
w_numlin type i,
w_name type t001w-name1.
*----------------------------------------------------------------------*
* SELECT-OPTIONS: Begin with SO_ *
*----------------------------------------------------------------------*
SELECTION-SCREEN BEGIN OF BLOCK ConMat WITH FRAME TITLE TEXT-001.
PARAMETERS: PR_WERK LIKE MARC-WERKS OBLIGATORY. "Werk
SELECT-OPTIONS: so_bldat FOR MKPF-BLDAT OBLIGATORY. "Document Date
SELECT-OPTIONS: so_matnr FOR mseg-matnr. "Material
SELECT-OPTIONS: so_mtart for MARA-mtart OBLIGATORY. "Material Type
SELECT-OPTIONS: so_bwart FOR MSEG-BWART. "Movement Type
SELECT-OPTIONS: so_lgort FOR MSEG-LGORT. "Storage Location
SELECT-OPTIONS: so_usnam FOR MKPF-USNAM. "UserName
SELECTION-SCREEN END OF BLOCK ConMat.
*----------------------------------------------------------------------*
* START-OF-SELECTION *
*----------------------------------------------------------------------*
START-OF-SELECTION.
PERFORM F001_FETCH_DATA.
*----------------------------------------------------------------------*
* END-OF-SELECTION *
*----------------------------------------------------------------------*
END-OF-SELECTION.
PERFORM F002_DISPLAY_DATA.
FORMAT RESET.
WRITE : /1(175) TEXT-002 CENTERED.
*----------------------------------------------------------------------*
* TOP-OF-PAGE *
*----------------------------------------------------------------------*
TOP-OF-PAGE.
PERFORM F003_HEADER.
*&---------------------------------------------------------------------*
*& Form F001_FETCH_DATA *
*&---------------------------------------------------------------------*
FORM F001_FETCH_DATA .
*fetching records from MKPF table on document date and username.
SELECT distinct mblnr mjahr bldat
into corresponding fields of table it_plant2
from mkpf where bldat in so_bldat and usnam in so_usnam.
if sy-subrc = 0.
select m~mblnr m~mjahr m~aufnr m~werks m~lgort m~matnr m~charg
mtart m~bwart m~ebeln menge m~meins m~erfmg m~erfme b~bdmng
b~enmng maktx
into corresponding fields of table it_mseg
from mseg as m
left join makt as t on t~matnr = m~matnr
left join resb as b on m~rsnum = b~rsnum and m~rspos = b~rspos
and m~rsart = b~rsart
inner join mara as r on r~matnr = m~matnr
where m~werks = pr_werk and m~matnr in so_matnr and m~bwart in
so_bwart and m~lgort in so_lgort and r~mtart in so_mtart.
select single name1 into w_name
from t001w where werks = pr_werk.
loop at it_plant2 into wa_plant.
loop at it_mseg into wa_mseg where mblnr = wa_plant-mblnr
and mjahr = wa_plant-mjahr.
if wa_mseg-mblnr = wa_plant-mblnr and
wa_mseg-mjahr = wa_plant-mjahr.
* if sy-subrc = 0.
wa_mseg-mblnr = wa_plant-mblnr.
wa_mseg-mjahr = wa_plant-mjahr.
wa_mseg-bldat = wa_plant-bldat.
insert wa_mseg into table it_plant1.
endif.
endloop.
endloop.
sort it_plant1 by werks matnr charg.
endif.
ENDFORM. " F001_FETCH_DATA
*&---------------------------------------------------------------------*
*& Form F002_DISPLAY_DATA *
*&---------------------------------------------------------------------*
FORM F002_DISPLAY_DATA .
DESCRIBE TABLE IT_PLANT1 LINES W_NUMLIN.
if W_NUMLIN > 0.
LOOP AT IT_PLANT1.
w_totqty = w_totqty + it_plant1-menge.
w_matqty = w_matqty + it_plant1-menge.
w_batchqty = w_batchqty + it_plant1-menge.
w_wtotqty = w_wtotqty + it_plant1-enmng.
w_wmatqty = w_wmatqty + it_plant1-enmng.
w_wbatchqty = w_wbatchqty + it_plant1-enmng.
w_rtotqty = w_rtotqty + it_plant1-bdmng.
w_rmatqty = w_rmatqty + it_plant1-bdmng.
w_rbatchqty = w_rbatchqty + it_plant1-bdmng.
w_var = ( ( it_plant1-enmng - it_plant1-bdmng ) / it_plant1-bdmng
) * 100.
w_totvar = w_totvar + w_var.
w_matvar = w_matvar + w_var.
w_batchvar = w_batchvar + w_var.
WRITE : /1 sy-vline, 8 sy-vline.
AT NEW werks.
WRITE : 2(5) it_plant1-werks CENTERED.
ENDAT.
WRITE : 9(4) it_plant1-lgort,sy-vline.
w_maktx = it_plant1-maktx.
AT NEW matnr.
FORMAT COLOR 3 INTENSIFIED OFF.
WRITE : 15(10) it_plant1-matnr.
FORMAT COLOR 3 OFF.
WRITE : 27(25) w_maktx."35(40)
ENDAT.
WRITE 26 sy-vline.
WRITE 53 sy-vline.
AT NEW charg.
FORMAT COLOR 3 INTENSIFIED OFF.
WRITE : 54(10) it_plant1-charg.
FORMAT COLOR 3 OFF.
ENDAT.
WRITE : 65 sy-vline, 66(10) it_plant1-bldat, sy-vline, 78(10)
it_plant1-aufnr,
sy-vline, 90(13) it_plant1-menge, sy-vline,
105(3) it_plant1-meins, sy-vline, 110(13) it_plant1-bdmng,
sy-vline, 125(13) it_plant1-enmng, sy-vline, 140(9) w_var,
150 sy-vline.
AT END OF charg.
WRITE : /1 sy-uline, 2(148) SY-ULINE,150 sy-vline.
FORMAT COLOR 3 INTENSIFIED OFF.
WRITE : /1 sy-vline, 2 text-025, 28(10) it_plant1-charg.
WRITE : 90(13) w_batchqty, 110(13) w_rbatchqty,
125(13) w_wbatchqty, 140(9) w_batchvar.
w_batchqty = 0.
w_rbatchqty = 0.
w_wbatchqty = 0.
w_batchvar = 0.
FORMAT COLOR 3 OFF.
WRITE : 150 sy-vline.
WRITE : /1(149) SY-ULINE,150 sy-vline.
ENDAT.
AT END OF matnr.
WRITE : 1 sy-uline, 2(148) SY-ULINE,150 sy-vline.
FORMAT COLOR 3 INTENSIFIED OFF.
WRITE : /1 sy-vline, 2 text-026.
WRITE : 28(10) it_plant1-matnr .
WRITE : 90(13) w_matqty, 110(13) w_rmatqty, 125(13)
w_wmatqty,140(9) w_matvar.
w_matqty = 0.
w_rmatqty = 0.
w_wmatqty = 0.
w_matvar = 0.
FORMAT COLOR 3 OFF.
WRITE : 150 sy-vline.
WRITE : /1(149) SY-ULINE,150 sy-vline.
ENDAT.
AT LAST.
WRITE : 1(149) SY-ULINE, 150 sy-vline.
WRITE : /1 sy-vline, 3(12) text-024,90(13) w_totqty,
110(13) w_rtotqty,125(13) w_wtotqty, 140(9) w_totvar,
150 sy-vline.
WRITE : /1(149) SY-ULINE, 150 sy-vline.
ENDAT.
******START BLOCK FOR WRAPPING MAT. DESC.
IF W_MAKTX+25(15) <> ''.
WRITE : /1 sy-vline, 2(5) TEXT-011 CENTERED,
8 sy-vline,
14 sy-vline,
26 sy-vline,
53 sy-vline,
65 sy-vline,
77 sy-vline,
89 sy-vline,
104 sy-vline,
109 sy-vline,
124 sy-vline,
139 sy-vline,
150 sy-vline.
ENDIF.
******END BLOCK FOR WRAPPING MAT. DESC.
ENDLOOP.
write : /1 sy-vline, 150 sy-vline.
WRITE : /1 sy-vline, TEXT-003, 12(130) sy-uline, 150 sy-vline.
WRITE :/1 sy-vline, 12(130) sy-uline, 150 sy-vline.
WRITE :/1 sy-vline, 12(130) sy-uline, 150 sy-vline.
write : /1 sy-vline, 150 sy-vline.
write : /1 sy-vline, 150 sy-vline.
write : /1 sy-vline, 4(13) TEXT-004,
120(15) TEXT-005, 150 sy-vline.
write : /1 sy-vline, 4(6) TEXT-006, 12(10) sy-datum,
120(6) TEXT-006,128(10) sy-datum, 150 sy-vline.
else.
write :/1 sy-vline, 2(100) TEXT-007 centered, 150
sy-vline.
endif.
ULINE.
ENDFORM. " F002_DISPLAY_DATA
*&---------------------------------------------------------------------*
*& Form F003_HEADER *
*&---------------------------------------------------------------------*
FORM F003_HEADER .
FORMAT COLOR 1 INTENSIFIED OFF.
ULINE.
IF PR_WERK = 'P071'.
WRITE : /1 sy-vline, 2(150) text-027 CENTERED, 150 sy-vline.
ELSE.
WRITE : /1 sy-vline, 2(150) text-023 CENTERED, 150 sy-vline.
ENDIF.
WRITE : /1 sy-vline, 2(172) TEXT-008 CENTERED, 150 sy-vline.
WRITE : /1 sy-vline, 2(7) text-028, 10(4) pr_werk, 110(6) TEXT-009,
117(10) so_bldat-low, 129(4) TEXT-010, 133(10) so_bldat-high ,
150 sy-vline.
WRITE : /1 sy-vline, 2(12) text-029, 15(30) w_name, 150 sy-vline.
FORMAT COLOR 1 INVERSE ON.
FORMAT RESET.
FORMAT COLOR 1 INTENSIFIED ON.
ULINE.
WRITE : /1 sy-vline, 2(5) TEXT-011,
sy-vline, 9(4) TEXT-012,
sy-vline, 15(10) TEXT-013,"18
sy-vline, 27(25) TEXT-014,"25
sy-vline, 54(10) TEXT-015,
sy-vline, 66(10) TEXT-016 CENTERED,
sy-vline, 78(10) TEXT-017 CENTERED,
sy-vline, 90(13) TEXT-018 CENTERED,
sy-vline, 105(3) TEXT-019 CENTERED,
sy-vline, 110(13) TEXT-020 CENTERED,
sy-vline, 125(13) TEXT-021 centered,
sy-vline, 140(9) TEXT-022 centered,
sy-vline.
ULINE.
ENDFORM. " F003_HEADER
*---------------------------------------------------------------------*
* *
* MODULE : Production Planning *
* *
*---------------------------------------------------------------------*
* Objective : Consumption Report of the R.M./P.M. which are *
* consumed against the Process Orders required on *
* Daily/Weekly basis. *
* *
* Program : Update Tables ( ) Download Data ( ) Outputs List (X)*
* Technical Specs No : *
* LDB : *
* *
*---------------------------------------------------------------------*
*---------------------------------------------------------------------*
* Tables *
*---------------------------------------------------------------------*
TABLES :MSEG, "Document Segment Material: Item Data
MKPF, "Material Document: Header Data
MARA. "Material Master
*----------------------------------------------------------------------*
* INTERNAL TABLES: Begin with IT_ *
*----------------------------------------------------------------------*
DATA: it_plant1 type standard table of ZCT004_01 with header line,
it_plant2 type standard table of ZCT004_01 with header line,
it_mseg type standard table of ZCT004_01 with header line.
*----------------------------------------------------------------------*
* STRUCTURES : Begin with WA_ *
*----------------------------------------------------------------------*
DATA: wa_plant type ZCT004_01,
wa_plant1 type ZCT004_01,
wa_mseg type ZCT004_01.
*----------------------------------------------------------------------*
* DATA : Begin with W_ *
*----------------------------------------------------------------------*
DATA: w_totqty type MENGE_D,
w_batchqty type MENGE_D,
w_matqty type MENGE_D,
w_wtotqty type MENGE_D,
w_wbatchqty type MENGE_D,
w_wmatqty type MENGE_D,
w_rtotqty type MENGE_D,
w_rbatchqty type MENGE_D,
w_rmatqty type MENGE_D,
w_var type p decimals 3,
w_batchvar type p decimals 3,
w_matvar type p decimals 3,
w_totvar type p decimals 3,
w_maktx type maktx,
w_numlin type i,
w_name type t001w-name1.
*----------------------------------------------------------------------*
* SELECT-OPTIONS: Begin with SO_ *
*----------------------------------------------------------------------*
SELECTION-SCREEN BEGIN OF BLOCK ConMat WITH FRAME TITLE TEXT-001.
PARAMETERS: PR_WERK LIKE MARC-WERKS OBLIGATORY. "Werk
SELECT-OPTIONS: so_bldat FOR MKPF-BLDAT OBLIGATORY. "Document Date
SELECT-OPTIONS: so_matnr FOR mseg-matnr. "Material
SELECT-OPTIONS: so_mtart for MARA-mtart OBLIGATORY. "Material Type
SELECT-OPTIONS: so_bwart FOR MSEG-BWART. "Movement Type
SELECT-OPTIONS: so_lgort FOR MSEG-LGORT. "Storage Location
SELECT-OPTIONS: so_usnam FOR MKPF-USNAM. "UserName
SELECTION-SCREEN END OF BLOCK ConMat.
*----------------------------------------------------------------------*
* START-OF-SELECTION *
*----------------------------------------------------------------------*
START-OF-SELECTION.
PERFORM F001_FETCH_DATA.
*----------------------------------------------------------------------*
* END-OF-SELECTION *
*----------------------------------------------------------------------*
END-OF-SELECTION.
PERFORM F002_DISPLAY_DATA.
FORMAT RESET.
WRITE : /1(175) TEXT-002 CENTERED.
*----------------------------------------------------------------------*
* TOP-OF-PAGE *
*----------------------------------------------------------------------*
TOP-OF-PAGE.
PERFORM F003_HEADER.
*&---------------------------------------------------------------------*
*& Form F001_FETCH_DATA *
*&---------------------------------------------------------------------*
FORM F001_FETCH_DATA .
*fetching records from MKPF table on document date and username.
SELECT distinct mblnr mjahr bldat
into corresponding fields of table it_plant2
from mkpf where bldat in so_bldat and usnam in so_usnam.
if sy-subrc = 0.
select m~mblnr m~mjahr m~aufnr m~werks m~lgort m~matnr m~charg
mtart m~bwart m~ebeln menge m~meins m~erfmg m~erfme b~bdmng
b~enmng maktx
into corresponding fields of table it_mseg
from mseg as m
left join makt as t on t~matnr = m~matnr
left join resb as b on m~rsnum = b~rsnum and m~rspos = b~rspos
and m~rsart = b~rsart
inner join mara as r on r~matnr = m~matnr
where m~werks = pr_werk and m~matnr in so_matnr and m~bwart in
so_bwart and m~lgort in so_lgort and r~mtart in so_mtart.
select single name1 into w_name
from t001w where werks = pr_werk.
loop at it_plant2 into wa_plant.
loop at it_mseg into wa_mseg where mblnr = wa_plant-mblnr
and mjahr = wa_plant-mjahr.
if wa_mseg-mblnr = wa_plant-mblnr and
wa_mseg-mjahr = wa_plant-mjahr.
* if sy-subrc = 0.
wa_mseg-mblnr = wa_plant-mblnr.
wa_mseg-mjahr = wa_plant-mjahr.
wa_mseg-bldat = wa_plant-bldat.
insert wa_mseg into table it_plant1.
endif.
endloop.
endloop.
sort it_plant1 by werks matnr charg.
endif.
ENDFORM. " F001_FETCH_DATA
*&---------------------------------------------------------------------*
*& Form F002_DISPLAY_DATA *
*&---------------------------------------------------------------------*
FORM F002_DISPLAY_DATA .
DESCRIBE TABLE IT_PLANT1 LINES W_NUMLIN.
if W_NUMLIN > 0.
LOOP AT IT_PLANT1.
w_totqty = w_totqty + it_plant1-menge.
w_matqty = w_matqty + it_plant1-menge.
w_batchqty = w_batchqty + it_plant1-menge.
w_wtotqty = w_wtotqty + it_plant1-enmng.
w_wmatqty = w_wmatqty + it_plant1-enmng.
w_wbatchqty = w_wbatchqty + it_plant1-enmng.
w_rtotqty = w_rtotqty + it_plant1-bdmng.
w_rmatqty = w_rmatqty + it_plant1-bdmng.
w_rbatchqty = w_rbatchqty + it_plant1-bdmng.
w_var = ( ( it_plant1-enmng - it_plant1-bdmng ) / it_plant1-bdmng
) * 100.
w_totvar = w_totvar + w_var.
w_matvar = w_matvar + w_var.
w_batchvar = w_batchvar + w_var.
WRITE : /1 sy-vline, 8 sy-vline.
AT NEW werks.
WRITE : 2(5) it_plant1-werks CENTERED.
ENDAT.
WRITE : 9(4) it_plant1-lgort,sy-vline.
w_maktx = it_plant1-maktx.
AT NEW matnr.
FORMAT COLOR 3 INTENSIFIED OFF.
WRITE : 15(10) it_plant1-matnr.
FORMAT COLOR 3 OFF.
WRITE : 27(25) w_maktx."35(40)
ENDAT.
WRITE 26 sy-vline.
WRITE 53 sy-vline.
AT NEW charg.
FORMAT COLOR 3 INTENSIFIED OFF.
WRITE : 54(10) it_plant1-charg.
FORMAT COLOR 3 OFF.
ENDAT.
WRITE : 65 sy-vline, 66(10) it_plant1-bldat, sy-vline, 78(10)
it_plant1-aufnr,
sy-vline, 90(13) it_plant1-menge, sy-vline,
105(3) it_plant1-meins, sy-vline, 110(13) it_plant1-bdmng,
sy-vline, 125(13) it_plant1-enmng, sy-vline, 140(9) w_var,
150 sy-vline.
AT END OF charg.
WRITE : /1 sy-uline, 2(148) SY-ULINE,150 sy-vline.
FORMAT COLOR 3 INTENSIFIED OFF.
WRITE : /1 sy-vline, 2 text-025, 28(10) it_plant1-charg.
WRITE : 90(13) w_batchqty, 110(13) w_rbatchqty,
125(13) w_wbatchqty, 140(9) w_batchvar.
w_batchqty = 0.
w_rbatchqty = 0.
w_wbatchqty = 0.
w_batchvar = 0.
FORMAT COLOR 3 OFF.
WRITE : 150 sy-vline.
WRITE : /1(149) SY-ULINE,150 sy-vline.
ENDAT.
AT END OF matnr.
WRITE : 1 sy-uline, 2(148) SY-ULINE,150 sy-vline.
FORMAT COLOR 3 INTENSIFIED OFF.
WRITE : /1 sy-vline, 2 text-026.
WRITE : 28(10) it_plant1-matnr .
WRITE : 90(13) w_matqty, 110(13) w_rmatqty, 125(13)
w_wmatqty,140(9) w_matvar.
w_matqty = 0.
w_rmatqty = 0.
w_wmatqty = 0.
w_matvar = 0.
FORMAT COLOR 3 OFF.
WRITE : 150 sy-vline.
WRITE : /1(149) SY-ULINE,150 sy-vline.
ENDAT.
AT LAST.
WRITE : 1(149) SY-ULINE, 150 sy-vline.
WRITE : /1 sy-vline, 3(12) text-024,90(13) w_totqty,
110(13) w_rtotqty,125(13) w_wtotqty, 140(9) w_totvar,
150 sy-vline.
WRITE : /1(149) SY-ULINE, 150 sy-vline.
ENDAT.
******START BLOCK FOR WRAPPING MAT. DESC.
IF W_MAKTX+25(15) <> ''.
WRITE : /1 sy-vline, 2(5) TEXT-011 CENTERED,
8 sy-vline,
14 sy-vline,
26 sy-vline,
53 sy-vline,
65 sy-vline,
77 sy-vline,
89 sy-vline,
104 sy-vline,
109 sy-vline,
124 sy-vline,
139 sy-vline,
150 sy-vline.
ENDIF.
******END BLOCK FOR WRAPPING MAT. DESC.
ENDLOOP.
write : /1 sy-vline, 150 sy-vline.
WRITE : /1 sy-vline, TEXT-003, 12(130) sy-uline, 150 sy-vline.
WRITE :/1 sy-vline, 12(130) sy-uline, 150 sy-vline.
WRITE :/1 sy-vline, 12(130) sy-uline, 150 sy-vline.
write : /1 sy-vline, 150 sy-vline.
write : /1 sy-vline, 150 sy-vline.
write : /1 sy-vline, 4(13) TEXT-004,
120(15) TEXT-005, 150 sy-vline.
write : /1 sy-vline, 4(6) TEXT-006, 12(10) sy-datum,
120(6) TEXT-006,128(10) sy-datum, 150 sy-vline.
else.
write :/1 sy-vline, 2(100) TEXT-007 centered, 150
sy-vline.
endif.
ULINE.
ENDFORM. " F002_DISPLAY_DATA
*&---------------------------------------------------------------------*
*& Form F003_HEADER *
*&---------------------------------------------------------------------*
FORM F003_HEADER .
FORMAT COLOR 1 INTENSIFIED OFF.
ULINE.
IF PR_WERK = 'P071'.
WRITE : /1 sy-vline, 2(150) text-027 CENTERED, 150 sy-vline.
ELSE.
WRITE : /1 sy-vline, 2(150) text-023 CENTERED, 150 sy-vline.
ENDIF.
WRITE : /1 sy-vline, 2(172) TEXT-008 CENTERED, 150 sy-vline.
WRITE : /1 sy-vline, 2(7) text-028, 10(4) pr_werk, 110(6) TEXT-009,
117(10) so_bldat-low, 129(4) TEXT-010, 133(10) so_bldat-high ,
150 sy-vline.
WRITE : /1 sy-vline, 2(12) text-029, 15(30) w_name, 150 sy-vline.
FORMAT COLOR 1 INVERSE ON.
FORMAT RESET.
FORMAT COLOR 1 INTENSIFIED ON.
ULINE.
WRITE : /1 sy-vline, 2(5) TEXT-011,
sy-vline, 9(4) TEXT-012,
sy-vline, 15(10) TEXT-013,"18
sy-vline, 27(25) TEXT-014,"25
sy-vline, 54(10) TEXT-015,
sy-vline, 66(10) TEXT-016 CENTERED,
sy-vline, 78(10) TEXT-017 CENTERED,
sy-vline, 90(13) TEXT-018 CENTERED,
sy-vline, 105(3) TEXT-019 CENTERED,
sy-vline, 110(13) TEXT-020 CENTERED,
sy-vline, 125(13) TEXT-021 centered,
sy-vline, 140(9) TEXT-022 centered,
sy-vline.
ULINE.
ENDFORM. " F003_HEADER
Labels:
PP Report
Program for BOM Component V/s Process Order Confn
*&---------------------------------------------------------------------*
*& Report ZVVF_CR019_BOMVSPOCOMP *
*& *
*&---------------------------------------------------------------------*
*& *
*& *
*&---------------------------------------------------------------------*
*---------------------------------------------------------------------*
* Report ZVVF_CR019_BOMVSPOCOMP
*
*---------------------------------------------------------------------*
* *
* MODULE : Production Planning *
* *
*---------------------------------------------------------------------*
* Objective : Program for BOM Component V/s Process Order Confn *
*
*
* *
* Program : Update Tables ( ) Download Data ( ) Outputs List (X)*
* Technical Specs No : *
* Date Created : *
* Author :
*
* Location : *
* LDB : *
* *
*---------------------------------------------------------------------*
REPORT ZVVF_CR019_BOMVSPOCOMP .
*----------------------------------------------------------------------*
* Type-pools
*----------------------------------------------------------------------*
TYPE-POOLS :
SLIS.
*----------------------------------------------------------------------*
* Tables
*----------------------------------------------------------------------*
TABLES :
AFKO,
AFPO.
*----------------------------------------------------------------------
* Types
*----------------------------------------------------------------------*
TYPES :
BEGIN OF TY_OUTTAB1,
MATNR TYPE AFPO-MATNR,
VERID TYPE AFPO-VERID,
MAKTX TYPE MAKT-MAKTX,
AUFNR TYPE AFKO-AUFNR,
STLNR TYPE AFKO-STLNR,
GSTRI TYPE AFKO-GSTRI,
GETRI TYPE AFKO-GETRI,
GAMNG TYPE AFKO-GAMNG,
GMEIN TYPE AFKO-GMEIN,
IGMNG TYPE AFKO-IGMNG,
MATNR1 TYPE MSEG-MATNR,
ERFMG TYPE MSEG-ERFMG,
ERFME TYPE MSEG-ERFME,
W_QTY TYPE MSEG-ERFMG,
STLAL TYPE AFKO-STLAL,
SBMNG TYPE AFKO-SBMNG,
SBMEH TYPE AFKO-SBMEH,
IDNRK TYPE STPO-IDNRK,
MENGE TYPE STPO-MENGE,
MEINS TYPE STPO-MEINS,
W_QTY1 TYPE STPO-MENGE,
MAKTX1 TYPE MAKT-MAKTX,
MAKTX2 TYPE MAKT-MAKTX,
END OF TY_OUTTAB1.
*----------------------------------------------------------------------
* Data Begin with W_
*----------------------------------------------------------------------*
*DATA DECLARATION
DATA :
W_ERFMG1 TYPE MSEG-ERFMG,
W_ERFME1 TYPE MSEG-ERFME,
W_ERFMG2 TYPE MSEG-ERFMG,
W_ERFME2 TYPE MSEG-ERFME.
*Data declaration For ALV
DATA :
W_FIELDCATALOG TYPE SLIS_T_FIELDCAT_ALV WITH HEADER LINE,
W_LAYOUT TYPE SLIS_LAYOUT_ALV,
W_LIST_TOP_OF_PAGE TYPE SLIS_T_LISTHEADER,
W_EVENTS TYPE SLIS_T_EVENT,
W_TOP_OF_PAGE TYPE SLIS_FORMNAME VALUE 'TOP_OF_PAGE',
W_VARIANT TYPE DISVARIANT,
W_REPID LIKE SY-REPID.
*----------------------------------------------------------------------
* Internal Tables Begin With IT_
*----------------------------------------------------------------------*
DATA :
IT_OUTTAB1 TYPE TY_OUTTAB1 OCCURS 0 WITH HEADER LINE,
IT_MAKT TYPE STANDARD TABLE OF MAKT WITH HEADER LINE,
IT_STPO TYPE STANDARD TABLE OF STPO WITH HEADER LINE,
IT_MSEG TYPE STANDARD TABLE OF MSEG WITH HEADER LINE.
*----------------------------------------------------------------------*
* Select-Screen
*----------------------------------------------------------------------*
SELECTION-SCREEN : BEGIN OF BLOCK BLK WITH FRAME.
PARAMETERS : PR_WERKS TYPE AFPO-PWERK OBLIGATORY.
SELECT-OPTIONS :
SO_GETRI FOR AFKO-GETRI, "OBLIGATORY,
SO_MATNR FOR AFPO-MATNR.
SELECTION-SCREEN : END OF BLOCK BLK.
*----------------------------------------------------------------------*
* Initialization
*----------------------------------------------------------------------*
INITIALIZATION.
W_REPID = SY-REPID.
REFRESH : IT_OUTTAB1.
CLEAR : IT_OUTTAB1.
*----------------------------------------------------------------------*
* At selection-screen
*----------------------------------------------------------------------*
AT SELECTION-SCREEN.
PERFORM VALIDATE_DATA.
*----------------------------------------------------------------------*
* Start-of-selection
*----------------------------------------------------------------------*
START-OF-SELECTION.
PERFORM DATA_FETCHING.
PERFORM EVENTTAB_BUILD_TEMP USING W_EVENTS[].
PERFORM FIELDCAT_INIT .
PERFORM DISPLAY_DATA USING W_LIST_TOP_OF_PAGE[].
SORT IT_OUTTAB1 ASCENDING BY GSTRI.
*----------------------------------------------------------------------*
* End-of-selection
*----------------------------------------------------------------------*
END-OF-SELECTION.
PERFORM DISPLAY_LIST.
*&---------------------------------------------------------------------*
*& Form validate_data
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM VALIDATE_DATA .
SELECT AK~AUFNR AK~GSTRI AK~GETRI AK~GAMNG AK~GMEIN AK~IGMNG AK~STLAL
AK~SBMNG AK~SBMEH AK~STLNR AP~PWERK AP~MATNR AP~VERID
INTO CORRESPONDING FIELDS OF TABLE IT_OUTTAB1
FROM AFKO AS AK INNER JOIN AFPO AS AP
ON AK~AUFNR = AP~AUFNR
WHERE PWERK = PR_WERKS
AND GETRI IN SO_GETRI
AND MATNR IN SO_MATNR
AND ELIKZ = 'X'.
IF SY-SUBRC <> 0.
MESSAGE E002(ZPP).
ENDIF.
ENDFORM. " validate_data
*&---------------------------------------------------------------------*
*& Form data_fetching
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM DATA_FETCHING .
*FOR GETTING THE MATERIAL DESCRIPTION
SELECT MATNR MAKTX FROM MAKT INTO CORRESPONDING
FIELDS OF TABLE IT_MAKT.
SELECT MATNR BWART AUFNR ERFMG ERFME FROM MSEG INTO CORRESPONDING
FIELDS OF TABLE IT_MSEG
WHERE BWART = '261'
OR BWART = '262'.
SELECT STLTY STLNR IDNRK MENGE MEINS FROM STPO INTO CORRESPONDING
FIELDS OF TABLE IT_STPO
WHERE STLTY = 'M'.
LOOP AT IT_OUTTAB1.
READ TABLE IT_MAKT WITH KEY MATNR = IT_OUTTAB1-MATNR.
READ TABLE IT_MSEG WITH KEY AUFNR = IT_OUTTAB1-AUFNR.
READ TABLE IT_STPO WITH KEY STLNR = IT_OUTTAB1-STLNR.
IT_OUTTAB1-MATNR1 = IT_MSEG-MATNR.
IF IT_OUTTAB1-MATNR1 <> ' '.
READ TABLE IT_MAKT WITH KEY MATNR = IT_OUTTAB1-MATNR1.
IT_OUTTAB1-MAKTX1 = IT_MAKT-MAKTX.
ENDIF.
* LOOP AT IT_MSEG.
IF IT_MSEG-BWART = '261'.
W_ERFMG1 = IT_MSEG-ERFMG.
W_ERFME1 = IT_MSEG-ERFME.
CLEAR IT_MSEG.
W_ERFMG1 = W_ERFMG1 + IT_MSEG-ERFMG.
* W_ERFME1 = W_ERFME1 + IT_MSEG-ERFME.
ENDIF.
IF IT_MSEG-BWART = '262'.
W_ERFMG2 = IT_MSEG-ERFMG.
W_ERFME1 = IT_MSEG-ERFME.
CLEAR IT_MSEG.
W_ERFMG2 = W_ERFMG2 + IT_MSEG-ERFMG.
* W_ERFME2 = W_ERFME2 + IT_MSEG-ERFME.
ENDIF.
* ENDLOOP.
IT_OUTTAB1-ERFMG = W_ERFMG1 - W_ERFMG2.
IT_OUTTAB1-ERFME = W_ERFME1 .
IF IT_OUTTAB1-IGMNG <> '0' AND IT_OUTTAB1-ERFMG <> '0'.
IT_OUTTAB1-W_QTY = ( IT_OUTTAB1-IGMNG / IT_OUTTAB1-ERFMG ).
ENDIF.
IT_OUTTAB1-MAKTX = IT_MAKT-MAKTX.
IT_OUTTAB1-IDNRK = IT_STPO-IDNRK.
IT_OUTTAB1-MENGE = IT_STPO-MENGE.
IT_OUTTAB1-MEINS = IT_STPO-MEINS.
IF IT_OUTTAB1-MENGE <> '0' AND IT_OUTTAB1-SBMNG <> '0'.
IT_OUTTAB1-W_QTY1 = ( IT_OUTTAB1-MENGE / IT_OUTTAB1-SBMNG ).
ENDIF.
IF IT_OUTTAB1-IDNRK <> ' '.
READ TABLE IT_MAKT WITH KEY MATNR = IT_OUTTAB1-IDNRK.
IT_OUTTAB1-MAKTX2 = IT_MAKT-MAKTX.
ENDIF.
SHIFT IT_OUTTAB1-MATNR LEFT DELETING LEADING '0'.
SHIFT IT_OUTTAB1-AUFNR LEFT DELETING LEADING '0'.
SHIFT IT_OUTTAB1-IDNRK LEFT DELETING LEADING '0'.
SHIFT IT_OUTTAB1-MATNR1 LEFT DELETING LEADING '0'.
MODIFY IT_OUTTAB1 TRANSPORTING MATNR MAKTX MATNR1 AUFNR
ERFMG ERFME W_QTY IDNRK
MENGE MEINS W_QTY1 MAKTX1 MAKTX2.
CLEAR : IT_OUTTAB1.
CLEAR : IT_MAKT,IT_STPO,IT_MSEG.
ENDLOOP.
ENDFORM. " data_fetching
*&---------------------------------------------------------------------*
*& Form eventtab_build_temp
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->RT_EVENTS text
*----------------------------------------------------------------------*
FORM EVENTTAB_BUILD_TEMP USING RT_EVENTS TYPE SLIS_T_EVENT.
.
DATA LS_EVENT TYPE SLIS_ALV_EVENT.
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
I_LIST_TYPE = 0
IMPORTING
ET_EVENTS = RT_EVENTS
EXCEPTIONS
LIST_TYPE_WRONG = 1
OTHERS = 2.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
READ TABLE RT_EVENTS WITH KEY NAME = SLIS_EV_TOP_OF_PAGE INTO LS_EVENT.
IF SY-SUBRC = 0.
MOVE W_TOP_OF_PAGE TO LS_EVENT-FORM.
APPEND LS_EVENT TO RT_EVENTS.
ENDIF.
ENDFORM. " eventtab_build_temp
*&---------------------------------------------------------------------*
*& Form fieldcat_init
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM FIELDCAT_INIT .
DATA :
LW_FIELDCAT TYPE SLIS_FIELDCAT_ALV.
CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'MATNR'.
LW_FIELDCAT-SELTEXT_M = 'Material Number'.
LW_FIELDCAT-OUTPUTLEN = 18.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.
CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'MAKTX'.
LW_FIELDCAT-SELTEXT_M = 'Material Description'.
LW_FIELDCAT-OUTPUTLEN = 40.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.
CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'AUFNR'.
LW_FIELDCAT-SELTEXT_M = 'Process Order Number'.
LW_FIELDCAT-OUTPUTLEN = 12.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.
CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'GSTRI'.
LW_FIELDCAT-SELTEXT_M = 'Actual Start Date'.
LW_FIELDCAT-OUTPUTLEN = 10.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.
CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'GETRI'.
LW_FIELDCAT-SELTEXT_M = 'Actual Finish Date'.
LW_FIELDCAT-OUTPUTLEN = 10.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.
CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'VERID'.
LW_FIELDCAT-SELTEXT_M = 'Version Id'.
LW_FIELDCAT-OUTPUTLEN = 4.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.
CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'GAMNG'.
LW_FIELDCAT-SELTEXT_M = 'Order Plan Qty'.
LW_FIELDCAT-OUTPUTLEN = 16.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.
CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'GMEIN'.
LW_FIELDCAT-SELTEXT_M = 'Production Unit'.
LW_FIELDCAT-OUTPUTLEN = 3.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.
CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'IGMNG'.
LW_FIELDCAT-SELTEXT_M = 'Delivery Qty'.
LW_FIELDCAT-OUTPUTLEN = 16.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.
CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'MATNR1'.
LW_FIELDCAT-SELTEXT_M = 'Component In Orde'.
LW_FIELDCAT-OUTPUTLEN = 18.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.
CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'MAKTX1'.
LW_FIELDCAT-SELTEXT_M = 'Description'.
LW_FIELDCAT-OUTPUTLEN = 40.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.
CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'ERFMG'.
LW_FIELDCAT-SELTEXT_M = 'Qty. Issued'.
LW_FIELDCAT-OUTPUTLEN = 18.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.
CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'ERFME'.
LW_FIELDCAT-SELTEXT_M = 'UOE'.
LW_FIELDCAT-OUTPUTLEN = 3.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.
CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'W_QTY'.
LW_FIELDCAT-SELTEXT_M = 'Qty./Unit Of Del. Qty'.
LW_FIELDCAT-OUTPUTLEN = 18.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.
CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'STLAL'.
LW_FIELDCAT-SELTEXT_M = 'ALT BOM'.
LW_FIELDCAT-OUTPUTLEN = 5.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.
CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'SBMNG'.
LW_FIELDCAT-SELTEXT_M = 'BASE QTY'.
LW_FIELDCAT-OUTPUTLEN = 18.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.
CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'SBMEH'.
LW_FIELDCAT-SELTEXT_M = 'Base Unit'.
LW_FIELDCAT-OUTPUTLEN = 3.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.
CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'IDNRK'.
LW_FIELDCAT-SELTEXT_M = 'COMP IN BOM'.
LW_FIELDCAT-OUTPUTLEN = 18.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.
CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'MAKTX2'.
LW_FIELDCAT-SELTEXT_M = 'Description'.
LW_FIELDCAT-OUTPUTLEN = 18.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.
CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'MENGE'.
LW_FIELDCAT-SELTEXT_M = 'QTY IN BOM'.
LW_FIELDCAT-OUTPUTLEN = 18.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.
CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'MEINS'.
LW_FIELDCAT-SELTEXT_M = 'UOM'.
LW_FIELDCAT-OUTPUTLEN = 3.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.
CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'W_QTY1'.
LW_FIELDCAT-SELTEXT_M = 'Qty/Base Qty'.
LW_FIELDCAT-OUTPUTLEN = 18.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.
ENDFORM. " fieldcat_init
*---------------------------------------------------------------------*
* FORM TOP_OF_PAGE *
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
FORM TOP_OF_PAGE.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
IT_LIST_COMMENTARY = W_LIST_TOP_OF_PAGE.
* I_LOGO =
* I_END_OF_LIST_GRID =
ENDFORM. "TOP_OF_PAGE
*&---------------------------------------------------------------------*
*& Form display_data
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_W_LIST_TOP_OF_PAGE[] text
*----------------------------------------------------------------------*
FORM DISPLAY_DATA USING LT_TOP_OF_PAGE TYPE SLIS_T_LISTHEADER.
DATA : LW_LINE TYPE SLIS_LISTHEADER.
DATA : LW_PLAT TYPE WERKS.
DATA : LW_TXT1(30) TYPE C.
DATA : LW_NAME1 TYPE T001W-NAME1.
DATA : LW_TXT2(45) TYPE C.
DATA : LW_TXT3(20) TYPE C.
DATA : LW_DAT1(4) TYPE C.
DATA : LW_DAT2(3) TYPE C.
DATA : LW_DAT3(3) TYPE C.
DATA : LW_LDATE TYPE AFKO-GLTRI.
DATA : LW_HDATE TYPE AFKO-GLTRI.
DATA : LW_LDAT1(4) TYPE C.
DATA : LW_LDAT2(3) TYPE C.
DATA : LW_LDAT3(3) TYPE C.
DATA : LW_HDAT1(4) TYPE C.
DATA : LW_HDAT2(3) TYPE C.
DATA : LW_HDAT3(3) TYPE C.
DATA : LW_TXT4(40) TYPE C.
LW_PLAT = PR_WERKS.
CONCATENATE 'Plant Code : ' LW_PLAT INTO LW_TXT1 SEPARATED BY SPACE.
SELECT SINGLE NAME1 FROM T001W INTO LW_NAME1
WHERE WERKS = LW_PLAT.
CONCATENATE 'Plant Name : ' LW_NAME1 INTO LW_TXT2 SEPARATED BY SPACE.
LW_DAT1 = SY-DATUM(4).
LW_DAT2 = SY-DATUM+4(2).
LW_DAT3 = SY-DATUM+6(2).
CONCATENATE LW_DAT3 '-' INTO LW_DAT3.
CONCATENATE LW_DAT2 '-' INTO LW_DAT2.
CONCATENATE 'Date : ' LW_DAT3 LW_DAT2 LW_DAT1
INTO LW_TXT3 SEPARATED BY SPACE.
LW_LDATE = SO_GETRI-LOW.
LW_HDATE = SO_GETRI-HIGH.
LW_LDAT1 = LW_LDATE(4).
LW_LDAT2 = LW_LDATE+4(2).
LW_LDAT3 = LW_LDATE+6(2).
CONCATENATE LW_LDAT3 '.' INTO LW_LDAT3.
CONCATENATE LW_LDAT2 '.' INTO LW_LDAT2.
LW_HDAT1 = LW_HDATE(4).
LW_HDAT2 = LW_HDATE+4(2).
LW_HDAT3 = LW_HDATE+6(2).
CONCATENATE LW_HDAT3 '.' INTO LW_HDAT3.
CONCATENATE LW_HDAT2 '.' INTO LW_HDAT2.
CONCATENATE 'Period : ' LW_LDAT3 LW_LDAT2 LW_LDAT1 '-' LW_HDAT3
LW_HDAT2 LW_HDAT1 INTO LW_TXT4 SEPARATED BY SPACE.
CLEAR LW_LINE.
LW_LINE-TYP = 'H'.
LW_LINE-INFO = 'Consumption Report Of BOM Components V/S Prc. Order'.
APPEND LW_LINE TO LT_TOP_OF_PAGE.
CLEAR LW_LINE.
CLEAR LW_LINE.
LW_LINE-TYP = 'S'.
LW_LINE-INFO = LW_TXT1.
APPEND LW_LINE TO LT_TOP_OF_PAGE.
CLEAR LW_LINE.
CLEAR LW_LINE.
LW_LINE-TYP = 'S'.
LW_LINE-INFO = LW_TXT2.
APPEND LW_LINE TO LT_TOP_OF_PAGE.
CLEAR LW_LINE.
CLEAR LW_LINE.
LW_LINE-TYP = 'S'.
LW_LINE-INFO = LW_TXT3.
APPEND LW_LINE TO LT_TOP_OF_PAGE.
CLEAR LW_LINE.
CLEAR LW_LINE.
LW_LINE-TYP = 'S'.
LW_LINE-INFO = LW_TXT4.
APPEND LW_LINE TO LT_TOP_OF_PAGE.
CLEAR LW_LINE.
ENDFORM. " display_data
*&---------------------------------------------------------------------*
*& Form display_list
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM DISPLAY_LIST .
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = W_REPID
IS_LAYOUT = W_LAYOUT
IT_FIELDCAT = W_FIELDCATALOG[]
IT_EVENTS = W_EVENTS[]
I_SAVE = 'U'
IS_VARIANT = W_VARIANT
TABLES
T_OUTTAB = IT_OUTTAB1[]
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDFORM. " display_list
*& Report ZVVF_CR019_BOMVSPOCOMP *
*& *
*&---------------------------------------------------------------------*
*& *
*& *
*&---------------------------------------------------------------------*
*---------------------------------------------------------------------*
* Report ZVVF_CR019_BOMVSPOCOMP
*
*---------------------------------------------------------------------*
* *
* MODULE : Production Planning *
* *
*---------------------------------------------------------------------*
* Objective : Program for BOM Component V/s Process Order Confn *
*
*
* *
* Program : Update Tables ( ) Download Data ( ) Outputs List (X)*
* Technical Specs No : *
* Date Created : *
* Author :
*
* Location : *
* LDB : *
* *
*---------------------------------------------------------------------*
REPORT ZVVF_CR019_BOMVSPOCOMP .
*----------------------------------------------------------------------*
* Type-pools
*----------------------------------------------------------------------*
TYPE-POOLS :
SLIS.
*----------------------------------------------------------------------*
* Tables
*----------------------------------------------------------------------*
TABLES :
AFKO,
AFPO.
*----------------------------------------------------------------------
* Types
*----------------------------------------------------------------------*
TYPES :
BEGIN OF TY_OUTTAB1,
MATNR TYPE AFPO-MATNR,
VERID TYPE AFPO-VERID,
MAKTX TYPE MAKT-MAKTX,
AUFNR TYPE AFKO-AUFNR,
STLNR TYPE AFKO-STLNR,
GSTRI TYPE AFKO-GSTRI,
GETRI TYPE AFKO-GETRI,
GAMNG TYPE AFKO-GAMNG,
GMEIN TYPE AFKO-GMEIN,
IGMNG TYPE AFKO-IGMNG,
MATNR1 TYPE MSEG-MATNR,
ERFMG TYPE MSEG-ERFMG,
ERFME TYPE MSEG-ERFME,
W_QTY TYPE MSEG-ERFMG,
STLAL TYPE AFKO-STLAL,
SBMNG TYPE AFKO-SBMNG,
SBMEH TYPE AFKO-SBMEH,
IDNRK TYPE STPO-IDNRK,
MENGE TYPE STPO-MENGE,
MEINS TYPE STPO-MEINS,
W_QTY1 TYPE STPO-MENGE,
MAKTX1 TYPE MAKT-MAKTX,
MAKTX2 TYPE MAKT-MAKTX,
END OF TY_OUTTAB1.
*----------------------------------------------------------------------
* Data Begin with W_
*----------------------------------------------------------------------*
*DATA DECLARATION
DATA :
W_ERFMG1 TYPE MSEG-ERFMG,
W_ERFME1 TYPE MSEG-ERFME,
W_ERFMG2 TYPE MSEG-ERFMG,
W_ERFME2 TYPE MSEG-ERFME.
*Data declaration For ALV
DATA :
W_FIELDCATALOG TYPE SLIS_T_FIELDCAT_ALV WITH HEADER LINE,
W_LAYOUT TYPE SLIS_LAYOUT_ALV,
W_LIST_TOP_OF_PAGE TYPE SLIS_T_LISTHEADER,
W_EVENTS TYPE SLIS_T_EVENT,
W_TOP_OF_PAGE TYPE SLIS_FORMNAME VALUE 'TOP_OF_PAGE',
W_VARIANT TYPE DISVARIANT,
W_REPID LIKE SY-REPID.
*----------------------------------------------------------------------
* Internal Tables Begin With IT_
*----------------------------------------------------------------------*
DATA :
IT_OUTTAB1 TYPE TY_OUTTAB1 OCCURS 0 WITH HEADER LINE,
IT_MAKT TYPE STANDARD TABLE OF MAKT WITH HEADER LINE,
IT_STPO TYPE STANDARD TABLE OF STPO WITH HEADER LINE,
IT_MSEG TYPE STANDARD TABLE OF MSEG WITH HEADER LINE.
*----------------------------------------------------------------------*
* Select-Screen
*----------------------------------------------------------------------*
SELECTION-SCREEN : BEGIN OF BLOCK BLK WITH FRAME.
PARAMETERS : PR_WERKS TYPE AFPO-PWERK OBLIGATORY.
SELECT-OPTIONS :
SO_GETRI FOR AFKO-GETRI, "OBLIGATORY,
SO_MATNR FOR AFPO-MATNR.
SELECTION-SCREEN : END OF BLOCK BLK.
*----------------------------------------------------------------------*
* Initialization
*----------------------------------------------------------------------*
INITIALIZATION.
W_REPID = SY-REPID.
REFRESH : IT_OUTTAB1.
CLEAR : IT_OUTTAB1.
*----------------------------------------------------------------------*
* At selection-screen
*----------------------------------------------------------------------*
AT SELECTION-SCREEN.
PERFORM VALIDATE_DATA.
*----------------------------------------------------------------------*
* Start-of-selection
*----------------------------------------------------------------------*
START-OF-SELECTION.
PERFORM DATA_FETCHING.
PERFORM EVENTTAB_BUILD_TEMP USING W_EVENTS[].
PERFORM FIELDCAT_INIT .
PERFORM DISPLAY_DATA USING W_LIST_TOP_OF_PAGE[].
SORT IT_OUTTAB1 ASCENDING BY GSTRI.
*----------------------------------------------------------------------*
* End-of-selection
*----------------------------------------------------------------------*
END-OF-SELECTION.
PERFORM DISPLAY_LIST.
*&---------------------------------------------------------------------*
*& Form validate_data
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM VALIDATE_DATA .
SELECT AK~AUFNR AK~GSTRI AK~GETRI AK~GAMNG AK~GMEIN AK~IGMNG AK~STLAL
AK~SBMNG AK~SBMEH AK~STLNR AP~PWERK AP~MATNR AP~VERID
INTO CORRESPONDING FIELDS OF TABLE IT_OUTTAB1
FROM AFKO AS AK INNER JOIN AFPO AS AP
ON AK~AUFNR = AP~AUFNR
WHERE PWERK = PR_WERKS
AND GETRI IN SO_GETRI
AND MATNR IN SO_MATNR
AND ELIKZ = 'X'.
IF SY-SUBRC <> 0.
MESSAGE E002(ZPP).
ENDIF.
ENDFORM. " validate_data
*&---------------------------------------------------------------------*
*& Form data_fetching
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM DATA_FETCHING .
*FOR GETTING THE MATERIAL DESCRIPTION
SELECT MATNR MAKTX FROM MAKT INTO CORRESPONDING
FIELDS OF TABLE IT_MAKT.
SELECT MATNR BWART AUFNR ERFMG ERFME FROM MSEG INTO CORRESPONDING
FIELDS OF TABLE IT_MSEG
WHERE BWART = '261'
OR BWART = '262'.
SELECT STLTY STLNR IDNRK MENGE MEINS FROM STPO INTO CORRESPONDING
FIELDS OF TABLE IT_STPO
WHERE STLTY = 'M'.
LOOP AT IT_OUTTAB1.
READ TABLE IT_MAKT WITH KEY MATNR = IT_OUTTAB1-MATNR.
READ TABLE IT_MSEG WITH KEY AUFNR = IT_OUTTAB1-AUFNR.
READ TABLE IT_STPO WITH KEY STLNR = IT_OUTTAB1-STLNR.
IT_OUTTAB1-MATNR1 = IT_MSEG-MATNR.
IF IT_OUTTAB1-MATNR1 <> ' '.
READ TABLE IT_MAKT WITH KEY MATNR = IT_OUTTAB1-MATNR1.
IT_OUTTAB1-MAKTX1 = IT_MAKT-MAKTX.
ENDIF.
* LOOP AT IT_MSEG.
IF IT_MSEG-BWART = '261'.
W_ERFMG1 = IT_MSEG-ERFMG.
W_ERFME1 = IT_MSEG-ERFME.
CLEAR IT_MSEG.
W_ERFMG1 = W_ERFMG1 + IT_MSEG-ERFMG.
* W_ERFME1 = W_ERFME1 + IT_MSEG-ERFME.
ENDIF.
IF IT_MSEG-BWART = '262'.
W_ERFMG2 = IT_MSEG-ERFMG.
W_ERFME1 = IT_MSEG-ERFME.
CLEAR IT_MSEG.
W_ERFMG2 = W_ERFMG2 + IT_MSEG-ERFMG.
* W_ERFME2 = W_ERFME2 + IT_MSEG-ERFME.
ENDIF.
* ENDLOOP.
IT_OUTTAB1-ERFMG = W_ERFMG1 - W_ERFMG2.
IT_OUTTAB1-ERFME = W_ERFME1 .
IF IT_OUTTAB1-IGMNG <> '0' AND IT_OUTTAB1-ERFMG <> '0'.
IT_OUTTAB1-W_QTY = ( IT_OUTTAB1-IGMNG / IT_OUTTAB1-ERFMG ).
ENDIF.
IT_OUTTAB1-MAKTX = IT_MAKT-MAKTX.
IT_OUTTAB1-IDNRK = IT_STPO-IDNRK.
IT_OUTTAB1-MENGE = IT_STPO-MENGE.
IT_OUTTAB1-MEINS = IT_STPO-MEINS.
IF IT_OUTTAB1-MENGE <> '0' AND IT_OUTTAB1-SBMNG <> '0'.
IT_OUTTAB1-W_QTY1 = ( IT_OUTTAB1-MENGE / IT_OUTTAB1-SBMNG ).
ENDIF.
IF IT_OUTTAB1-IDNRK <> ' '.
READ TABLE IT_MAKT WITH KEY MATNR = IT_OUTTAB1-IDNRK.
IT_OUTTAB1-MAKTX2 = IT_MAKT-MAKTX.
ENDIF.
SHIFT IT_OUTTAB1-MATNR LEFT DELETING LEADING '0'.
SHIFT IT_OUTTAB1-AUFNR LEFT DELETING LEADING '0'.
SHIFT IT_OUTTAB1-IDNRK LEFT DELETING LEADING '0'.
SHIFT IT_OUTTAB1-MATNR1 LEFT DELETING LEADING '0'.
MODIFY IT_OUTTAB1 TRANSPORTING MATNR MAKTX MATNR1 AUFNR
ERFMG ERFME W_QTY IDNRK
MENGE MEINS W_QTY1 MAKTX1 MAKTX2.
CLEAR : IT_OUTTAB1.
CLEAR : IT_MAKT,IT_STPO,IT_MSEG.
ENDLOOP.
ENDFORM. " data_fetching
*&---------------------------------------------------------------------*
*& Form eventtab_build_temp
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->RT_EVENTS text
*----------------------------------------------------------------------*
FORM EVENTTAB_BUILD_TEMP USING RT_EVENTS TYPE SLIS_T_EVENT.
.
DATA LS_EVENT TYPE SLIS_ALV_EVENT.
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
I_LIST_TYPE = 0
IMPORTING
ET_EVENTS = RT_EVENTS
EXCEPTIONS
LIST_TYPE_WRONG = 1
OTHERS = 2.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
READ TABLE RT_EVENTS WITH KEY NAME = SLIS_EV_TOP_OF_PAGE INTO LS_EVENT.
IF SY-SUBRC = 0.
MOVE W_TOP_OF_PAGE TO LS_EVENT-FORM.
APPEND LS_EVENT TO RT_EVENTS.
ENDIF.
ENDFORM. " eventtab_build_temp
*&---------------------------------------------------------------------*
*& Form fieldcat_init
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM FIELDCAT_INIT .
DATA :
LW_FIELDCAT TYPE SLIS_FIELDCAT_ALV.
CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'MATNR'.
LW_FIELDCAT-SELTEXT_M = 'Material Number'.
LW_FIELDCAT-OUTPUTLEN = 18.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.
CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'MAKTX'.
LW_FIELDCAT-SELTEXT_M = 'Material Description'.
LW_FIELDCAT-OUTPUTLEN = 40.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.
CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'AUFNR'.
LW_FIELDCAT-SELTEXT_M = 'Process Order Number'.
LW_FIELDCAT-OUTPUTLEN = 12.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.
CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'GSTRI'.
LW_FIELDCAT-SELTEXT_M = 'Actual Start Date'.
LW_FIELDCAT-OUTPUTLEN = 10.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.
CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'GETRI'.
LW_FIELDCAT-SELTEXT_M = 'Actual Finish Date'.
LW_FIELDCAT-OUTPUTLEN = 10.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.
CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'VERID'.
LW_FIELDCAT-SELTEXT_M = 'Version Id'.
LW_FIELDCAT-OUTPUTLEN = 4.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.
CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'GAMNG'.
LW_FIELDCAT-SELTEXT_M = 'Order Plan Qty'.
LW_FIELDCAT-OUTPUTLEN = 16.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.
CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'GMEIN'.
LW_FIELDCAT-SELTEXT_M = 'Production Unit'.
LW_FIELDCAT-OUTPUTLEN = 3.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.
CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'IGMNG'.
LW_FIELDCAT-SELTEXT_M = 'Delivery Qty'.
LW_FIELDCAT-OUTPUTLEN = 16.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.
CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'MATNR1'.
LW_FIELDCAT-SELTEXT_M = 'Component In Orde'.
LW_FIELDCAT-OUTPUTLEN = 18.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.
CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'MAKTX1'.
LW_FIELDCAT-SELTEXT_M = 'Description'.
LW_FIELDCAT-OUTPUTLEN = 40.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.
CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'ERFMG'.
LW_FIELDCAT-SELTEXT_M = 'Qty. Issued'.
LW_FIELDCAT-OUTPUTLEN = 18.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.
CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'ERFME'.
LW_FIELDCAT-SELTEXT_M = 'UOE'.
LW_FIELDCAT-OUTPUTLEN = 3.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.
CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'W_QTY'.
LW_FIELDCAT-SELTEXT_M = 'Qty./Unit Of Del. Qty'.
LW_FIELDCAT-OUTPUTLEN = 18.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.
CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'STLAL'.
LW_FIELDCAT-SELTEXT_M = 'ALT BOM'.
LW_FIELDCAT-OUTPUTLEN = 5.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.
CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'SBMNG'.
LW_FIELDCAT-SELTEXT_M = 'BASE QTY'.
LW_FIELDCAT-OUTPUTLEN = 18.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.
CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'SBMEH'.
LW_FIELDCAT-SELTEXT_M = 'Base Unit'.
LW_FIELDCAT-OUTPUTLEN = 3.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.
CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'IDNRK'.
LW_FIELDCAT-SELTEXT_M = 'COMP IN BOM'.
LW_FIELDCAT-OUTPUTLEN = 18.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.
CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'MAKTX2'.
LW_FIELDCAT-SELTEXT_M = 'Description'.
LW_FIELDCAT-OUTPUTLEN = 18.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.
CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'MENGE'.
LW_FIELDCAT-SELTEXT_M = 'QTY IN BOM'.
LW_FIELDCAT-OUTPUTLEN = 18.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.
CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'MEINS'.
LW_FIELDCAT-SELTEXT_M = 'UOM'.
LW_FIELDCAT-OUTPUTLEN = 3.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.
CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'W_QTY1'.
LW_FIELDCAT-SELTEXT_M = 'Qty/Base Qty'.
LW_FIELDCAT-OUTPUTLEN = 18.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.
ENDFORM. " fieldcat_init
*---------------------------------------------------------------------*
* FORM TOP_OF_PAGE *
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
FORM TOP_OF_PAGE.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
IT_LIST_COMMENTARY = W_LIST_TOP_OF_PAGE.
* I_LOGO =
* I_END_OF_LIST_GRID =
ENDFORM. "TOP_OF_PAGE
*&---------------------------------------------------------------------*
*& Form display_data
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_W_LIST_TOP_OF_PAGE[] text
*----------------------------------------------------------------------*
FORM DISPLAY_DATA USING LT_TOP_OF_PAGE TYPE SLIS_T_LISTHEADER.
DATA : LW_LINE TYPE SLIS_LISTHEADER.
DATA : LW_PLAT TYPE WERKS.
DATA : LW_TXT1(30) TYPE C.
DATA : LW_NAME1 TYPE T001W-NAME1.
DATA : LW_TXT2(45) TYPE C.
DATA : LW_TXT3(20) TYPE C.
DATA : LW_DAT1(4) TYPE C.
DATA : LW_DAT2(3) TYPE C.
DATA : LW_DAT3(3) TYPE C.
DATA : LW_LDATE TYPE AFKO-GLTRI.
DATA : LW_HDATE TYPE AFKO-GLTRI.
DATA : LW_LDAT1(4) TYPE C.
DATA : LW_LDAT2(3) TYPE C.
DATA : LW_LDAT3(3) TYPE C.
DATA : LW_HDAT1(4) TYPE C.
DATA : LW_HDAT2(3) TYPE C.
DATA : LW_HDAT3(3) TYPE C.
DATA : LW_TXT4(40) TYPE C.
LW_PLAT = PR_WERKS.
CONCATENATE 'Plant Code : ' LW_PLAT INTO LW_TXT1 SEPARATED BY SPACE.
SELECT SINGLE NAME1 FROM T001W INTO LW_NAME1
WHERE WERKS = LW_PLAT.
CONCATENATE 'Plant Name : ' LW_NAME1 INTO LW_TXT2 SEPARATED BY SPACE.
LW_DAT1 = SY-DATUM(4).
LW_DAT2 = SY-DATUM+4(2).
LW_DAT3 = SY-DATUM+6(2).
CONCATENATE LW_DAT3 '-' INTO LW_DAT3.
CONCATENATE LW_DAT2 '-' INTO LW_DAT2.
CONCATENATE 'Date : ' LW_DAT3 LW_DAT2 LW_DAT1
INTO LW_TXT3 SEPARATED BY SPACE.
LW_LDATE = SO_GETRI-LOW.
LW_HDATE = SO_GETRI-HIGH.
LW_LDAT1 = LW_LDATE(4).
LW_LDAT2 = LW_LDATE+4(2).
LW_LDAT3 = LW_LDATE+6(2).
CONCATENATE LW_LDAT3 '.' INTO LW_LDAT3.
CONCATENATE LW_LDAT2 '.' INTO LW_LDAT2.
LW_HDAT1 = LW_HDATE(4).
LW_HDAT2 = LW_HDATE+4(2).
LW_HDAT3 = LW_HDATE+6(2).
CONCATENATE LW_HDAT3 '.' INTO LW_HDAT3.
CONCATENATE LW_HDAT2 '.' INTO LW_HDAT2.
CONCATENATE 'Period : ' LW_LDAT3 LW_LDAT2 LW_LDAT1 '-' LW_HDAT3
LW_HDAT2 LW_HDAT1 INTO LW_TXT4 SEPARATED BY SPACE.
CLEAR LW_LINE.
LW_LINE-TYP = 'H'.
LW_LINE-INFO = 'Consumption Report Of BOM Components V/S Prc. Order'.
APPEND LW_LINE TO LT_TOP_OF_PAGE.
CLEAR LW_LINE.
CLEAR LW_LINE.
LW_LINE-TYP = 'S'.
LW_LINE-INFO = LW_TXT1.
APPEND LW_LINE TO LT_TOP_OF_PAGE.
CLEAR LW_LINE.
CLEAR LW_LINE.
LW_LINE-TYP = 'S'.
LW_LINE-INFO = LW_TXT2.
APPEND LW_LINE TO LT_TOP_OF_PAGE.
CLEAR LW_LINE.
CLEAR LW_LINE.
LW_LINE-TYP = 'S'.
LW_LINE-INFO = LW_TXT3.
APPEND LW_LINE TO LT_TOP_OF_PAGE.
CLEAR LW_LINE.
CLEAR LW_LINE.
LW_LINE-TYP = 'S'.
LW_LINE-INFO = LW_TXT4.
APPEND LW_LINE TO LT_TOP_OF_PAGE.
CLEAR LW_LINE.
ENDFORM. " display_data
*&---------------------------------------------------------------------*
*& Form display_list
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM DISPLAY_LIST .
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = W_REPID
IS_LAYOUT = W_LAYOUT
IT_FIELDCAT = W_FIELDCATALOG[]
IT_EVENTS = W_EVENTS[]
I_SAVE = 'U'
IS_VARIANT = W_VARIANT
TABLES
T_OUTTAB = IT_OUTTAB1[]
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDFORM. " display_list
Labels:
PP Report
Report for Destruction of P.M. rejected during On-Line Rejection
REPORT ZVVF_CR017_DESTRUCTIONREP .
*---------------------------------------------------------------------*
*REPORT ZVVF_CR017_DESTRUCTIONREP *
* *
*---------------------------------------------------------------------*
* *
* MODULE : Production Planning *
* *
*---------------------------------------------------------------------*
* Objective : Report for Destruction of P.M. rejected during *
* On-Line Rejection *
* *
* *
* Program : Update Tables( ) Download Data( ) Outputs List (X) *
* Technical Specs No : *
* Date Created : *
* Author : *
* Location : *
* LDB : *
*---------------------------------------------------------------------*
*----------------------------------------------------------------------*
* Type-pools
*----------------------------------------------------------------------*
TYPE-POOLS : SLIS.
*---------------------------------------------------------------------*
* Tables *
*---------------------------------------------------------------------*
TABLES : T001W,
AFKO.
*----------------------------------------------------------------------*
* Types Begin with TY_ *
*----------------------------------------------------------------------*
TYPES : BEGIN OF TY_MSEG,
MBLNR LIKE MSEG-MBLNR,
MATNR LIKE MSEG-MATNR,
CHARG LIKE MSEG-CHARG,
AUFNR LIKE MSEG-AUFNR,
END OF TY_MSEG.
TYPES : BEGIN OF TY_MSEG1,
MATNR LIKE MSEG-MATNR,
CHARG LIKE MSEG-CHARG,
WERKS LIKE T001W-WERKS,
MBLNR LIKE MSEG-MBLNR,
EBELN LIKE MSEG-EBELN,
LIFNR LIKE MSEG-LIFNR,
NAME1 LIKE T001W-NAME1,
BUDAT LIKE MKPF-BUDAT,
END OF TY_MSEG1.
TYPES : BEGIN OF TY_MAIN,
MBLNR LIKE MSEG-MBLNR,
MATNR LIKE MSEG-MATNR,
CHARG LIKE MSEG-CHARG,
GRUND LIKE MSEG-GRUND,
ERFMG LIKE MSEG-ERFMG,
ERFME LIKE MSEG-ERFME,
BUDAT LIKE MKPF-BUDAT,
MAKTX LIKE MAKT-MAKTX,
EBELN LIKE MSEG-EBELN,
LIFNR LIKE MSEG-LIFNR,
NAME1 LIKE LFA1-NAME1,
BUDAT1 LIKE MKPF-BUDAT,
GRTXT LIKE T157E-GRTXT,
END OF TY_MAIN.
TYPES : BEGIN OF TY_T157E,
GRUND LIKE T157E-GRUND,
GRTXT LIKE T157E-GRTXT,
END OF TY_T157E.
*---------------------------------------------------------------------*
* INTERNAL TABLE Begin with IT_ *
*---------------------------------------------------------------------*
DATA : IT_MSEG TYPE STANDARD TABLE OF TY_MSEG WITH HEADER LINE.
DATA : IT_MAIN TYPE STANDARD TABLE OF TY_MAIN WITH HEADER LINE.
DATA : IT_MSEG1 TYPE STANDARD TABLE OF TY_MSEG1 WITH HEADER LINE.
DATA : IT_T157E TYPE STANDARD TABLE OF TY_T157E WITH HEADER LINE.
*---------------------------------------------------------------------*
* WORK AREAS Begin with WA_ *
*---------------------------------------------------------------------*
*----------------------------------------------------------------------*
* Constants Begin with C_ *
*----------------------------------------------------------------------*
*---------------------------------------------------------------------*
* Data Variables Begin with W_ *
*---------------------------------------------------------------------*
DATA : WA_MAIN LIKE LINE OF IT_MAIN.
DATA : W_CHARG LIKE AFPO-CHARG,
W_MATNR LIKE AFPO-MATNR,
W_MAKTX LIKE MAKT-MAKTX,
W_NAME1 LIKE T001W-NAME1,
W_TEXT1(20) TYPE C,
W_TEXT1_1(20) TYPE C,
W_TEXT2(65) TYPE C,
W_TEXT2_2(65) TYPE C,
W_TEXT3_3(65) TYPE C,
W_TEXT3(65) TYPE C,
w_text4_4(65) type c.
*--------FOR ALV
DATA : W_FIELDCATALOG TYPE SLIS_T_FIELDCAT_ALV WITH HEADER LINE,
W_LAYOUT TYPE SLIS_LAYOUT_ALV,
W_LISTHEADER TYPE SLIS_T_LISTHEADER,
W_EVENTS TYPE SLIS_T_EVENT,
W_TOP_OF_PAGE TYPE SLIS_FORMNAME VALUE 'TOP_OF_PAGE',
W_REPID TYPE SY-REPID.
DATA : W_INFO(65) TYPE C VALUE 'DESTRUCTION REPORT FOR ON-LINE REJECTION',
W_INFO1(65) TYPE C ,
W_INFO2(65) TYPE C ,
W_INFO3(65) TYPE C ,
W_INFO4(65) TYPE C ,
W_INFO5(65) TYPE C ,
W_INFO6(65) TYPE C .
*---------------------------------------------------------------------*
* parameters Begin with PR_ *
*---------------------------------------------------------------------*
SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
SELECTION-SCREEN : SKIP 1.
PARAMETERS : PR_WERKS LIKE T001W-WERKS OBLIGATORY,
PR_AUFNR LIKE AFKO-AUFNR OBLIGATORY.
SELECTION-SCREEN END OF BLOCK B1.
*---------------------------------------------------------------------*
* Select-options Begin with SO_ *
*---------------------------------------------------------------------*
*---------------------------------------------------------------------*
* INITIALIZATION *
*---------------------------------------------------------------------*
INITIALIZATION.
W_REPID = SY-REPID.
PERFORM F003_EVENTTAB_BUILD_TEMP USING W_EVENTS[].
*---------------------------------------------------------------------*
* AT SELECTION-SCREEN output.
*---------------------------------------------------------------------*
AT SELECTION-SCREEN OUTPUT .
*---------------------------------------------------------------------*
* At selection screen *
*---------------------------------------------------------------------*
AT SELECTION-SCREEN.
PERFORM F001_VALIDATE.
*---------------------------------------------------------------------*
* START-OF-SELECTION *
*---------------------------------------------------------------------*
START-OF-SELECTION .
PERFORM F004_FIELDCAT_INIT.
PERFORM F002_GET_DATA.
PERFORM F005_DISPLAY_DATA USING W_LISTHEADER[].
*---------------------------------------------------------------------*
* END-OF-SELECTION *
*---------------------------------------------------------------------*
END-OF-SELECTION.
PERFORM F006_DISPLAY_LIST.
*----------------------------------------------------------------------*
* TOP-OF-PAGE *
*----------------------------------------------------------------------*
TOP-OF-PAGE.
*----------------------------------------------------------------------*
* END-OF-PAGE *
*----------------------------------------------------------------------*
END-OF-PAGE.
*&---------------------------------------------------------------------*
*& Form F001_VALIDATE
*&---------------------------------------------------------------------*
FORM F001_VALIDATE .
DATA : LW_MBLNR LIKE MSEG-MBLNR.
SELECT MBLNR MATNR CHARG AUFNR
FROM MSEG
INTO CORRESPONDING FIELDS OF TABLE IT_MSEG
WHERE WERKS = PR_WERKS AND
AUFNR = PR_AUFNR AND
BWART = '262'.
IF SY-SUBRC NE 0.
MESSAGE E000(ZVVF_CR017_MESSAGE).
ENDIF.
SORT IT_MSEG BY MBLNR DESCENDING.
READ TABLE IT_MSEG INDEX 1.
LW_MBLNR = IT_MSEG-MBLNR.
LOOP AT IT_MSEG.
IF IT_MSEG-MBLNR NE LW_MBLNR.
DELETE IT_MSEG.
ENDIF.
ENDLOOP.
DELETE ADJACENT DUPLICATES FROM IT_MSEG COMPARING MBLNR MATNR CHARG.
SELECT SINGLE CHARG MATNR INTO (W_CHARG,W_MATNR)
FROM AFPO
WHERE AUFNR = PR_AUFNR.
IF SY-SUBRC = 0.
SELECT SINGLE MAKTX INTO W_MAKTX
FROM MAKT
WHERE MATNR = W_MATNR.
ENDIF.
SELECT SINGLE NAME1 INTO W_NAME1
FROM T001W
WHERE WERKS = PR_WERKS.
CONCATENATE 'Plant Code : ' PR_WERKS INTO W_INFO1.
CONCATENATE 'Plant Name : ' W_NAME1 INTO W_INFO2.
SHIFT PR_AUFNR LEFT DELETING LEADING '0'.
CONCATENATE 'Order Number : ' PR_AUFNR INTO W_INFO3.
CONCATENATE 'Batch Number of Order : ' W_CHARG INTO W_INFO4.
SHIFT W_MATNR LEFT DELETING LEADING '0'.
CONCATENATE 'Material : ' W_MATNR INTO W_INFO5.
CONCATENATE 'Material Description : ' W_MAKTX INTO W_INFO6.
CONCATENATE 'Prepared By :' W_TEXT1 INTO W_TEXT1.
CONCATENATE 'Recommended By :' W_TEXT2 INTO W_TEXT2.
CONCATENATE 'Destroyed By :' W_TEXT3 INTO W_TEXT3.
CONCATENATE 'Production Dept' W_TEXT1_1 INTO W_TEXT1_1.
CONCATENATE 'Accounts Dept' W_TEXT2_2 INTO W_TEXT2_2.
CONCATENATE 'Security Dept' W_TEXT3_3 INTO W_TEXT3_3.
CONCATENATE 'Q.C/Q.A.Dept' W_TEXT4_4 INTO W_TEXT4_4.
ENDFORM. " F001_VALIDATE
*&---------------------------------------------------------------------*
*& Form F002_GET_DATA
*&---------------------------------------------------------------------*
FORM F002_GET_DATA .
DATA : LW_MBLNR LIKE MSEG-MBLNR.
SELECT MS~MBLNR MS~MATNR MS~CHARG MS~GRUND MS~ERFMG MS~ERFME
MK~BUDAT
MA~MAKTX
INTO CORRESPONDING FIELDS OF TABLE IT_MAIN
FROM MSEG AS MS INNER JOIN
MKPF AS MK ON MS~MBLNR = MK~MBLNR
INNER JOIN
MAKT AS MA ON MS~MATNR = MA~MATNR
FOR ALL ENTRIES IN IT_MSEG
WHERE MS~MATNR = IT_MSEG-MATNR AND
MS~CHARG = IT_MSEG-CHARG AND
WERKS = PR_WERKS AND
BWART = '344' AND
XAUTO NOT IN ('X','S','U','L','M','W','F').
SORT IT_MAIN BY MBLNR DESCENDING.
READ TABLE IT_MAIN INDEX 1.
LW_MBLNR = IT_MAIN-MBLNR.
LOOP AT IT_MAIN.
IF IT_MAIN-MBLNR NE LW_MBLNR.
DELETE IT_MAIN.
ENDIF.
ENDLOOP.
DELETE ADJACENT DUPLICATES FROM IT_MAIN COMPARING MBLNR MATNR CHARG.
SELECT GRUND GRTXT INTO CORRESPONDING FIELDS OF TABLE IT_T157E
FROM T157E
FOR ALL ENTRIES IN IT_MAIN
WHERE GRUND = IT_MAIN-GRUND AND
BWART = '344' AND
SPRAS = 'E'.
LOOP AT IT_MAIN INTO WA_MAIN.
READ TABLE IT_T157E WITH KEY GRUND = IT_MAIN-GRUND.
IF SY-SUBRC = 0.
WA_MAIN-GRTXT = IT_T157E-GRTXT.
MODIFY IT_MAIN FROM WA_MAIN TRANSPORTING GRTXT.
ENDIF.
ENDLOOP.
SELECT MS~MATNR MS~CHARG MS~WERKS MS~MBLNR MS~EBELN MS~LIFNR
TW~NAME1
MK~BUDAT
INTO CORRESPONDING FIELDS OF TABLE IT_MSEG1
FROM MSEG AS MS INNER JOIN
LFA1 AS TW ON MS~LIFNR = TW~LIFNR
INNER JOIN
MKPF AS MK ON MS~MBLNR = MK~MBLNR
FOR ALL ENTRIES IN IT_MAIN
WHERE MATNR = IT_MAIN-MATNR AND
CHARG = IT_MAIN-CHARG AND
MS~WERKS = PR_WERKS AND
BWART IN ('101','105').
LOOP AT IT_MAIN INTO WA_MAIN.
READ TABLE IT_MSEG1 WITH KEY MATNR = IT_MAIN-MATNR CHARG = IT_MAIN-CHARG WERKS = PR_WERKS.
IF SY-SUBRC = 0.
WA_MAIN-EBELN = IT_MSEG1-EBELN.
WA_MAIN-LIFNR = IT_MSEG1-LIFNR.
WA_MAIN-NAME1 = IT_MSEG1-NAME1.
WA_MAIN-BUDAT1 = IT_MSEG1-BUDAT.
MODIFY IT_MAIN FROM WA_MAIN TRANSPORTING EBELN LIFNR NAME1 BUDAT1.
ENDIF.
ENDLOOP.
PERFORM F007_LEADING_ZEROS.
ENDFORM. " F002_GET_DATA
*&---------------------------------------------------------------------*
*& Form F003_EVENTTAB_BUILD_TEMP
*&---------------------------------------------------------------------*
FORM F003_EVENTTAB_BUILD_TEMP USING RT_EVENTS TYPE SLIS_T_EVENT.
DATA : LW_EVENT TYPE SLIS_ALV_EVENT.
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
I_LIST_TYPE = 0
IMPORTING
ET_EVENTS = RT_EVENTS
EXCEPTIONS
LIST_TYPE_WRONG = 1
OTHERS = 2.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
READ TABLE RT_EVENTS WITH KEY NAME = SLIS_EV_TOP_OF_PAGE INTO LW_EVENT.
IF SY-SUBRC = 0.
MOVE W_TOP_OF_PAGE TO LW_EVENT-FORM.
APPEND LW_EVENT TO RT_EVENTS.
ENDIF.
ENDFORM. " F003_EVENTTAB_BUILD_TEMP
*&---------------------------------------------------------------------*
*& Form F004_FIELDCAT_INIT
*&---------------------------------------------------------------------*
FORM F004_FIELDCAT_INIT .
DATA : LW_FIELDCAT TYPE SLIS_FIELDCAT_ALV.
CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'MATNR'.
LW_FIELDCAT-SELTEXT_M = 'Material No'.
LW_FIELDCAT-OUTPUTLEN = 18.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.
CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'MAKTX'.
LW_FIELDCAT-SELTEXT_M = 'Material Description'.
LW_FIELDCAT-OUTPUTLEN = 40.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.
CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'BUDAT'.
LW_FIELDCAT-SELTEXT_M = 'Date of Rejection'.
LW_FIELDCAT-OUTPUTLEN = 10.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.
CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'ERFMG'.
LW_FIELDCAT-SELTEXT_M = 'Qty in UOE'.
LW_FIELDCAT-OUTPUTLEN = 13.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.
CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'ERFME'.
LW_FIELDCAT-SELTEXT_M = 'Unit of Entry'.
LW_FIELDCAT-OUTPUTLEN = 5.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.
CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'CHARG'.
LW_FIELDCAT-SELTEXT_M = 'Batch No'.
LW_FIELDCAT-OUTPUTLEN = 10.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.
CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'EBELN'.
LW_FIELDCAT-SELTEXT_M = 'Purchase Order No'.
LW_FIELDCAT-OUTPUTLEN = 13.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.
CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'LIFNR'.
LW_FIELDCAT-SELTEXT_M = 'Vendor'.
LW_FIELDCAT-OUTPUTLEN = 10.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.
CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'NAME1'.
LW_FIELDCAT-SELTEXT_M = 'Vendor Name'.
LW_FIELDCAT-OUTPUTLEN = 40.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.
CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'BUDAT1'.
LW_FIELDCAT-SELTEXT_M = 'GR Date'.
LW_FIELDCAT-OUTPUTLEN = 10.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.
CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'GRUND'.
LW_FIELDCAT-SELTEXT_M = 'Reason Code'.
LW_FIELDCAT-OUTPUTLEN = 4.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.
CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'GRTXT'.
LW_FIELDCAT-SELTEXT_M = 'Reason Text'.
LW_FIELDCAT-OUTPUTLEN = 40.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.
CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = ''.
LW_FIELDCAT-SELTEXT_M = 'Remarks'.
LW_FIELDCAT-OUTPUTLEN = 40.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.
ENDFORM. " F004_FIELDCAT_INIT
*&---------------------------------------------------------------------*
*& Form F005_DISPLAY_DATA
*&---------------------------------------------------------------------*
FORM F005_DISPLAY_DATA USING GT_LISTHEADER TYPE SLIS_T_LISTHEADER.
DATA : LW_LISTHEADER TYPE SLIS_LISTHEADER.
CLEAR LW_LISTHEADER.
LW_LISTHEADER-TYP = 'H'.
LW_LISTHEADER-INFO = W_INFO.
APPEND LW_LISTHEADER TO GT_LISTHEADER.
CLEAR LW_LISTHEADER.
LW_LISTHEADER-TYP = 'S'.
LW_LISTHEADER-INFO = W_INFO1.
APPEND LW_LISTHEADER TO GT_LISTHEADER.
CLEAR LW_LISTHEADER.
LW_LISTHEADER-TYP = 'S'.
LW_LISTHEADER-INFO = W_INFO2.
APPEND LW_LISTHEADER TO GT_LISTHEADER.
CLEAR LW_LISTHEADER.
LW_LISTHEADER-TYP = 'S'.
LW_LISTHEADER-INFO = W_INFO3.
APPEND LW_LISTHEADER TO GT_LISTHEADER.
CLEAR LW_LISTHEADER.
LW_LISTHEADER-TYP = 'S'.
LW_LISTHEADER-INFO = W_INFO4.
APPEND LW_LISTHEADER TO GT_LISTHEADER.
CLEAR LW_LISTHEADER.
LW_LISTHEADER-TYP = 'S'.
LW_LISTHEADER-INFO = W_INFO5.
APPEND LW_LISTHEADER TO GT_LISTHEADER.
CLEAR LW_LISTHEADER.
LW_LISTHEADER-TYP = 'S'.
LW_LISTHEADER-INFO = W_INFO6.
APPEND LW_LISTHEADER TO GT_LISTHEADER.
CLEAR LW_LISTHEADER.
LW_LISTHEADER-TYP = 'S'.
LW_LISTHEADER-INFO = W_TEXT1.
APPEND LW_LISTHEADER TO GT_LISTHEADER.
CLEAR LW_LISTHEADER.
LW_LISTHEADER-TYP = 'S'.
LW_LISTHEADER-INFO = W_TEXT2.
APPEND LW_LISTHEADER TO GT_LISTHEADER.
CLEAR LW_LISTHEADER.
LW_LISTHEADER-TYP = 'S'.
LW_LISTHEADER-INFO = W_TEXT3.
APPEND LW_LISTHEADER TO GT_LISTHEADER.
CLEAR LW_LISTHEADER.
LW_LISTHEADER-TYP = 'S'.
LW_LISTHEADER-INFO = W_TEXT1_1.
APPEND LW_LISTHEADER TO GT_LISTHEADER.
CLEAR LW_LISTHEADER.
LW_LISTHEADER-TYP = 'S'.
LW_LISTHEADER-INFO = W_TEXT2_2.
APPEND LW_LISTHEADER TO GT_LISTHEADER.
CLEAR LW_LISTHEADER.
LW_LISTHEADER-TYP = 'S'.
LW_LISTHEADER-INFO = W_TEXT3_3.
APPEND LW_LISTHEADER TO GT_LISTHEADER.
CLEAR LW_LISTHEADER.
LW_LISTHEADER-TYP = 'S'.
LW_LISTHEADER-INFO = W_TEXT4_4.
APPEND LW_LISTHEADER TO GT_LISTHEADER.
ENDFORM. " F005_DISPLAY_DATA
*&---------------------------------------------------------------------*
*& Form F006_DISPLAY_LIST
*&---------------------------------------------------------------------*
FORM F006_DISPLAY_LIST .
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
* I_INTERFACE_CHECK = ' '
* I_BYPASSING_BUFFER = ' '
* I_BUFFER_ACTIVE = ' '
I_CALLBACK_PROGRAM = W_REPID
* I_CALLBACK_PF_STATUS_SET = ' '
* I_CALLBACK_USER_COMMAND = ' '
I_CALLBACK_TOP_OF_PAGE = 'TOP_OF_PAGE'
* I_CALLBACK_HTML_TOP_OF_PAGE = ' '
* I_CALLBACK_HTML_END_OF_LIST = ' '
* I_STRUCTURE_NAME =
I_BACKGROUND_ID = 'ALV_BACKGROUND'
* I_GRID_TITLE =
* I_GRID_SETTINGS =
IS_LAYOUT = W_LAYOUT
IT_FIELDCAT = W_FIELDCATALOG[]
* IT_EXCLUDING =
* IT_SPECIAL_GROUPS =
* IT_SORT =
* IT_FILTER =
* IS_SEL_HIDE =
* I_DEFAULT = 'X'
* I_SAVE = ' '
* IS_VARIANT =
IT_EVENTS = W_EVENTS[]
* IT_EVENT_EXIT =
* IS_PRINT =
* IS_REPREP_ID =
* I_SCREEN_START_COLUMN = 0
* I_SCREEN_START_LINE = 0
* I_SCREEN_END_COLUMN = 0
* I_SCREEN_END_LINE = 0
* IT_ALV_GRAPHICS =
* IT_HYPERLINK =
* IT_ADD_FIELDCAT =
* IT_EXCEPT_QINFO =
* I_HTML_HEIGHT_TOP =
* I_HTML_HEIGHT_END =
* IMPORTING
* E_EXIT_CAUSED_BY_CALLER =
* ES_EXIT_CAUSED_BY_USER =
TABLES
T_OUTTAB = IT_MAIN
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2
.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDFORM. " F006_DISPLAY_LIST
*&--------------------------------------------------------------------*
*& Form TOP_OF_PAGE
*&--------------------------------------------------------------------*
FORM TOP_OF_PAGE.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
IT_LIST_COMMENTARY = W_LISTHEADER
I_LOGO = ' '.
ENDFORM. "top_of_page_db
*&---------------------------------------------------------------------*
*& Form F007_LEADING_ZEROS
*&---------------------------------------------------------------------*
FORM F007_LEADING_ZEROS .
LOOP AT IT_MAIN INTO WA_MAIN.
SHIFT WA_MAIN-MATNR LEFT DELETING LEADING '0'.
SHIFT WA_MAIN-LIFNR LEFT DELETING LEADING '0'.
MODIFY IT_MAIN FROM WA_MAIN TRANSPORTING MATNR LIFNR.
ENDLOOP.
ENDFORM. " F007_LEADING_ZEROS
*---------------------------------------------------------------------*
*REPORT ZVVF_CR017_DESTRUCTIONREP *
* *
*---------------------------------------------------------------------*
* *
* MODULE : Production Planning *
* *
*---------------------------------------------------------------------*
* Objective : Report for Destruction of P.M. rejected during *
* On-Line Rejection *
* *
* *
* Program : Update Tables( ) Download Data( ) Outputs List (X) *
* Technical Specs No : *
* Date Created : *
* Author : *
* Location : *
* LDB : *
*---------------------------------------------------------------------*
*----------------------------------------------------------------------*
* Type-pools
*----------------------------------------------------------------------*
TYPE-POOLS : SLIS.
*---------------------------------------------------------------------*
* Tables *
*---------------------------------------------------------------------*
TABLES : T001W,
AFKO.
*----------------------------------------------------------------------*
* Types Begin with TY_ *
*----------------------------------------------------------------------*
TYPES : BEGIN OF TY_MSEG,
MBLNR LIKE MSEG-MBLNR,
MATNR LIKE MSEG-MATNR,
CHARG LIKE MSEG-CHARG,
AUFNR LIKE MSEG-AUFNR,
END OF TY_MSEG.
TYPES : BEGIN OF TY_MSEG1,
MATNR LIKE MSEG-MATNR,
CHARG LIKE MSEG-CHARG,
WERKS LIKE T001W-WERKS,
MBLNR LIKE MSEG-MBLNR,
EBELN LIKE MSEG-EBELN,
LIFNR LIKE MSEG-LIFNR,
NAME1 LIKE T001W-NAME1,
BUDAT LIKE MKPF-BUDAT,
END OF TY_MSEG1.
TYPES : BEGIN OF TY_MAIN,
MBLNR LIKE MSEG-MBLNR,
MATNR LIKE MSEG-MATNR,
CHARG LIKE MSEG-CHARG,
GRUND LIKE MSEG-GRUND,
ERFMG LIKE MSEG-ERFMG,
ERFME LIKE MSEG-ERFME,
BUDAT LIKE MKPF-BUDAT,
MAKTX LIKE MAKT-MAKTX,
EBELN LIKE MSEG-EBELN,
LIFNR LIKE MSEG-LIFNR,
NAME1 LIKE LFA1-NAME1,
BUDAT1 LIKE MKPF-BUDAT,
GRTXT LIKE T157E-GRTXT,
END OF TY_MAIN.
TYPES : BEGIN OF TY_T157E,
GRUND LIKE T157E-GRUND,
GRTXT LIKE T157E-GRTXT,
END OF TY_T157E.
*---------------------------------------------------------------------*
* INTERNAL TABLE Begin with IT_ *
*---------------------------------------------------------------------*
DATA : IT_MSEG TYPE STANDARD TABLE OF TY_MSEG WITH HEADER LINE.
DATA : IT_MAIN TYPE STANDARD TABLE OF TY_MAIN WITH HEADER LINE.
DATA : IT_MSEG1 TYPE STANDARD TABLE OF TY_MSEG1 WITH HEADER LINE.
DATA : IT_T157E TYPE STANDARD TABLE OF TY_T157E WITH HEADER LINE.
*---------------------------------------------------------------------*
* WORK AREAS Begin with WA_ *
*---------------------------------------------------------------------*
*----------------------------------------------------------------------*
* Constants Begin with C_ *
*----------------------------------------------------------------------*
*---------------------------------------------------------------------*
* Data Variables Begin with W_ *
*---------------------------------------------------------------------*
DATA : WA_MAIN LIKE LINE OF IT_MAIN.
DATA : W_CHARG LIKE AFPO-CHARG,
W_MATNR LIKE AFPO-MATNR,
W_MAKTX LIKE MAKT-MAKTX,
W_NAME1 LIKE T001W-NAME1,
W_TEXT1(20) TYPE C,
W_TEXT1_1(20) TYPE C,
W_TEXT2(65) TYPE C,
W_TEXT2_2(65) TYPE C,
W_TEXT3_3(65) TYPE C,
W_TEXT3(65) TYPE C,
w_text4_4(65) type c.
*--------FOR ALV
DATA : W_FIELDCATALOG TYPE SLIS_T_FIELDCAT_ALV WITH HEADER LINE,
W_LAYOUT TYPE SLIS_LAYOUT_ALV,
W_LISTHEADER TYPE SLIS_T_LISTHEADER,
W_EVENTS TYPE SLIS_T_EVENT,
W_TOP_OF_PAGE TYPE SLIS_FORMNAME VALUE 'TOP_OF_PAGE',
W_REPID TYPE SY-REPID.
DATA : W_INFO(65) TYPE C VALUE 'DESTRUCTION REPORT FOR ON-LINE REJECTION',
W_INFO1(65) TYPE C ,
W_INFO2(65) TYPE C ,
W_INFO3(65) TYPE C ,
W_INFO4(65) TYPE C ,
W_INFO5(65) TYPE C ,
W_INFO6(65) TYPE C .
*---------------------------------------------------------------------*
* parameters Begin with PR_ *
*---------------------------------------------------------------------*
SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
SELECTION-SCREEN : SKIP 1.
PARAMETERS : PR_WERKS LIKE T001W-WERKS OBLIGATORY,
PR_AUFNR LIKE AFKO-AUFNR OBLIGATORY.
SELECTION-SCREEN END OF BLOCK B1.
*---------------------------------------------------------------------*
* Select-options Begin with SO_ *
*---------------------------------------------------------------------*
*---------------------------------------------------------------------*
* INITIALIZATION *
*---------------------------------------------------------------------*
INITIALIZATION.
W_REPID = SY-REPID.
PERFORM F003_EVENTTAB_BUILD_TEMP USING W_EVENTS[].
*---------------------------------------------------------------------*
* AT SELECTION-SCREEN output.
*---------------------------------------------------------------------*
AT SELECTION-SCREEN OUTPUT .
*---------------------------------------------------------------------*
* At selection screen *
*---------------------------------------------------------------------*
AT SELECTION-SCREEN.
PERFORM F001_VALIDATE.
*---------------------------------------------------------------------*
* START-OF-SELECTION *
*---------------------------------------------------------------------*
START-OF-SELECTION .
PERFORM F004_FIELDCAT_INIT.
PERFORM F002_GET_DATA.
PERFORM F005_DISPLAY_DATA USING W_LISTHEADER[].
*---------------------------------------------------------------------*
* END-OF-SELECTION *
*---------------------------------------------------------------------*
END-OF-SELECTION.
PERFORM F006_DISPLAY_LIST.
*----------------------------------------------------------------------*
* TOP-OF-PAGE *
*----------------------------------------------------------------------*
TOP-OF-PAGE.
*----------------------------------------------------------------------*
* END-OF-PAGE *
*----------------------------------------------------------------------*
END-OF-PAGE.
*&---------------------------------------------------------------------*
*& Form F001_VALIDATE
*&---------------------------------------------------------------------*
FORM F001_VALIDATE .
DATA : LW_MBLNR LIKE MSEG-MBLNR.
SELECT MBLNR MATNR CHARG AUFNR
FROM MSEG
INTO CORRESPONDING FIELDS OF TABLE IT_MSEG
WHERE WERKS = PR_WERKS AND
AUFNR = PR_AUFNR AND
BWART = '262'.
IF SY-SUBRC NE 0.
MESSAGE E000(ZVVF_CR017_MESSAGE).
ENDIF.
SORT IT_MSEG BY MBLNR DESCENDING.
READ TABLE IT_MSEG INDEX 1.
LW_MBLNR = IT_MSEG-MBLNR.
LOOP AT IT_MSEG.
IF IT_MSEG-MBLNR NE LW_MBLNR.
DELETE IT_MSEG.
ENDIF.
ENDLOOP.
DELETE ADJACENT DUPLICATES FROM IT_MSEG COMPARING MBLNR MATNR CHARG.
SELECT SINGLE CHARG MATNR INTO (W_CHARG,W_MATNR)
FROM AFPO
WHERE AUFNR = PR_AUFNR.
IF SY-SUBRC = 0.
SELECT SINGLE MAKTX INTO W_MAKTX
FROM MAKT
WHERE MATNR = W_MATNR.
ENDIF.
SELECT SINGLE NAME1 INTO W_NAME1
FROM T001W
WHERE WERKS = PR_WERKS.
CONCATENATE 'Plant Code : ' PR_WERKS INTO W_INFO1.
CONCATENATE 'Plant Name : ' W_NAME1 INTO W_INFO2.
SHIFT PR_AUFNR LEFT DELETING LEADING '0'.
CONCATENATE 'Order Number : ' PR_AUFNR INTO W_INFO3.
CONCATENATE 'Batch Number of Order : ' W_CHARG INTO W_INFO4.
SHIFT W_MATNR LEFT DELETING LEADING '0'.
CONCATENATE 'Material : ' W_MATNR INTO W_INFO5.
CONCATENATE 'Material Description : ' W_MAKTX INTO W_INFO6.
CONCATENATE 'Prepared By :' W_TEXT1 INTO W_TEXT1.
CONCATENATE 'Recommended By :' W_TEXT2 INTO W_TEXT2.
CONCATENATE 'Destroyed By :' W_TEXT3 INTO W_TEXT3.
CONCATENATE 'Production Dept' W_TEXT1_1 INTO W_TEXT1_1.
CONCATENATE 'Accounts Dept' W_TEXT2_2 INTO W_TEXT2_2.
CONCATENATE 'Security Dept' W_TEXT3_3 INTO W_TEXT3_3.
CONCATENATE 'Q.C/Q.A.Dept' W_TEXT4_4 INTO W_TEXT4_4.
ENDFORM. " F001_VALIDATE
*&---------------------------------------------------------------------*
*& Form F002_GET_DATA
*&---------------------------------------------------------------------*
FORM F002_GET_DATA .
DATA : LW_MBLNR LIKE MSEG-MBLNR.
SELECT MS~MBLNR MS~MATNR MS~CHARG MS~GRUND MS~ERFMG MS~ERFME
MK~BUDAT
MA~MAKTX
INTO CORRESPONDING FIELDS OF TABLE IT_MAIN
FROM MSEG AS MS INNER JOIN
MKPF AS MK ON MS~MBLNR = MK~MBLNR
INNER JOIN
MAKT AS MA ON MS~MATNR = MA~MATNR
FOR ALL ENTRIES IN IT_MSEG
WHERE MS~MATNR = IT_MSEG-MATNR AND
MS~CHARG = IT_MSEG-CHARG AND
WERKS = PR_WERKS AND
BWART = '344' AND
XAUTO NOT IN ('X','S','U','L','M','W','F').
SORT IT_MAIN BY MBLNR DESCENDING.
READ TABLE IT_MAIN INDEX 1.
LW_MBLNR = IT_MAIN-MBLNR.
LOOP AT IT_MAIN.
IF IT_MAIN-MBLNR NE LW_MBLNR.
DELETE IT_MAIN.
ENDIF.
ENDLOOP.
DELETE ADJACENT DUPLICATES FROM IT_MAIN COMPARING MBLNR MATNR CHARG.
SELECT GRUND GRTXT INTO CORRESPONDING FIELDS OF TABLE IT_T157E
FROM T157E
FOR ALL ENTRIES IN IT_MAIN
WHERE GRUND = IT_MAIN-GRUND AND
BWART = '344' AND
SPRAS = 'E'.
LOOP AT IT_MAIN INTO WA_MAIN.
READ TABLE IT_T157E WITH KEY GRUND = IT_MAIN-GRUND.
IF SY-SUBRC = 0.
WA_MAIN-GRTXT = IT_T157E-GRTXT.
MODIFY IT_MAIN FROM WA_MAIN TRANSPORTING GRTXT.
ENDIF.
ENDLOOP.
SELECT MS~MATNR MS~CHARG MS~WERKS MS~MBLNR MS~EBELN MS~LIFNR
TW~NAME1
MK~BUDAT
INTO CORRESPONDING FIELDS OF TABLE IT_MSEG1
FROM MSEG AS MS INNER JOIN
LFA1 AS TW ON MS~LIFNR = TW~LIFNR
INNER JOIN
MKPF AS MK ON MS~MBLNR = MK~MBLNR
FOR ALL ENTRIES IN IT_MAIN
WHERE MATNR = IT_MAIN-MATNR AND
CHARG = IT_MAIN-CHARG AND
MS~WERKS = PR_WERKS AND
BWART IN ('101','105').
LOOP AT IT_MAIN INTO WA_MAIN.
READ TABLE IT_MSEG1 WITH KEY MATNR = IT_MAIN-MATNR CHARG = IT_MAIN-CHARG WERKS = PR_WERKS.
IF SY-SUBRC = 0.
WA_MAIN-EBELN = IT_MSEG1-EBELN.
WA_MAIN-LIFNR = IT_MSEG1-LIFNR.
WA_MAIN-NAME1 = IT_MSEG1-NAME1.
WA_MAIN-BUDAT1 = IT_MSEG1-BUDAT.
MODIFY IT_MAIN FROM WA_MAIN TRANSPORTING EBELN LIFNR NAME1 BUDAT1.
ENDIF.
ENDLOOP.
PERFORM F007_LEADING_ZEROS.
ENDFORM. " F002_GET_DATA
*&---------------------------------------------------------------------*
*& Form F003_EVENTTAB_BUILD_TEMP
*&---------------------------------------------------------------------*
FORM F003_EVENTTAB_BUILD_TEMP USING RT_EVENTS TYPE SLIS_T_EVENT.
DATA : LW_EVENT TYPE SLIS_ALV_EVENT.
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
I_LIST_TYPE = 0
IMPORTING
ET_EVENTS = RT_EVENTS
EXCEPTIONS
LIST_TYPE_WRONG = 1
OTHERS = 2.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
READ TABLE RT_EVENTS WITH KEY NAME = SLIS_EV_TOP_OF_PAGE INTO LW_EVENT.
IF SY-SUBRC = 0.
MOVE W_TOP_OF_PAGE TO LW_EVENT-FORM.
APPEND LW_EVENT TO RT_EVENTS.
ENDIF.
ENDFORM. " F003_EVENTTAB_BUILD_TEMP
*&---------------------------------------------------------------------*
*& Form F004_FIELDCAT_INIT
*&---------------------------------------------------------------------*
FORM F004_FIELDCAT_INIT .
DATA : LW_FIELDCAT TYPE SLIS_FIELDCAT_ALV.
CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'MATNR'.
LW_FIELDCAT-SELTEXT_M = 'Material No'.
LW_FIELDCAT-OUTPUTLEN = 18.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.
CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'MAKTX'.
LW_FIELDCAT-SELTEXT_M = 'Material Description'.
LW_FIELDCAT-OUTPUTLEN = 40.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.
CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'BUDAT'.
LW_FIELDCAT-SELTEXT_M = 'Date of Rejection'.
LW_FIELDCAT-OUTPUTLEN = 10.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.
CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'ERFMG'.
LW_FIELDCAT-SELTEXT_M = 'Qty in UOE'.
LW_FIELDCAT-OUTPUTLEN = 13.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.
CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'ERFME'.
LW_FIELDCAT-SELTEXT_M = 'Unit of Entry'.
LW_FIELDCAT-OUTPUTLEN = 5.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.
CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'CHARG'.
LW_FIELDCAT-SELTEXT_M = 'Batch No'.
LW_FIELDCAT-OUTPUTLEN = 10.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.
CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'EBELN'.
LW_FIELDCAT-SELTEXT_M = 'Purchase Order No'.
LW_FIELDCAT-OUTPUTLEN = 13.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.
CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'LIFNR'.
LW_FIELDCAT-SELTEXT_M = 'Vendor'.
LW_FIELDCAT-OUTPUTLEN = 10.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.
CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'NAME1'.
LW_FIELDCAT-SELTEXT_M = 'Vendor Name'.
LW_FIELDCAT-OUTPUTLEN = 40.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.
CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'BUDAT1'.
LW_FIELDCAT-SELTEXT_M = 'GR Date'.
LW_FIELDCAT-OUTPUTLEN = 10.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.
CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'GRUND'.
LW_FIELDCAT-SELTEXT_M = 'Reason Code'.
LW_FIELDCAT-OUTPUTLEN = 4.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.
CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'GRTXT'.
LW_FIELDCAT-SELTEXT_M = 'Reason Text'.
LW_FIELDCAT-OUTPUTLEN = 40.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.
CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = ''.
LW_FIELDCAT-SELTEXT_M = 'Remarks'.
LW_FIELDCAT-OUTPUTLEN = 40.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.
ENDFORM. " F004_FIELDCAT_INIT
*&---------------------------------------------------------------------*
*& Form F005_DISPLAY_DATA
*&---------------------------------------------------------------------*
FORM F005_DISPLAY_DATA USING GT_LISTHEADER TYPE SLIS_T_LISTHEADER.
DATA : LW_LISTHEADER TYPE SLIS_LISTHEADER.
CLEAR LW_LISTHEADER.
LW_LISTHEADER-TYP = 'H'.
LW_LISTHEADER-INFO = W_INFO.
APPEND LW_LISTHEADER TO GT_LISTHEADER.
CLEAR LW_LISTHEADER.
LW_LISTHEADER-TYP = 'S'.
LW_LISTHEADER-INFO = W_INFO1.
APPEND LW_LISTHEADER TO GT_LISTHEADER.
CLEAR LW_LISTHEADER.
LW_LISTHEADER-TYP = 'S'.
LW_LISTHEADER-INFO = W_INFO2.
APPEND LW_LISTHEADER TO GT_LISTHEADER.
CLEAR LW_LISTHEADER.
LW_LISTHEADER-TYP = 'S'.
LW_LISTHEADER-INFO = W_INFO3.
APPEND LW_LISTHEADER TO GT_LISTHEADER.
CLEAR LW_LISTHEADER.
LW_LISTHEADER-TYP = 'S'.
LW_LISTHEADER-INFO = W_INFO4.
APPEND LW_LISTHEADER TO GT_LISTHEADER.
CLEAR LW_LISTHEADER.
LW_LISTHEADER-TYP = 'S'.
LW_LISTHEADER-INFO = W_INFO5.
APPEND LW_LISTHEADER TO GT_LISTHEADER.
CLEAR LW_LISTHEADER.
LW_LISTHEADER-TYP = 'S'.
LW_LISTHEADER-INFO = W_INFO6.
APPEND LW_LISTHEADER TO GT_LISTHEADER.
CLEAR LW_LISTHEADER.
LW_LISTHEADER-TYP = 'S'.
LW_LISTHEADER-INFO = W_TEXT1.
APPEND LW_LISTHEADER TO GT_LISTHEADER.
CLEAR LW_LISTHEADER.
LW_LISTHEADER-TYP = 'S'.
LW_LISTHEADER-INFO = W_TEXT2.
APPEND LW_LISTHEADER TO GT_LISTHEADER.
CLEAR LW_LISTHEADER.
LW_LISTHEADER-TYP = 'S'.
LW_LISTHEADER-INFO = W_TEXT3.
APPEND LW_LISTHEADER TO GT_LISTHEADER.
CLEAR LW_LISTHEADER.
LW_LISTHEADER-TYP = 'S'.
LW_LISTHEADER-INFO = W_TEXT1_1.
APPEND LW_LISTHEADER TO GT_LISTHEADER.
CLEAR LW_LISTHEADER.
LW_LISTHEADER-TYP = 'S'.
LW_LISTHEADER-INFO = W_TEXT2_2.
APPEND LW_LISTHEADER TO GT_LISTHEADER.
CLEAR LW_LISTHEADER.
LW_LISTHEADER-TYP = 'S'.
LW_LISTHEADER-INFO = W_TEXT3_3.
APPEND LW_LISTHEADER TO GT_LISTHEADER.
CLEAR LW_LISTHEADER.
LW_LISTHEADER-TYP = 'S'.
LW_LISTHEADER-INFO = W_TEXT4_4.
APPEND LW_LISTHEADER TO GT_LISTHEADER.
ENDFORM. " F005_DISPLAY_DATA
*&---------------------------------------------------------------------*
*& Form F006_DISPLAY_LIST
*&---------------------------------------------------------------------*
FORM F006_DISPLAY_LIST .
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
* I_INTERFACE_CHECK = ' '
* I_BYPASSING_BUFFER = ' '
* I_BUFFER_ACTIVE = ' '
I_CALLBACK_PROGRAM = W_REPID
* I_CALLBACK_PF_STATUS_SET = ' '
* I_CALLBACK_USER_COMMAND = ' '
I_CALLBACK_TOP_OF_PAGE = 'TOP_OF_PAGE'
* I_CALLBACK_HTML_TOP_OF_PAGE = ' '
* I_CALLBACK_HTML_END_OF_LIST = ' '
* I_STRUCTURE_NAME =
I_BACKGROUND_ID = 'ALV_BACKGROUND'
* I_GRID_TITLE =
* I_GRID_SETTINGS =
IS_LAYOUT = W_LAYOUT
IT_FIELDCAT = W_FIELDCATALOG[]
* IT_EXCLUDING =
* IT_SPECIAL_GROUPS =
* IT_SORT =
* IT_FILTER =
* IS_SEL_HIDE =
* I_DEFAULT = 'X'
* I_SAVE = ' '
* IS_VARIANT =
IT_EVENTS = W_EVENTS[]
* IT_EVENT_EXIT =
* IS_PRINT =
* IS_REPREP_ID =
* I_SCREEN_START_COLUMN = 0
* I_SCREEN_START_LINE = 0
* I_SCREEN_END_COLUMN = 0
* I_SCREEN_END_LINE = 0
* IT_ALV_GRAPHICS =
* IT_HYPERLINK =
* IT_ADD_FIELDCAT =
* IT_EXCEPT_QINFO =
* I_HTML_HEIGHT_TOP =
* I_HTML_HEIGHT_END =
* IMPORTING
* E_EXIT_CAUSED_BY_CALLER =
* ES_EXIT_CAUSED_BY_USER =
TABLES
T_OUTTAB = IT_MAIN
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2
.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDFORM. " F006_DISPLAY_LIST
*&--------------------------------------------------------------------*
*& Form TOP_OF_PAGE
*&--------------------------------------------------------------------*
FORM TOP_OF_PAGE.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
IT_LIST_COMMENTARY = W_LISTHEADER
I_LOGO = ' '.
ENDFORM. "top_of_page_db
*&---------------------------------------------------------------------*
*& Form F007_LEADING_ZEROS
*&---------------------------------------------------------------------*
FORM F007_LEADING_ZEROS .
LOOP AT IT_MAIN INTO WA_MAIN.
SHIFT WA_MAIN-MATNR LEFT DELETING LEADING '0'.
SHIFT WA_MAIN-LIFNR LEFT DELETING LEADING '0'.
MODIFY IT_MAIN FROM WA_MAIN TRANSPORTING MATNR LIFNR.
ENDLOOP.
ENDFORM. " F007_LEADING_ZEROS
Labels:
PP Report
Report for showing the Details of Noodle Production and daily Dispatch Report
REPORT ZVVF_CR011_PRODVSDISPATCH .
*---------------------------------------------------------------------*
* REPORT ZVVF_CR011_PRODVSDISPATCH *
* *
*---------------------------------------------------------------------*
* *
* MODULE : Production Planning *
* *
*---------------------------------------------------------------------*
* Objective : Report for showing the Details of Noodle Production *
* and daily Dispatch Report *
* *
* Program : Update Tables( ) Download Data( ) Outputs List (X) *
* Technical Specs No : *
* Date Created : *
* Author : *
* Location : *
* LDB : *
*---------------------------------------------------------------------*
*----------------------------------------------------------------------*
* Type-pools
*----------------------------------------------------------------------*
TYPE-POOLS : SLIS.
*---------------------------------------------------------------------*
* Tables *
*---------------------------------------------------------------------*
TABLES : MKPF,
MSEG.
*----------------------------------------------------------------------*
* Types Begin with TY_ *
*----------------------------------------------------------------------*
TYPES : BEGIN OF TY_MAIN,
MATNR LIKE MSEG-MATNR,
BUDAT LIKE MKPF-BUDAT,
MBLNR LIKE MKPF-MBLNR,
MAKTX LIKE MAKT-MAKTX,
ERFMG LIKE MSEG-ERFMG,
ERFME LIKE MSEG-ERFME,
MATNR_K LIKE MSEG-MATNR,
MAKTX_K LIKE MAKT-MAKTX,
ERFMG_K LIKE MSEG-ERFMG,
ERFME_K LIKE MSEG-ERFME,
MATNR_N LIKE MSEG-MATNR,
MAKTX_N LIKE MAKT-MAKTX,
ERFMG_N LIKE MSEG-ERFMG,
ERFME_N LIKE MSEG-ERFME,
MATNR_D LIKE MSEG-MATNR,
MAKTX_D LIKE MAKT-MAKTX,
ERFMG_D LIKE MSEG-ERFMG,
ERFME_D LIKE MSEG-ERFME,
MATNR_A LIKE MSEG-MATNR,
MAKTX_A LIKE MAKT-MAKTX,
ERFMG_A LIKE MSEG-ERFMG,
ERFME_A LIKE MSEG-ERFME,
MATNR_O LIKE MSEG-MATNR,
MAKTX_O LIKE MAKT-MAKTX,
ERFMG_O LIKE MSEG-ERFMG,
ERFME_O LIKE MSEG-ERFME,
END OF TY_MAIN.
TYPES : BEGIN OF TY_MKPF,
BUDAT LIKE MKPF-BUDAT,
MBLNR LIKE MKPF-MBLNR,
END OF TY_MKPF.
TYPES : BEGIN OF TY_MSEG,
BUDAT LIKE MKPF-BUDAT,
MATNR LIKE MSEG-MATNR,
MBLNR LIKE MKPF-MBLNR,
MAKTX LIKE MAKT-MAKTX,
ERFMG LIKE MSEG-ERFMG,
ERFME LIKE MSEG-ERFME,
END OF TY_MSEG.
*---------------------------------------------------------------------*
* INTERNAL TABLE Begin with IT_ *
*---------------------------------------------------------------------*
DATA : IT_MAIN TYPE STANDARD TABLE OF TY_MAIN WITH HEADER LINE.
DATA : IT_MAIN1 TYPE STANDARD TABLE OF TY_MAIN WITH HEADER LINE.
DATA : IT_MAIN2 TYPE STANDARD TABLE OF TY_MAIN WITH HEADER LINE.
DATA : IT_DATA TYPE STANDARD TABLE OF TY_MAIN WITH HEADER LINE.
DATA : IT_MKPF TYPE STANDARD TABLE OF TY_MKPF WITH HEADER LINE.
DATA : IT_MSEG_KA TYPE STANDARD TABLE OF TY_MSEG WITH HEADER LINE.
DATA : IT_MSEG_KA1 TYPE STANDARD TABLE OF TY_MSEG WITH HEADER LINE.
DATA : IT_MSEG_KA_1 TYPE STANDARD TABLE OF TY_MSEG WITH HEADER LINE.
DATA : IT_MSEG_KA_2 TYPE STANDARD TABLE OF TY_MSEG WITH HEADER LINE.
DATA : IT_MSEG_NV TYPE STANDARD TABLE OF TY_MSEG WITH HEADER LINE.
DATA : IT_MSEG_NV1 TYPE STANDARD TABLE OF TY_MSEG WITH HEADER LINE.
DATA : IT_MSEG_NV_1 TYPE STANDARD TABLE OF TY_MSEG WITH HEADER LINE.
DATA : IT_MSEG_NV_2 TYPE STANDARD TABLE OF TY_MSEG WITH HEADER LINE.
DATA : IT_MSEG_DU TYPE STANDARD TABLE OF TY_MSEG WITH HEADER LINE.
DATA : IT_MSEG_DU1 TYPE STANDARD TABLE OF TY_MSEG WITH HEADER LINE.
DATA : IT_MSEG_DU_1 TYPE STANDARD TABLE OF TY_MSEG WITH HEADER LINE.
DATA : IT_MSEG_DU_2 TYPE STANDARD TABLE OF TY_MSEG WITH HEADER LINE.
DATA : IT_MSEG_AM TYPE STANDARD TABLE OF TY_MSEG WITH HEADER LINE.
DATA : IT_MSEG_AM1 TYPE STANDARD TABLE OF TY_MSEG WITH HEADER LINE.
DATA : IT_MSEG_AM_1 TYPE STANDARD TABLE OF TY_MSEG WITH HEADER LINE.
DATA : IT_MSEG_AM_2 TYPE STANDARD TABLE OF TY_MSEG WITH HEADER LINE.
DATA : IT_MSEG_OT TYPE STANDARD TABLE OF TY_MSEG WITH HEADER LINE.
DATA : IT_MSEG_OT1 TYPE STANDARD TABLE OF TY_MSEG WITH HEADER LINE.
DATA : IT_MSEG_OT_1 TYPE STANDARD TABLE OF TY_MSEG WITH HEADER LINE.
DATA : IT_MSEG_OT_2 TYPE STANDARD TABLE OF TY_MSEG WITH HEADER LINE.
*---------------------------------------------------------------------*
* WORK AREAS Begin with WA_ *
*---------------------------------------------------------------------*
DATA : WA_DATA LIKE LINE OF IT_DATA.
DATA : WA_MSEG_KA LIKE LINE OF IT_MSEG_KA.
DATA : WA_MSEG_NV LIKE LINE OF IT_MSEG_NV.
DATA : WA_MSEG_DU LIKE LINE OF IT_MSEG_DU.
DATA : WA_MSEG_AM LIKE LINE OF IT_MSEG_AM.
DATA : WA_MSEG_OT LIKE LINE OF IT_MSEG_OT.
*----------------------------------------------------------------------*
* Constants Begin with C_ *
*----------------------------------------------------------------------*
*---------------------------------------------------------------------*
* Data Variables Begin with W_ *
*---------------------------------------------------------------------*
*--------FOR ALV
DATA : W_FIELDCATALOG TYPE SLIS_T_FIELDCAT_ALV WITH HEADER LINE,
W_LAYOUT TYPE SLIS_LAYOUT_ALV,
W_LISTHEADER TYPE SLIS_T_LISTHEADER,
W_EVENTS TYPE SLIS_T_EVENT,
W_TOP_OF_PAGE TYPE SLIS_FORMNAME VALUE 'TOP_OF_PAGE',
W_REPID TYPE SY-REPID.
DATA : W_GT_SORT TYPE SLIS_SORTINFO_ALV OCCURS 1 WITH HEADER LINE .
DATA : W_INFO(65) TYPE C,
W_INFO1(65) TYPE C,
W_INFO2(65) TYPE C.
*---------------------------------------------------------------------*
* parameters Begin with PR_ *
*---------------------------------------------------------------------*
*---------------------------------------------------------------------*
* Select-options Begin with SO_ *
*---------------------------------------------------------------------*
SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
SELECTION-SCREEN SKIP 1.
SELECT-OPTIONS : SO_BUDAT FOR MKPF-BUDAT OBLIGATORY.
SELECTION-SCREEN SKIP 1.
SELECTION-SCREEN END OF BLOCK B1.
*---------------------------------------------------------------------*
* INITIALIZATION *
*---------------------------------------------------------------------*
INITIALIZATION.
W_REPID = SY-REPID.
REFRESH : IT_DATA.
PERFORM F003_EVENTTAB_BUILD_TEMP USING W_EVENTS[].
*---------------------------------------------------------------------*
* AT SELECTION-SCREEN output.
*---------------------------------------------------------------------*
AT SELECTION-SCREEN OUTPUT .
*---------------------------------------------------------------------*
* At selection screen *
*---------------------------------------------------------------------*
AT SELECTION-SCREEN.
PERFORM F001_VALIDATE.
*---------------------------------------------------------------------*
* START-OF-SELECTION *
*---------------------------------------------------------------------*
START-OF-SELECTION .
PERFORM F004_FIELDCAT_INIT.
PERFORM F002_GET_DATA.
PERFORM F005_DISPLAY_DATA USING W_LISTHEADER[].
PERFORM F007_ALV_SORT.
*---------------------------------------------------------------------*
* END-OF-SELECTION *
*---------------------------------------------------------------------*
END-OF-SELECTION.
PERFORM F006_DISPLAY_LIST.
*----------------------------------------------------------------------*
* TOP-OF-PAGE *
*----------------------------------------------------------------------*
TOP-OF-PAGE.
*----------------------------------------------------------------------*
* END-OF-PAGE *
*----------------------------------------------------------------------*
END-OF-PAGE.
*&---------------------------------------------------------------------*
*& Form F001_VALIDATE
*&---------------------------------------------------------------------*
FORM F001_VALIDATE .
DATA : LW_DATE1(10) TYPE C.
DATA : LW_DATE2(10) TYPE C.
DATA : LW_NAME1 LIKE T001W-NAME1.
SELECT MK~BUDAT MK~MBLNR
MS~MATNR MS~ERFMG MS~ERFME
MA~MAKTX
INTO CORRESPONDING FIELDS OF TABLE IT_MAIN1
FROM MKPF AS MK INNER JOIN
MSEG AS MS ON MK~MBLNR = MS~MBLNR
INNER JOIN
MAKT AS MA
ON MS~MATNR = MA~MATNR
WHERE MK~BUDAT IN SO_BUDAT AND
MK~VGART = 'WA' AND
MS~WERKS = 'P002' AND
MS~BWART = '521' AND
MA~SPRAS = 'E'.
IF SY-SUBRC NE 0.
MESSAGE E001(ZVVF_CR011_MESSAGE).
ENDIF.
******-------FOR DEDUCTING REVERSAL QTY
SELECT MK~BUDAT MK~MBLNR
MS~MATNR MS~ERFMG MS~ERFME
MA~MAKTX
INTO CORRESPONDING FIELDS OF TABLE IT_MAIN2
FROM MKPF AS MK INNER JOIN
MSEG AS MS ON MK~MBLNR = MS~MBLNR
INNER JOIN
MAKT AS MA
ON MS~MATNR = MA~MATNR
WHERE MK~BUDAT IN SO_BUDAT AND
MK~VGART = 'WA' AND
MS~WERKS = 'P002' AND
MS~BWART = '522' AND
MA~SPRAS = 'E'.
LOOP AT IT_MAIN1.
READ TABLE IT_MAIN2 WITH KEY BUDAT = IT_MAIN1-BUDAT
MATNR = IT_MAIN1-MATNR.
IF SY-SUBRC = 0.
IT_MAIN-BUDAT = IT_MAIN1-BUDAT.
IT_MAIN-MBLNR = IT_MAIN1-MBLNR.
IT_MAIN-MATNR = IT_MAIN1-MATNR.
IT_MAIN-MAKTX = IT_MAIN1-MAKTX.
IT_MAIN-ERFMG = IT_MAIN1-ERFMG - IT_MAIN2-ERFMG.
IT_MAIN-ERFME = IT_MAIN1-ERFME.
APPEND IT_MAIN.
ELSE.
IT_MAIN-BUDAT = IT_MAIN1-BUDAT.
IT_MAIN-MBLNR = IT_MAIN1-MBLNR.
IT_MAIN-MATNR = IT_MAIN1-MATNR.
IT_MAIN-MAKTX = IT_MAIN1-MAKTX.
IT_MAIN-ERFMG = IT_MAIN1-ERFMG.
IT_MAIN-ERFME = IT_MAIN1-ERFME.
APPEND IT_MAIN.
ENDIF.
ENDLOOP.
*---------END OF FOR DEDUCTING REVERSAL QTY
CONCATENATE SO_BUDAT-LOW+6(2) '.' SO_BUDAT-LOW+4(2) '.'
SO_BUDAT-LOW+2(2) INTO LW_DATE1.
CONCATENATE SO_BUDAT-HIGH+6(2) '.' SO_BUDAT-HIGH+4(2) '.'
SO_BUDAT-HIGH+2(2) INTO LW_DATE2.
CONCATENATE 'Noodle Production v/s Daily Dispatch for'
'' LW_DATE1 '' '-' '' LW_DATE2 INTO W_INFO.
CONCATENATE 'Plant Code :' 'P002' INTO W_INFO1.
SELECT SINGLE NAME1 INTO LW_NAME1
FROM T001W
WHERE WERKS = 'P002'.
CONCATENATE 'Plant Name :' LW_NAME1 INTO W_INFO2.
ENDFORM. " F001_VALIDATE
*&---------------------------------------------------------------------*
*& Form F002_GET_DATA
*&---------------------------------------------------------------------*
FORM F002_GET_DATA .
DATA : LW_PSEN_DUR TYPE PSEN_DURATION_DEC,
LW_DUR TYPE I,
LW_CNT1 TYPE PSEN_DURATION_DEC,
LW_CNT TYPE I,
LW_DATE TYPE ENDDA.
SELECT MK~BUDAT MK~MBLNR
MS~MATNR MS~ERFMG MS~ERFME
MA~MAKTX
INTO CORRESPONDING FIELDS OF TABLE IT_MSEG_KA_1
FROM MSEG AS MS INNER JOIN
MKPF AS MK ON MS~MBLNR = MK~MBLNR
INNER JOIN
MAKT AS MA ON MS~MATNR = MA~MATNR
WHERE MK~BUDAT IN SO_BUDAT AND
MK~VGART = 'WL' AND
MS~UMWRK = 'P011' AND
MS~BWART = '641' AND
MS~XAUTO NE 'X' AND
MA~SPRAS = 'E'.
*----FOR DEDUCTING REVERSAL QTY
SELECT MK~BUDAT MK~MBLNR
MS~MATNR MS~ERFMG MS~ERFME
MA~MAKTX
INTO CORRESPONDING FIELDS OF TABLE IT_MSEG_KA_2
FROM MSEG AS MS INNER JOIN
MKPF AS MK ON MS~MBLNR = MK~MBLNR
INNER JOIN
MAKT AS MA ON MS~MATNR = MA~MATNR
WHERE MK~BUDAT IN SO_BUDAT AND
MK~VGART = 'WL' AND
MS~UMWRK = 'P011' AND
MS~BWART = '642' AND
MS~XAUTO NE 'X' AND
MA~SPRAS = 'E'.
LOOP AT IT_MSEG_KA_1.
READ TABLE IT_MSEG_KA_2 WITH KEY BUDAT = IT_MSEG_KA_2-BUDAT
MATNR = IT_MSEG_KA_2-MATNR.
IF SY-SUBRC = 0.
IT_MSEG_KA-BUDAT = IT_MSEG_KA_1-BUDAT.
IT_MSEG_KA-MBLNR = IT_MSEG_KA_1-MBLNR.
IT_MSEG_KA-MATNR = IT_MSEG_KA_1-MATNR.
IT_MSEG_KA-MAKTX = IT_MSEG_KA_1-MAKTX.
IT_MSEG_KA-ERFMG = IT_MSEG_KA_1-ERFMG - IT_MSEG_KA_2-ERFMG.
IT_MSEG_KA-ERFME = IT_MSEG_KA_1-ERFME.
APPEND IT_MSEG_KA.
ELSE.
IT_MSEG_KA-BUDAT = IT_MSEG_KA_1-BUDAT.
IT_MSEG_KA-MBLNR = IT_MSEG_KA_1-MBLNR.
IT_MSEG_KA-MATNR = IT_MSEG_KA_1-MATNR.
IT_MSEG_KA-MAKTX = IT_MSEG_KA_1-MAKTX.
IT_MSEG_KA-ERFMG = IT_MSEG_KA_1-ERFMG.
IT_MSEG_KA-ERFME = IT_MSEG_KA_1-ERFME.
APPEND IT_MSEG_KA.
ENDIF.
ENDLOOP.
*---------END OF FOR DEDUCTING REVERSAL QTY
SELECT MK~BUDAT MK~MBLNR
MS~MATNR MS~ERFMG MS~ERFME
MA~MAKTX
INTO CORRESPONDING FIELDS OF TABLE IT_MSEG_NV_1
FROM MSEG AS MS INNER JOIN
MKPF AS MK ON MS~MBLNR = MK~MBLNR
INNER JOIN
MAKT AS MA ON MS~MATNR = MA~MATNR
WHERE MK~BUDAT IN SO_BUDAT AND
MK~VGART = 'WL' AND
MS~UMWRK = 'P013' AND
MS~BWART = '641' AND
MS~XAUTO NE 'X' AND
MA~SPRAS = 'E'.
*--------FOR DEDUCTING REVERSAL QTY
SELECT MK~BUDAT MK~MBLNR
MS~MATNR MS~ERFMG MS~ERFME
MA~MAKTX
INTO CORRESPONDING FIELDS OF TABLE IT_MSEG_NV_2
FROM MSEG AS MS INNER JOIN
MKPF AS MK ON MS~MBLNR = MK~MBLNR
INNER JOIN
MAKT AS MA ON MS~MATNR = MA~MATNR
WHERE MK~BUDAT IN SO_BUDAT AND
MK~VGART = 'WL' AND
MS~UMWRK = 'P013' AND
MS~BWART = '642' AND
MS~XAUTO NE 'X' AND
MA~SPRAS = 'E'.
LOOP AT IT_MSEG_NV_1.
READ TABLE IT_MSEG_NV_2 WITH KEY BUDAT = IT_MSEG_NV_2-BUDAT
MATNR = IT_MSEG_NV_2-MATNR.
IF SY-SUBRC = 0.
IT_MSEG_NV-BUDAT = IT_MSEG_NV_1-BUDAT.
IT_MSEG_NV-MBLNR = IT_MSEG_NV_1-MBLNR.
IT_MSEG_NV-MATNR = IT_MSEG_NV_1-MATNR.
IT_MSEG_NV-MAKTX = IT_MSEG_NV_1-MAKTX.
IT_MSEG_NV-ERFMG = IT_MSEG_NV_1-ERFMG - IT_MSEG_NV_2-ERFMG.
IT_MSEG_NV-ERFME = IT_MSEG_NV_1-ERFME.
APPEND IT_MSEG_NV.
ELSE.
IT_MSEG_NV-BUDAT = IT_MSEG_NV_1-BUDAT.
IT_MSEG_NV-MBLNR = IT_MSEG_NV_1-MBLNR.
IT_MSEG_NV-MATNR = IT_MSEG_NV_1-MATNR.
IT_MSEG_NV-MAKTX = IT_MSEG_NV_1-MAKTX.
IT_MSEG_NV-ERFMG = IT_MSEG_NV_1-ERFMG.
IT_MSEG_NV-ERFME = IT_MSEG_NV_1-ERFME.
APPEND IT_MSEG_NV.
ENDIF.
ENDLOOP.
*---------END OF FOR DEDUCTING REVERSAL QTY
SELECT MK~BUDAT MK~MBLNR
MS~MATNR MS~ERFMG MS~ERFME
MA~MAKTX
INTO CORRESPONDING FIELDS OF TABLE IT_MSEG_DU_1
FROM MSEG AS MS INNER JOIN
MKPF AS MK ON MS~MBLNR = MK~MBLNR
INNER JOIN
MAKT AS MA ON MS~MATNR = MA~MATNR
WHERE MK~BUDAT IN SO_BUDAT AND
MK~VGART = 'WL' AND
MS~UMWRK = 'P002' AND
MS~BWART = '601' AND
MS~KUNNR IN ('518','465') AND
MS~XAUTO NE 'X' AND
MA~SPRAS = 'E'.
**------FOR DEDUCTING THE REVERSAL QTY
SELECT MK~BUDAT MK~MBLNR
MS~MATNR MS~ERFMG MS~ERFME
MA~MAKTX
INTO CORRESPONDING FIELDS OF TABLE IT_MSEG_DU_2
FROM MSEG AS MS INNER JOIN
MKPF AS MK ON MS~MBLNR = MK~MBLNR
INNER JOIN
MAKT AS MA ON MS~MATNR = MA~MATNR
WHERE MK~BUDAT IN SO_BUDAT AND
MK~VGART = 'WL' AND
MS~UMWRK = 'P002' AND
MS~BWART = '602' AND
MS~KUNNR IN ('518','465') AND
MS~XAUTO NE 'X' AND
MA~SPRAS = 'E'.
LOOP AT IT_MSEG_DU_1.
READ TABLE IT_MSEG_DU_2 WITH KEY BUDAT = IT_MSEG_DU_2-BUDAT
MATNR = IT_MSEG_DU_2-MATNR.
IF SY-SUBRC = 0.
IT_MSEG_DU-BUDAT = IT_MSEG_DU_1-BUDAT.
IT_MSEG_DU-MBLNR = IT_MSEG_DU_1-MBLNR.
IT_MSEG_DU-MATNR = IT_MSEG_DU_1-MATNR.
IT_MSEG_DU-MAKTX = IT_MSEG_DU_1-MAKTX.
IT_MSEG_DU-ERFMG = IT_MSEG_DU_1-ERFMG - IT_MSEG_DU_2-ERFMG.
IT_MSEG_DU-ERFME = IT_MSEG_DU_1-ERFME.
APPEND IT_MSEG_DU.
ELSE.
IT_MSEG_DU-BUDAT = IT_MSEG_DU_1-BUDAT.
IT_MSEG_DU-MBLNR = IT_MSEG_DU_1-MBLNR.
IT_MSEG_DU-MATNR = IT_MSEG_DU_1-MATNR.
IT_MSEG_DU-MAKTX = IT_MSEG_DU_1-MAKTX.
IT_MSEG_DU-ERFMG = IT_MSEG_DU_1-ERFMG.
IT_MSEG_DU-ERFME = IT_MSEG_DU_1-ERFME.
APPEND IT_MSEG_DU.
ENDIF.
ENDLOOP.
*---------END OF FOR DEDUCTING REVERSAL QTY
SELECT MK~BUDAT MK~MBLNR
MS~MATNR MS~ERFMG MS~ERFME
MA~MAKTX
INTO CORRESPONDING FIELDS OF TABLE IT_MSEG_AM_1
FROM MSEG AS MS INNER JOIN
MKPF AS MK ON MS~MBLNR = MK~MBLNR
INNER JOIN
MAKT AS MA ON MS~MATNR = MA~MATNR
WHERE MK~BUDAT IN SO_BUDAT AND
MK~VGART = 'WL' AND
MS~UMWRK = 'P002' AND
MS~BWART = '601' AND
MS~KUNNR = '516' AND
MS~XAUTO NE 'X' AND
MA~SPRAS = 'E'.
*----FOR DEDUCTING REVERSAL
SELECT MK~BUDAT MK~MBLNR
MS~MATNR MS~ERFMG MS~ERFME
MA~MAKTX
INTO CORRESPONDING FIELDS OF TABLE IT_MSEG_AM_2
FROM MSEG AS MS INNER JOIN
MKPF AS MK ON MS~MBLNR = MK~MBLNR
INNER JOIN
MAKT AS MA ON MS~MATNR = MA~MATNR
WHERE MK~BUDAT IN SO_BUDAT AND
MK~VGART = 'WL' AND
MS~UMWRK = 'P002' AND
MS~BWART = '602' AND
MS~KUNNR = '516' AND
MS~XAUTO NE 'X' AND
MA~SPRAS = 'E'.
LOOP AT IT_MSEG_AM_1.
READ TABLE IT_MSEG_AM_2 WITH KEY BUDAT = IT_MSEG_AM_2-BUDAT
MATNR = IT_MSEG_AM_2-MATNR.
IF SY-SUBRC = 0.
IT_MSEG_AM-BUDAT = IT_MSEG_AM_1-BUDAT.
IT_MSEG_AM-MBLNR = IT_MSEG_AM_1-MBLNR.
IT_MSEG_AM-MATNR = IT_MSEG_AM_1-MATNR.
IT_MSEG_AM-MAKTX = IT_MSEG_AM_1-MAKTX.
IT_MSEG_AM-ERFMG = IT_MSEG_AM_1-ERFMG - IT_MSEG_AM_2-ERFMG.
IT_MSEG_AM-ERFME = IT_MSEG_AM_1-ERFME.
APPEND IT_MSEG_AM.
ELSE.
IT_MSEG_AM-BUDAT = IT_MSEG_AM_1-BUDAT.
IT_MSEG_AM-MBLNR = IT_MSEG_AM_1-MBLNR.
IT_MSEG_AM-MATNR = IT_MSEG_AM_1-MATNR.
IT_MSEG_AM-MAKTX = IT_MSEG_AM_1-MAKTX.
IT_MSEG_AM-ERFMG = IT_MSEG_AM_1-ERFMG.
IT_MSEG_AM-ERFME = IT_MSEG_AM_1-ERFME.
APPEND IT_MSEG_AM.
ENDIF.
ENDLOOP.
*----END OF DEDUCTING REVERSAL
SELECT MK~BUDAT MK~MBLNR
MS~MATNR MS~ERFMG MS~ERFME
MA~MAKTX
INTO CORRESPONDING FIELDS OF TABLE IT_MSEG_OT_1
FROM MSEG AS MS INNER JOIN
MKPF AS MK ON MS~MBLNR = MK~MBLNR
INNER JOIN
MAKT AS MA ON MS~MATNR = MA~MATNR
WHERE MK~BUDAT IN SO_BUDAT AND
MK~VGART = 'WL' AND
MS~UMWRK = 'P002' AND
MS~BWART = '601' AND
MS~XAUTO NE 'X' AND
MA~SPRAS = 'E'.
*----FOR DEDUCTING REVERSAL
SELECT MK~BUDAT MK~MBLNR
MS~MATNR MS~ERFMG MS~ERFME
MA~MAKTX
INTO CORRESPONDING FIELDS OF TABLE IT_MSEG_OT_2
FROM MSEG AS MS INNER JOIN
MKPF AS MK ON MS~MBLNR = MK~MBLNR
INNER JOIN
MAKT AS MA ON MS~MATNR = MA~MATNR
WHERE MK~BUDAT IN SO_BUDAT AND
MK~VGART = 'WL' AND
MS~UMWRK = 'P002' AND
MS~BWART = '602' AND
MS~XAUTO NE 'X' AND
MA~SPRAS = 'E'.
LOOP AT IT_MSEG_OT_1.
READ TABLE IT_MSEG_OT_2 WITH KEY BUDAT = IT_MSEG_OT_2-BUDAT
MATNR = IT_MSEG_OT_2-MATNR.
IF SY-SUBRC = 0.
IT_MSEG_OT-BUDAT = IT_MSEG_OT_1-BUDAT.
IT_MSEG_OT-MBLNR = IT_MSEG_OT_1-MBLNR.
IT_MSEG_OT-MATNR = IT_MSEG_OT_1-MATNR.
IT_MSEG_OT-MAKTX = IT_MSEG_OT_1-MAKTX.
IT_MSEG_OT-ERFMG = IT_MSEG_OT_1-ERFMG - IT_MSEG_OT_2-ERFMG.
IT_MSEG_OT-ERFME = IT_MSEG_OT_1-ERFME.
APPEND IT_MSEG_OT.
ELSE.
IT_MSEG_OT-BUDAT = IT_MSEG_OT_1-BUDAT.
IT_MSEG_OT-MBLNR = IT_MSEG_OT_1-MBLNR.
IT_MSEG_OT-MATNR = IT_MSEG_OT_1-MATNR.
IT_MSEG_OT-MAKTX = IT_MSEG_OT_1-MAKTX.
IT_MSEG_OT-ERFMG = IT_MSEG_OT_1-ERFMG.
IT_MSEG_OT-ERFME = IT_MSEG_OT_1-ERFME.
APPEND IT_MSEG_OT.
ENDIF.
ENDLOOP.
*----END OF DEDUCTING REVERSAL
SORT IT_MSEG_KA BY BUDAT.
LOOP AT IT_MSEG_KA INTO WA_MSEG_KA.
AT END OF MATNR.
SUM.
READ TABLE IT_MSEG_KA WITH KEY BUDAT = WA_MSEG_KA-BUDAT
MATNR = WA_MSEG_KA-MATNR.
IF SY-SUBRC = 0.
IT_MSEG_KA1-MATNR = IT_MSEG_KA-MATNR.
IT_MSEG_KA1-MAKTX = IT_MSEG_KA-MAKTX.
IT_MSEG_KA1-BUDAT = IT_MSEG_KA-BUDAT.
IT_MSEG_KA1-ERFMG = WA_MSEG_KA-ERFMG.
IT_MSEG_KA1-ERFME = IT_MSEG_KA-ERFME.
ENDIF.
APPEND IT_MSEG_KA1.
CLEAR IT_MSEG_KA1.
ENDAT.
ENDLOOP.
SORT IT_MSEG_NV BY BUDAT MATNR.
LOOP AT IT_MSEG_NV INTO WA_MSEG_NV.
AT END OF MATNR.
SUM.
READ TABLE IT_MSEG_NV WITH KEY BUDAT = WA_MSEG_NV-BUDAT
MATNR = WA_MSEG_NV-MATNR.
IF SY-SUBRC = 0.
IT_MSEG_NV1-MATNR = IT_MSEG_NV-MATNR.
IT_MSEG_NV1-MAKTX = IT_MSEG_NV-MAKTX.
IT_MSEG_NV1-BUDAT = IT_MSEG_NV-BUDAT.
IT_MSEG_NV1-ERFMG = WA_MSEG_NV-ERFMG.
IT_MSEG_NV1-ERFME = IT_MSEG_NV-ERFME.
ENDIF.
APPEND IT_MSEG_NV1.
CLEAR IT_MSEG_NV1.
ENDAT.
ENDLOOP.
SORT IT_MSEG_DU BY BUDAT.
LOOP AT IT_MSEG_DU INTO WA_MSEG_DU.
AT END OF MATNR.
SUM.
READ TABLE IT_MSEG_DU WITH KEY BUDAT = WA_MSEG_DU-BUDAT
MATNR = WA_MSEG_DU-MATNR.
IF SY-SUBRC = 0.
IT_MSEG_DU1-MATNR = IT_MSEG_DU-MATNR.
IT_MSEG_DU1-MAKTX = IT_MSEG_DU-MAKTX.
IT_MSEG_DU1-BUDAT = IT_MSEG_DU-BUDAT.
IT_MSEG_DU1-ERFMG = WA_MSEG_DU-ERFMG.
IT_MSEG_DU1-ERFME = IT_MSEG_DU-ERFME.
ENDIF.
APPEND IT_MSEG_DU1.
CLEAR IT_MSEG_DU1.
ENDAT.
ENDLOOP.
SORT IT_MSEG_AM BY BUDAT.
LOOP AT IT_MSEG_AM INTO WA_MSEG_AM.
AT END OF MATNR.
SUM.
READ TABLE IT_MSEG_AM WITH KEY BUDAT = WA_MSEG_AM-BUDAT
MATNR = WA_MSEG_AM-MATNR.
IF SY-SUBRC = 0.
IT_MSEG_AM1-MATNR = IT_MSEG_AM-MATNR.
IT_MSEG_AM1-MAKTX = IT_MSEG_AM-MAKTX.
IT_MSEG_AM1-BUDAT = IT_MSEG_AM-BUDAT.
IT_MSEG_AM1-ERFMG = WA_MSEG_AM-ERFMG.
IT_MSEG_AM1-ERFME = IT_MSEG_AM-ERFME.
ENDIF.
APPEND IT_MSEG_AM1.
CLEAR IT_MSEG_AM1.
ENDAT.
ENDLOOP.
SORT IT_MSEG_OT BY BUDAT.
LOOP AT IT_MSEG_OT INTO WA_MSEG_OT.
AT END OF MATNR.
SUM.
READ TABLE IT_MSEG_OT WITH KEY BUDAT = WA_MSEG_OT-BUDAT
MATNR = WA_MSEG_OT-MATNR.
IF SY-SUBRC = 0.
IT_MSEG_OT1-MATNR = IT_MSEG_OT-MATNR.
IT_MSEG_OT1-MAKTX = IT_MSEG_OT-MAKTX.
IT_MSEG_OT1-BUDAT = IT_MSEG_OT-BUDAT.
IT_MSEG_OT1-ERFMG = WA_MSEG_OT-ERFMG.
IT_MSEG_OT1-ERFME = IT_MSEG_OT-ERFME.
ENDIF.
APPEND IT_MSEG_OT1.
CLEAR IT_MSEG_OT1.
ENDAT.
ENDLOOP.
* IF SO_BUDAT-HIGH IS INITIAL.
* SO_BUDAT-HIGH = SO_BUDAT-LOW.
* ENDIF.
*
* CALL FUNCTION 'HR_SEN_CALE_DAYS_DURATION'
* EXPORTING
* ID_BEGDA = SO_BUDAT-LOW
* ID_ENDDA = SO_BUDAT-HIGH
* IMPORTING
* ES_DURATION = LW_PSEN_DUR
* EXCEPTIONS
* CONVERSION_NOT_SPECIFIED = 1
* CONVERSION_NOT_POSSIBLE = 2
* OTHERS = 3
* .
* IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
* ENDIF.
*
* LW_DUR = LW_PSEN_DUR-CALDD.
*
* DO LW_DUR TIMES.
*
* LW_CNT = LW_CNT + 1.
*
* LW_CNT1-CALDD = LW_CNT.
*
* CALL FUNCTION 'HR_SEN_CALE_DAYS_DATE'
* EXPORTING
* ID_DATE = SO_BUDAT-LOW
* ID_OPERATOR = '+'
* IS_DURATION = LW_CNT1
* IMPORTING
* ED_DATE = LW_DATE
* EXCEPTIONS
* CONVERSION_NOT_SPECIFIED = 1
* CONVERSION_NOT_POSSIBLE = 2
* OTHERS = 3
* .
* IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
* ENDIF.
IF IT_MAIN[] IS NOT INITIAL.
LOOP AT IT_MAIN.
MOVE IT_MAIN-BUDAT TO IT_DATA-BUDAT.
MOVE IT_MAIN-MATNR TO IT_DATA-MATNR.
MOVE IT_MAIN-MAKTX TO IT_DATA-MAKTX.
MOVE IT_MAIN-ERFMG TO IT_DATA-ERFMG.
MOVE IT_MAIN-ERFME TO IT_DATA-ERFME.
APPEND IT_DATA.
ENDLOOP.
ENDIF.
CLEAR IT_DATA.
IF IT_MSEG_KA1[] IS NOT INITIAL.
LOOP AT IT_MSEG_KA1 INTO WA_MSEG_KA.
READ TABLE IT_MAIN WITH KEY BUDAT = WA_MSEG_KA-BUDAT
MATNR = WA_MSEG_KA-MATNR.
IF SY-SUBRC = 0.
MOVE WA_MSEG_KA-BUDAT TO IT_DATA-BUDAT.
MOVE WA_MSEG_KA-MATNR TO IT_DATA-MATNR_K.
MOVE WA_MSEG_KA-MAKTX TO IT_DATA-MAKTX_K.
MOVE WA_MSEG_KA-ERFMG TO IT_DATA-ERFMG_K.
MOVE WA_MSEG_KA-ERFME TO IT_DATA-ERFME_K.
MODIFY IT_DATA TRANSPORTING BUDAT MATNR_K MAKTX_K ERFMG_K ERFME_K
WHERE BUDAT = WA_MSEG_KA-BUDAT AND
MATNR = WA_MSEG_KA-MATNR.
CLEAR WA_MSEG_KA.
ELSE.
MOVE WA_MSEG_KA-BUDAT TO IT_DATA-BUDAT.
MOVE WA_MSEG_KA-MATNR TO IT_DATA-MATNR_K.
MOVE WA_MSEG_KA-MAKTX TO IT_DATA-MAKTX_K.
MOVE WA_MSEG_KA-ERFMG TO IT_DATA-ERFMG_K.
MOVE WA_MSEG_KA-ERFME TO IT_DATA-ERFME_K.
APPEND IT_DATA.
ENDIF.
ENDLOOP.
ENDIF.
CLEAR IT_DATA.
IF IT_MSEG_NV1[] IS NOT INITIAL.
LOOP AT IT_MSEG_NV1 INTO WA_MSEG_NV.
READ TABLE IT_MAIN WITH KEY BUDAT = WA_MSEG_NV-BUDAT
MATNR = WA_MSEG_NV-MATNR.
IF SY-SUBRC = 0.
MOVE WA_MSEG_NV-BUDAT TO IT_DATA-BUDAT.
MOVE WA_MSEG_NV-MATNR TO IT_DATA-MATNR_N.
MOVE WA_MSEG_NV-MAKTX TO IT_DATA-MAKTX_N.
MOVE WA_MSEG_NV-ERFMG TO IT_DATA-ERFMG_N.
MOVE WA_MSEG_NV-ERFME TO IT_DATA-ERFME_N.
* APPEND IT_DATA.
MODIFY IT_DATA TRANSPORTING BUDAT MATNR_N MAKTX_N ERFMG_N ERFME_N
WHERE BUDAT = WA_MSEG_NV-BUDAT AND
MATNR = WA_MSEG_NV-MATNR.
CLEAR WA_MSEG_NV.
ELSE.
MOVE WA_MSEG_NV-BUDAT TO IT_DATA-BUDAT.
MOVE WA_MSEG_NV-MATNR TO IT_DATA-MATNR_N.
MOVE WA_MSEG_NV-MAKTX TO IT_DATA-MAKTX_N.
MOVE WA_MSEG_NV-ERFMG TO IT_DATA-ERFMG_N.
MOVE WA_MSEG_NV-ERFME TO IT_DATA-ERFME_N.
APPEND IT_DATA.
ENDIF.
ENDLOOP.
ENDIF.
CLEAR IT_DATA.
IF IT_MSEG_DU1[] IS NOT INITIAL.
LOOP AT IT_MSEG_DU1 INTO WA_MSEG_DU .
READ TABLE IT_MAIN WITH KEY BUDAT = WA_MSEG_DU-BUDAT
MATNR = WA_MSEG_DU-MATNR.
IF SY-SUBRC = 0.
MOVE WA_MSEG_DU-BUDAT TO IT_DATA-BUDAT.
MOVE WA_MSEG_DU-MATNR TO IT_DATA-MATNR_D.
MOVE WA_MSEG_DU-MAKTX TO IT_DATA-MAKTX_D.
MOVE WA_MSEG_DU-ERFMG TO IT_DATA-ERFMG_D.
MOVE WA_MSEG_DU-ERFME TO IT_DATA-ERFME_D.
* APPEND IT_DATA.
MODIFY IT_DATA TRANSPORTING BUDAT MATNR_D MAKTX_D ERFMG_D ERFME_D
WHERE BUDAT = WA_MSEG_DU-BUDAT AND
MATNR = WA_MSEG_DU-MATNR.
CLEAR WA_MSEG_DU.
ELSE.
MOVE WA_MSEG_DU-BUDAT TO IT_DATA-BUDAT.
MOVE WA_MSEG_DU-MATNR TO IT_DATA-MATNR_D.
MOVE WA_MSEG_DU-MAKTX TO IT_DATA-MAKTX_D.
MOVE WA_MSEG_DU-ERFMG TO IT_DATA-ERFMG_D.
MOVE WA_MSEG_DU-ERFME TO IT_DATA-ERFME_D.
APPEND IT_DATA.
ENDIF.
ENDLOOP.
ENDIF.
CLEAR IT_DATA.
IF IT_MSEG_AM1[] IS NOT INITIAL.
LOOP AT IT_MSEG_AM1 INTO WA_MSEG_AM.
READ TABLE IT_MAIN WITH KEY BUDAT = WA_MSEG_AM-BUDAT
MATNR = WA_MSEG_AM-MATNR.
IF SY-SUBRC = 0.
MOVE WA_MSEG_AM-BUDAT TO IT_DATA-BUDAT.
MOVE WA_MSEG_AM-MATNR TO IT_DATA-MATNR_A.
MOVE WA_MSEG_AM-MAKTX TO IT_DATA-MAKTX_A.
MOVE WA_MSEG_AM-ERFMG TO IT_DATA-ERFMG_A.
MOVE WA_MSEG_AM-ERFME TO IT_DATA-ERFME_A.
* APPEND IT_DATA.
MODIFY IT_DATA TRANSPORTING BUDAT MATNR_A MAKTX_A ERFMG_A ERFME_A
WHERE BUDAT = WA_MSEG_AM-BUDAT AND
MATNR = WA_MSEG_AM-MATNR.
CLEAR WA_MSEG_AM.
ELSE.
MOVE WA_MSEG_AM-BUDAT TO IT_DATA-BUDAT.
MOVE WA_MSEG_AM-MATNR TO IT_DATA-MATNR_A.
MOVE WA_MSEG_AM-MAKTX TO IT_DATA-MAKTX_A.
MOVE WA_MSEG_AM-ERFMG TO IT_DATA-ERFMG_A.
MOVE WA_MSEG_AM-ERFME TO IT_DATA-ERFME_A.
APPEND IT_DATA.
ENDIF.
ENDLOOP.
ENDIF.
CLEAR IT_DATA.
IF IT_MSEG_OT1[] IS NOT INITIAL.
LOOP AT IT_MSEG_OT1 INTO WA_MSEG_OT.
READ TABLE IT_MAIN WITH KEY BUDAT = WA_MSEG_OT-BUDAT
MATNR = WA_MSEG_OT-MATNR.
IF SY-SUBRC = 0.
MOVE WA_MSEG_OT-BUDAT TO IT_DATA-BUDAT.
MOVE WA_MSEG_OT-MATNR TO IT_DATA-MATNR_O.
MOVE WA_MSEG_OT-MAKTX TO IT_DATA-MAKTX_O.
MOVE WA_MSEG_OT-ERFMG TO IT_DATA-ERFMG_O.
MOVE WA_MSEG_OT-ERFME TO IT_DATA-ERFME_O.
* APPEND IT_DATA.
MODIFY IT_DATA TRANSPORTING BUDAT MATNR_O MAKTX_O ERFMG_O ERFME_O
WHERE BUDAT = WA_MSEG_OT-BUDAT AND
MATNR = WA_MSEG_OT-MATNR.
CLEAR WA_MSEG_OT.
ELSE.
MOVE WA_MSEG_OT-BUDAT TO IT_DATA-BUDAT.
MOVE WA_MSEG_OT-MATNR TO IT_DATA-MATNR_O.
MOVE WA_MSEG_OT-MAKTX TO IT_DATA-MAKTX_O.
MOVE WA_MSEG_OT-ERFMG TO IT_DATA-ERFMG_O.
MOVE WA_MSEG_OT-ERFME TO IT_DATA-ERFME_O.
APPEND IT_DATA.
ENDIF.
ENDLOOP.
ENDIF.
SORT IT_DATA BY BUDAT.
* ENDDO.
PERFORM F008_LEADING_ZEROS.
ENDFORM. " F002_GET_DATA
*&---------------------------------------------------------------------*
*& Form F003_EVENTTAB_BUILD_TEMP
*&---------------------------------------------------------------------*
FORM F003_EVENTTAB_BUILD_TEMP USING RT_EVENTS TYPE SLIS_T_EVENT.
DATA : LW_EVENT TYPE SLIS_ALV_EVENT.
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
I_LIST_TYPE = 0
IMPORTING
ET_EVENTS = RT_EVENTS
EXCEPTIONS
LIST_TYPE_WRONG = 1
OTHERS = 2.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
READ TABLE RT_EVENTS WITH KEY NAME = SLIS_EV_TOP_OF_PAGE INTO LW_EVENT
.
IF SY-SUBRC = 0.
MOVE W_TOP_OF_PAGE TO LW_EVENT-FORM.
APPEND LW_EVENT TO RT_EVENTS.
ENDIF.
ENDFORM. " F003_EVENTTAB_BUILD_TEMP
*&---------------------------------------------------------------------*
*& Form F004_FIELDCAT_INIT
*&---------------------------------------------------------------------*
FORM F004_FIELDCAT_INIT .
DATA : LW_FIELDCAT TYPE SLIS_FIELDCAT_ALV.
CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'BUDAT'.
LW_FIELDCAT-SELTEXT_M = 'POSTING DATE'.
LW_FIELDCAT-OUTPUTLEN = 8.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.
CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'MATNR'.
LW_FIELDCAT-SELTEXT_M = 'MATERIAL CODE'.
LW_FIELDCAT-OUTPUTLEN = 18.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.
CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'MAKTX'.
LW_FIELDCAT-SELTEXT_M = 'MATERIAL DESCRIPTION'.
LW_FIELDCAT-OUTPUTLEN = 40.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.
CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'ERFMG'.
LW_FIELDCAT-SELTEXT_M = 'PROD QTY'.
LW_FIELDCAT-OUTPUTLEN = 14.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.
CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'ERFME'.
LW_FIELDCAT-SELTEXT_M = 'UOE'.
LW_FIELDCAT-OUTPUTLEN = 5.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.
CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'MATNR_K'.
LW_FIELDCAT-SELTEXT_M = 'MATERIAL CODE'.
LW_FIELDCAT-OUTPUTLEN = 18.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.
CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'MAKTX_K'.
LW_FIELDCAT-SELTEXT_M = 'MATERIAL DESCRIPTION'.
LW_FIELDCAT-OUTPUTLEN = 40.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.
CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'ERFMG_K'.
LW_FIELDCAT-SELTEXT_M = 'DISPATCH TO KUTCH'.
LW_FIELDCAT-OUTPUTLEN = 14.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.
CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'ERFME_K'.
LW_FIELDCAT-SELTEXT_M = 'UOE'.
LW_FIELDCAT-OUTPUTLEN = 5.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.
CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'MATNR_N'.
LW_FIELDCAT-SELTEXT_M = 'MATERIAL CODE'.
LW_FIELDCAT-OUTPUTLEN = 18.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.
CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'MAKTX_N'.
LW_FIELDCAT-SELTEXT_M = 'MATERIAL DESCRIPTION'.
LW_FIELDCAT-OUTPUTLEN = 40.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.
CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'ERFMG_N'.
LW_FIELDCAT-SELTEXT_M = 'DISPATCH TO NAVSARI'.
LW_FIELDCAT-OUTPUTLEN = 14.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.
CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'ERFME_N'.
LW_FIELDCAT-SELTEXT_M = 'UOE'.
LW_FIELDCAT-OUTPUTLEN = 5.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.
CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'MATNR_D'.
LW_FIELDCAT-SELTEXT_M = 'MATERIAL CODE'.
LW_FIELDCAT-OUTPUTLEN = 18.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.
CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'MAKTX_D'.
LW_FIELDCAT-SELTEXT_M = 'MATERIAL DESCRIPTION'.
LW_FIELDCAT-OUTPUTLEN = 40.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.
CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'ERFMG_D'.
LW_FIELDCAT-SELTEXT_M = 'DISPATCH TO DUBAI'.
LW_FIELDCAT-OUTPUTLEN = 14.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.
CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'ERFME_D'.
LW_FIELDCAT-SELTEXT_M = 'UOE'.
LW_FIELDCAT-OUTPUTLEN = 5.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.
CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'MATNR_A'.
LW_FIELDCAT-SELTEXT_M = 'MATERIAL CODE'.
LW_FIELDCAT-OUTPUTLEN = 18.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.
CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'MAKTX_A'.
LW_FIELDCAT-SELTEXT_M = 'MATERIAL DESCRIPTION'.
LW_FIELDCAT-OUTPUTLEN = 40.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.
CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'ERFMG_A'.
LW_FIELDCAT-SELTEXT_M = 'DISPATCH TO AMERICA'.
LW_FIELDCAT-OUTPUTLEN = 14.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.
CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'ERFME_A'.
LW_FIELDCAT-SELTEXT_M = 'UOE'.
LW_FIELDCAT-OUTPUTLEN = 5.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.
CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'MATNR_O'.
LW_FIELDCAT-SELTEXT_M = 'MATERIAL CODE'.
LW_FIELDCAT-OUTPUTLEN = 18.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.
CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'MAKTX_O'.
LW_FIELDCAT-SELTEXT_M = 'MATERIAL DESCRIPTION'.
LW_FIELDCAT-OUTPUTLEN = 40.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.
CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'ERFMG_O'.
LW_FIELDCAT-SELTEXT_M = 'DISPATCH TO OTHERS'.
LW_FIELDCAT-OUTPUTLEN = 14.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.
CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'ERFME_O'.
LW_FIELDCAT-SELTEXT_M = 'UOE'.
LW_FIELDCAT-OUTPUTLEN = 5.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.
ENDFORM. " F004_FIELDCAT_INIT
*&---------------------------------------------------------------------*
*& Form F005_DISPLAY_DATA
*&---------------------------------------------------------------------*
FORM F005_DISPLAY_DATA USING GT_LISTHEADER TYPE SLIS_T_LISTHEADER.
DATA : LW_LISTHEADER TYPE SLIS_LISTHEADER.
CLEAR LW_LISTHEADER.
LW_LISTHEADER-TYP = 'H'.
LW_LISTHEADER-INFO = W_INFO.
APPEND LW_LISTHEADER TO GT_LISTHEADER.
CLEAR LW_LISTHEADER.
LW_LISTHEADER-TYP = 'S'.
LW_LISTHEADER-INFO = W_INFO1.
APPEND LW_LISTHEADER TO GT_LISTHEADER.
CLEAR LW_LISTHEADER.
LW_LISTHEADER-TYP = 'S'.
LW_LISTHEADER-INFO = W_INFO2.
APPEND LW_LISTHEADER TO GT_LISTHEADER.
ENDFORM. " F005_DISPLAY_DATA
*&---------------------------------------------------------------------*
*& Form F006_DISPLAY_LIST
*&---------------------------------------------------------------------*
FORM F006_DISPLAY_LIST .
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
* I_INTERFACE_CHECK = ' '
* I_BYPASSING_BUFFER = ' '
* I_BUFFER_ACTIVE = ' '
I_CALLBACK_PROGRAM = W_REPID
* I_CALLBACK_PF_STATUS_SET = ' '
* I_CALLBACK_USER_COMMAND = ' '
I_CALLBACK_TOP_OF_PAGE = 'TOP_OF_PAGE'
* I_CALLBACK_HTML_TOP_OF_PAGE = ' '
* I_CALLBACK_HTML_END_OF_LIST = ' '
* I_STRUCTURE_NAME =
I_BACKGROUND_ID = 'ALV_BACKGROUND'
* I_GRID_TITLE =
* I_GRID_SETTINGS =
IS_LAYOUT = W_LAYOUT
IT_FIELDCAT = W_FIELDCATALOG[]
* IT_EXCLUDING =
* IT_SPECIAL_GROUPS =
IT_SORT = W_GT_SORT[]
* IT_FILTER =
* IS_SEL_HIDE =
* I_DEFAULT = 'X'
* I_SAVE = ' '
* IS_VARIANT =
IT_EVENTS = W_EVENTS[]
* IT_EVENT_EXIT =
* IS_PRINT =
* IS_REPREP_ID =
* I_SCREEN_START_COLUMN = 0
* I_SCREEN_START_LINE = 0
* I_SCREEN_END_COLUMN = 0
* I_SCREEN_END_LINE = 0
* IT_ALV_GRAPHICS =
* IT_HYPERLINK =
* IT_ADD_FIELDCAT =
* IT_EXCEPT_QINFO =
* I_HTML_HEIGHT_TOP =
* I_HTML_HEIGHT_END =
* IMPORTING
* E_EXIT_CAUSED_BY_CALLER =
* ES_EXIT_CAUSED_BY_USER =
TABLES
T_OUTTAB = IT_DATA
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2
.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDFORM. " F006_DISPLAY_LIST
*&--------------------------------------------------------------------*
*& Form TOP_OF_PAGE
*&--------------------------------------------------------------------*
FORM TOP_OF_PAGE.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
IT_LIST_COMMENTARY = W_LISTHEADER
I_LOGO = ' '.
ENDFORM. "top_of_page_db
*&---------------------------------------------------------------------*
*& Form F007_ALV_SORT
*&---------------------------------------------------------------------*
FORM F007_ALV_SORT .
W_GT_SORT-SPOS = 1.
W_GT_SORT-FIELDNAME = 'BUDAT'.
W_GT_SORT-UP = 'X'.
APPEND W_GT_SORT.
ENDFORM. " F007_ALV_SORT
*&---------------------------------------------------------------------*
*& Form F008_LEADING_ZEROS
*&---------------------------------------------------------------------*
FORM F008_LEADING_ZEROS .
LOOP AT IT_DATA INTO WA_DATA.
SHIFT WA_DATA-MATNR LEFT DELETING LEADING '0'.
SHIFT WA_DATA-MATNR_K LEFT DELETING LEADING '0'.
SHIFT WA_DATA-MATNR_N LEFT DELETING LEADING '0'.
SHIFT WA_DATA-MATNR_D LEFT DELETING LEADING '0'.
SHIFT WA_DATA-MATNR_A LEFT DELETING LEADING '0'.
SHIFT WA_DATA-MATNR_O LEFT DELETING LEADING '0'.
MODIFY IT_DATA FROM WA_DATA TRANSPORTING MATNR MATNR_K MATNR_N MATNR_D
MATNR_A MATNR_O.
ENDLOOP.
ENDFORM. " F008_LEADING_ZEROS
*---------------------------------------------------------------------*
* REPORT ZVVF_CR011_PRODVSDISPATCH *
* *
*---------------------------------------------------------------------*
* *
* MODULE : Production Planning *
* *
*---------------------------------------------------------------------*
* Objective : Report for showing the Details of Noodle Production *
* and daily Dispatch Report *
* *
* Program : Update Tables( ) Download Data( ) Outputs List (X) *
* Technical Specs No : *
* Date Created : *
* Author : *
* Location : *
* LDB : *
*---------------------------------------------------------------------*
*----------------------------------------------------------------------*
* Type-pools
*----------------------------------------------------------------------*
TYPE-POOLS : SLIS.
*---------------------------------------------------------------------*
* Tables *
*---------------------------------------------------------------------*
TABLES : MKPF,
MSEG.
*----------------------------------------------------------------------*
* Types Begin with TY_ *
*----------------------------------------------------------------------*
TYPES : BEGIN OF TY_MAIN,
MATNR LIKE MSEG-MATNR,
BUDAT LIKE MKPF-BUDAT,
MBLNR LIKE MKPF-MBLNR,
MAKTX LIKE MAKT-MAKTX,
ERFMG LIKE MSEG-ERFMG,
ERFME LIKE MSEG-ERFME,
MATNR_K LIKE MSEG-MATNR,
MAKTX_K LIKE MAKT-MAKTX,
ERFMG_K LIKE MSEG-ERFMG,
ERFME_K LIKE MSEG-ERFME,
MATNR_N LIKE MSEG-MATNR,
MAKTX_N LIKE MAKT-MAKTX,
ERFMG_N LIKE MSEG-ERFMG,
ERFME_N LIKE MSEG-ERFME,
MATNR_D LIKE MSEG-MATNR,
MAKTX_D LIKE MAKT-MAKTX,
ERFMG_D LIKE MSEG-ERFMG,
ERFME_D LIKE MSEG-ERFME,
MATNR_A LIKE MSEG-MATNR,
MAKTX_A LIKE MAKT-MAKTX,
ERFMG_A LIKE MSEG-ERFMG,
ERFME_A LIKE MSEG-ERFME,
MATNR_O LIKE MSEG-MATNR,
MAKTX_O LIKE MAKT-MAKTX,
ERFMG_O LIKE MSEG-ERFMG,
ERFME_O LIKE MSEG-ERFME,
END OF TY_MAIN.
TYPES : BEGIN OF TY_MKPF,
BUDAT LIKE MKPF-BUDAT,
MBLNR LIKE MKPF-MBLNR,
END OF TY_MKPF.
TYPES : BEGIN OF TY_MSEG,
BUDAT LIKE MKPF-BUDAT,
MATNR LIKE MSEG-MATNR,
MBLNR LIKE MKPF-MBLNR,
MAKTX LIKE MAKT-MAKTX,
ERFMG LIKE MSEG-ERFMG,
ERFME LIKE MSEG-ERFME,
END OF TY_MSEG.
*---------------------------------------------------------------------*
* INTERNAL TABLE Begin with IT_ *
*---------------------------------------------------------------------*
DATA : IT_MAIN TYPE STANDARD TABLE OF TY_MAIN WITH HEADER LINE.
DATA : IT_MAIN1 TYPE STANDARD TABLE OF TY_MAIN WITH HEADER LINE.
DATA : IT_MAIN2 TYPE STANDARD TABLE OF TY_MAIN WITH HEADER LINE.
DATA : IT_DATA TYPE STANDARD TABLE OF TY_MAIN WITH HEADER LINE.
DATA : IT_MKPF TYPE STANDARD TABLE OF TY_MKPF WITH HEADER LINE.
DATA : IT_MSEG_KA TYPE STANDARD TABLE OF TY_MSEG WITH HEADER LINE.
DATA : IT_MSEG_KA1 TYPE STANDARD TABLE OF TY_MSEG WITH HEADER LINE.
DATA : IT_MSEG_KA_1 TYPE STANDARD TABLE OF TY_MSEG WITH HEADER LINE.
DATA : IT_MSEG_KA_2 TYPE STANDARD TABLE OF TY_MSEG WITH HEADER LINE.
DATA : IT_MSEG_NV TYPE STANDARD TABLE OF TY_MSEG WITH HEADER LINE.
DATA : IT_MSEG_NV1 TYPE STANDARD TABLE OF TY_MSEG WITH HEADER LINE.
DATA : IT_MSEG_NV_1 TYPE STANDARD TABLE OF TY_MSEG WITH HEADER LINE.
DATA : IT_MSEG_NV_2 TYPE STANDARD TABLE OF TY_MSEG WITH HEADER LINE.
DATA : IT_MSEG_DU TYPE STANDARD TABLE OF TY_MSEG WITH HEADER LINE.
DATA : IT_MSEG_DU1 TYPE STANDARD TABLE OF TY_MSEG WITH HEADER LINE.
DATA : IT_MSEG_DU_1 TYPE STANDARD TABLE OF TY_MSEG WITH HEADER LINE.
DATA : IT_MSEG_DU_2 TYPE STANDARD TABLE OF TY_MSEG WITH HEADER LINE.
DATA : IT_MSEG_AM TYPE STANDARD TABLE OF TY_MSEG WITH HEADER LINE.
DATA : IT_MSEG_AM1 TYPE STANDARD TABLE OF TY_MSEG WITH HEADER LINE.
DATA : IT_MSEG_AM_1 TYPE STANDARD TABLE OF TY_MSEG WITH HEADER LINE.
DATA : IT_MSEG_AM_2 TYPE STANDARD TABLE OF TY_MSEG WITH HEADER LINE.
DATA : IT_MSEG_OT TYPE STANDARD TABLE OF TY_MSEG WITH HEADER LINE.
DATA : IT_MSEG_OT1 TYPE STANDARD TABLE OF TY_MSEG WITH HEADER LINE.
DATA : IT_MSEG_OT_1 TYPE STANDARD TABLE OF TY_MSEG WITH HEADER LINE.
DATA : IT_MSEG_OT_2 TYPE STANDARD TABLE OF TY_MSEG WITH HEADER LINE.
*---------------------------------------------------------------------*
* WORK AREAS Begin with WA_ *
*---------------------------------------------------------------------*
DATA : WA_DATA LIKE LINE OF IT_DATA.
DATA : WA_MSEG_KA LIKE LINE OF IT_MSEG_KA.
DATA : WA_MSEG_NV LIKE LINE OF IT_MSEG_NV.
DATA : WA_MSEG_DU LIKE LINE OF IT_MSEG_DU.
DATA : WA_MSEG_AM LIKE LINE OF IT_MSEG_AM.
DATA : WA_MSEG_OT LIKE LINE OF IT_MSEG_OT.
*----------------------------------------------------------------------*
* Constants Begin with C_ *
*----------------------------------------------------------------------*
*---------------------------------------------------------------------*
* Data Variables Begin with W_ *
*---------------------------------------------------------------------*
*--------FOR ALV
DATA : W_FIELDCATALOG TYPE SLIS_T_FIELDCAT_ALV WITH HEADER LINE,
W_LAYOUT TYPE SLIS_LAYOUT_ALV,
W_LISTHEADER TYPE SLIS_T_LISTHEADER,
W_EVENTS TYPE SLIS_T_EVENT,
W_TOP_OF_PAGE TYPE SLIS_FORMNAME VALUE 'TOP_OF_PAGE',
W_REPID TYPE SY-REPID.
DATA : W_GT_SORT TYPE SLIS_SORTINFO_ALV OCCURS 1 WITH HEADER LINE .
DATA : W_INFO(65) TYPE C,
W_INFO1(65) TYPE C,
W_INFO2(65) TYPE C.
*---------------------------------------------------------------------*
* parameters Begin with PR_ *
*---------------------------------------------------------------------*
*---------------------------------------------------------------------*
* Select-options Begin with SO_ *
*---------------------------------------------------------------------*
SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
SELECTION-SCREEN SKIP 1.
SELECT-OPTIONS : SO_BUDAT FOR MKPF-BUDAT OBLIGATORY.
SELECTION-SCREEN SKIP 1.
SELECTION-SCREEN END OF BLOCK B1.
*---------------------------------------------------------------------*
* INITIALIZATION *
*---------------------------------------------------------------------*
INITIALIZATION.
W_REPID = SY-REPID.
REFRESH : IT_DATA.
PERFORM F003_EVENTTAB_BUILD_TEMP USING W_EVENTS[].
*---------------------------------------------------------------------*
* AT SELECTION-SCREEN output.
*---------------------------------------------------------------------*
AT SELECTION-SCREEN OUTPUT .
*---------------------------------------------------------------------*
* At selection screen *
*---------------------------------------------------------------------*
AT SELECTION-SCREEN.
PERFORM F001_VALIDATE.
*---------------------------------------------------------------------*
* START-OF-SELECTION *
*---------------------------------------------------------------------*
START-OF-SELECTION .
PERFORM F004_FIELDCAT_INIT.
PERFORM F002_GET_DATA.
PERFORM F005_DISPLAY_DATA USING W_LISTHEADER[].
PERFORM F007_ALV_SORT.
*---------------------------------------------------------------------*
* END-OF-SELECTION *
*---------------------------------------------------------------------*
END-OF-SELECTION.
PERFORM F006_DISPLAY_LIST.
*----------------------------------------------------------------------*
* TOP-OF-PAGE *
*----------------------------------------------------------------------*
TOP-OF-PAGE.
*----------------------------------------------------------------------*
* END-OF-PAGE *
*----------------------------------------------------------------------*
END-OF-PAGE.
*&---------------------------------------------------------------------*
*& Form F001_VALIDATE
*&---------------------------------------------------------------------*
FORM F001_VALIDATE .
DATA : LW_DATE1(10) TYPE C.
DATA : LW_DATE2(10) TYPE C.
DATA : LW_NAME1 LIKE T001W-NAME1.
SELECT MK~BUDAT MK~MBLNR
MS~MATNR MS~ERFMG MS~ERFME
MA~MAKTX
INTO CORRESPONDING FIELDS OF TABLE IT_MAIN1
FROM MKPF AS MK INNER JOIN
MSEG AS MS ON MK~MBLNR = MS~MBLNR
INNER JOIN
MAKT AS MA
ON MS~MATNR = MA~MATNR
WHERE MK~BUDAT IN SO_BUDAT AND
MK~VGART = 'WA' AND
MS~WERKS = 'P002' AND
MS~BWART = '521' AND
MA~SPRAS = 'E'.
IF SY-SUBRC NE 0.
MESSAGE E001(ZVVF_CR011_MESSAGE).
ENDIF.
******-------FOR DEDUCTING REVERSAL QTY
SELECT MK~BUDAT MK~MBLNR
MS~MATNR MS~ERFMG MS~ERFME
MA~MAKTX
INTO CORRESPONDING FIELDS OF TABLE IT_MAIN2
FROM MKPF AS MK INNER JOIN
MSEG AS MS ON MK~MBLNR = MS~MBLNR
INNER JOIN
MAKT AS MA
ON MS~MATNR = MA~MATNR
WHERE MK~BUDAT IN SO_BUDAT AND
MK~VGART = 'WA' AND
MS~WERKS = 'P002' AND
MS~BWART = '522' AND
MA~SPRAS = 'E'.
LOOP AT IT_MAIN1.
READ TABLE IT_MAIN2 WITH KEY BUDAT = IT_MAIN1-BUDAT
MATNR = IT_MAIN1-MATNR.
IF SY-SUBRC = 0.
IT_MAIN-BUDAT = IT_MAIN1-BUDAT.
IT_MAIN-MBLNR = IT_MAIN1-MBLNR.
IT_MAIN-MATNR = IT_MAIN1-MATNR.
IT_MAIN-MAKTX = IT_MAIN1-MAKTX.
IT_MAIN-ERFMG = IT_MAIN1-ERFMG - IT_MAIN2-ERFMG.
IT_MAIN-ERFME = IT_MAIN1-ERFME.
APPEND IT_MAIN.
ELSE.
IT_MAIN-BUDAT = IT_MAIN1-BUDAT.
IT_MAIN-MBLNR = IT_MAIN1-MBLNR.
IT_MAIN-MATNR = IT_MAIN1-MATNR.
IT_MAIN-MAKTX = IT_MAIN1-MAKTX.
IT_MAIN-ERFMG = IT_MAIN1-ERFMG.
IT_MAIN-ERFME = IT_MAIN1-ERFME.
APPEND IT_MAIN.
ENDIF.
ENDLOOP.
*---------END OF FOR DEDUCTING REVERSAL QTY
CONCATENATE SO_BUDAT-LOW+6(2) '.' SO_BUDAT-LOW+4(2) '.'
SO_BUDAT-LOW+2(2) INTO LW_DATE1.
CONCATENATE SO_BUDAT-HIGH+6(2) '.' SO_BUDAT-HIGH+4(2) '.'
SO_BUDAT-HIGH+2(2) INTO LW_DATE2.
CONCATENATE 'Noodle Production v/s Daily Dispatch for'
'' LW_DATE1 '' '-' '' LW_DATE2 INTO W_INFO.
CONCATENATE 'Plant Code :' 'P002' INTO W_INFO1.
SELECT SINGLE NAME1 INTO LW_NAME1
FROM T001W
WHERE WERKS = 'P002'.
CONCATENATE 'Plant Name :' LW_NAME1 INTO W_INFO2.
ENDFORM. " F001_VALIDATE
*&---------------------------------------------------------------------*
*& Form F002_GET_DATA
*&---------------------------------------------------------------------*
FORM F002_GET_DATA .
DATA : LW_PSEN_DUR TYPE PSEN_DURATION_DEC,
LW_DUR TYPE I,
LW_CNT1 TYPE PSEN_DURATION_DEC,
LW_CNT TYPE I,
LW_DATE TYPE ENDDA.
SELECT MK~BUDAT MK~MBLNR
MS~MATNR MS~ERFMG MS~ERFME
MA~MAKTX
INTO CORRESPONDING FIELDS OF TABLE IT_MSEG_KA_1
FROM MSEG AS MS INNER JOIN
MKPF AS MK ON MS~MBLNR = MK~MBLNR
INNER JOIN
MAKT AS MA ON MS~MATNR = MA~MATNR
WHERE MK~BUDAT IN SO_BUDAT AND
MK~VGART = 'WL' AND
MS~UMWRK = 'P011' AND
MS~BWART = '641' AND
MS~XAUTO NE 'X' AND
MA~SPRAS = 'E'.
*----FOR DEDUCTING REVERSAL QTY
SELECT MK~BUDAT MK~MBLNR
MS~MATNR MS~ERFMG MS~ERFME
MA~MAKTX
INTO CORRESPONDING FIELDS OF TABLE IT_MSEG_KA_2
FROM MSEG AS MS INNER JOIN
MKPF AS MK ON MS~MBLNR = MK~MBLNR
INNER JOIN
MAKT AS MA ON MS~MATNR = MA~MATNR
WHERE MK~BUDAT IN SO_BUDAT AND
MK~VGART = 'WL' AND
MS~UMWRK = 'P011' AND
MS~BWART = '642' AND
MS~XAUTO NE 'X' AND
MA~SPRAS = 'E'.
LOOP AT IT_MSEG_KA_1.
READ TABLE IT_MSEG_KA_2 WITH KEY BUDAT = IT_MSEG_KA_2-BUDAT
MATNR = IT_MSEG_KA_2-MATNR.
IF SY-SUBRC = 0.
IT_MSEG_KA-BUDAT = IT_MSEG_KA_1-BUDAT.
IT_MSEG_KA-MBLNR = IT_MSEG_KA_1-MBLNR.
IT_MSEG_KA-MATNR = IT_MSEG_KA_1-MATNR.
IT_MSEG_KA-MAKTX = IT_MSEG_KA_1-MAKTX.
IT_MSEG_KA-ERFMG = IT_MSEG_KA_1-ERFMG - IT_MSEG_KA_2-ERFMG.
IT_MSEG_KA-ERFME = IT_MSEG_KA_1-ERFME.
APPEND IT_MSEG_KA.
ELSE.
IT_MSEG_KA-BUDAT = IT_MSEG_KA_1-BUDAT.
IT_MSEG_KA-MBLNR = IT_MSEG_KA_1-MBLNR.
IT_MSEG_KA-MATNR = IT_MSEG_KA_1-MATNR.
IT_MSEG_KA-MAKTX = IT_MSEG_KA_1-MAKTX.
IT_MSEG_KA-ERFMG = IT_MSEG_KA_1-ERFMG.
IT_MSEG_KA-ERFME = IT_MSEG_KA_1-ERFME.
APPEND IT_MSEG_KA.
ENDIF.
ENDLOOP.
*---------END OF FOR DEDUCTING REVERSAL QTY
SELECT MK~BUDAT MK~MBLNR
MS~MATNR MS~ERFMG MS~ERFME
MA~MAKTX
INTO CORRESPONDING FIELDS OF TABLE IT_MSEG_NV_1
FROM MSEG AS MS INNER JOIN
MKPF AS MK ON MS~MBLNR = MK~MBLNR
INNER JOIN
MAKT AS MA ON MS~MATNR = MA~MATNR
WHERE MK~BUDAT IN SO_BUDAT AND
MK~VGART = 'WL' AND
MS~UMWRK = 'P013' AND
MS~BWART = '641' AND
MS~XAUTO NE 'X' AND
MA~SPRAS = 'E'.
*--------FOR DEDUCTING REVERSAL QTY
SELECT MK~BUDAT MK~MBLNR
MS~MATNR MS~ERFMG MS~ERFME
MA~MAKTX
INTO CORRESPONDING FIELDS OF TABLE IT_MSEG_NV_2
FROM MSEG AS MS INNER JOIN
MKPF AS MK ON MS~MBLNR = MK~MBLNR
INNER JOIN
MAKT AS MA ON MS~MATNR = MA~MATNR
WHERE MK~BUDAT IN SO_BUDAT AND
MK~VGART = 'WL' AND
MS~UMWRK = 'P013' AND
MS~BWART = '642' AND
MS~XAUTO NE 'X' AND
MA~SPRAS = 'E'.
LOOP AT IT_MSEG_NV_1.
READ TABLE IT_MSEG_NV_2 WITH KEY BUDAT = IT_MSEG_NV_2-BUDAT
MATNR = IT_MSEG_NV_2-MATNR.
IF SY-SUBRC = 0.
IT_MSEG_NV-BUDAT = IT_MSEG_NV_1-BUDAT.
IT_MSEG_NV-MBLNR = IT_MSEG_NV_1-MBLNR.
IT_MSEG_NV-MATNR = IT_MSEG_NV_1-MATNR.
IT_MSEG_NV-MAKTX = IT_MSEG_NV_1-MAKTX.
IT_MSEG_NV-ERFMG = IT_MSEG_NV_1-ERFMG - IT_MSEG_NV_2-ERFMG.
IT_MSEG_NV-ERFME = IT_MSEG_NV_1-ERFME.
APPEND IT_MSEG_NV.
ELSE.
IT_MSEG_NV-BUDAT = IT_MSEG_NV_1-BUDAT.
IT_MSEG_NV-MBLNR = IT_MSEG_NV_1-MBLNR.
IT_MSEG_NV-MATNR = IT_MSEG_NV_1-MATNR.
IT_MSEG_NV-MAKTX = IT_MSEG_NV_1-MAKTX.
IT_MSEG_NV-ERFMG = IT_MSEG_NV_1-ERFMG.
IT_MSEG_NV-ERFME = IT_MSEG_NV_1-ERFME.
APPEND IT_MSEG_NV.
ENDIF.
ENDLOOP.
*---------END OF FOR DEDUCTING REVERSAL QTY
SELECT MK~BUDAT MK~MBLNR
MS~MATNR MS~ERFMG MS~ERFME
MA~MAKTX
INTO CORRESPONDING FIELDS OF TABLE IT_MSEG_DU_1
FROM MSEG AS MS INNER JOIN
MKPF AS MK ON MS~MBLNR = MK~MBLNR
INNER JOIN
MAKT AS MA ON MS~MATNR = MA~MATNR
WHERE MK~BUDAT IN SO_BUDAT AND
MK~VGART = 'WL' AND
MS~UMWRK = 'P002' AND
MS~BWART = '601' AND
MS~KUNNR IN ('518','465') AND
MS~XAUTO NE 'X' AND
MA~SPRAS = 'E'.
**------FOR DEDUCTING THE REVERSAL QTY
SELECT MK~BUDAT MK~MBLNR
MS~MATNR MS~ERFMG MS~ERFME
MA~MAKTX
INTO CORRESPONDING FIELDS OF TABLE IT_MSEG_DU_2
FROM MSEG AS MS INNER JOIN
MKPF AS MK ON MS~MBLNR = MK~MBLNR
INNER JOIN
MAKT AS MA ON MS~MATNR = MA~MATNR
WHERE MK~BUDAT IN SO_BUDAT AND
MK~VGART = 'WL' AND
MS~UMWRK = 'P002' AND
MS~BWART = '602' AND
MS~KUNNR IN ('518','465') AND
MS~XAUTO NE 'X' AND
MA~SPRAS = 'E'.
LOOP AT IT_MSEG_DU_1.
READ TABLE IT_MSEG_DU_2 WITH KEY BUDAT = IT_MSEG_DU_2-BUDAT
MATNR = IT_MSEG_DU_2-MATNR.
IF SY-SUBRC = 0.
IT_MSEG_DU-BUDAT = IT_MSEG_DU_1-BUDAT.
IT_MSEG_DU-MBLNR = IT_MSEG_DU_1-MBLNR.
IT_MSEG_DU-MATNR = IT_MSEG_DU_1-MATNR.
IT_MSEG_DU-MAKTX = IT_MSEG_DU_1-MAKTX.
IT_MSEG_DU-ERFMG = IT_MSEG_DU_1-ERFMG - IT_MSEG_DU_2-ERFMG.
IT_MSEG_DU-ERFME = IT_MSEG_DU_1-ERFME.
APPEND IT_MSEG_DU.
ELSE.
IT_MSEG_DU-BUDAT = IT_MSEG_DU_1-BUDAT.
IT_MSEG_DU-MBLNR = IT_MSEG_DU_1-MBLNR.
IT_MSEG_DU-MATNR = IT_MSEG_DU_1-MATNR.
IT_MSEG_DU-MAKTX = IT_MSEG_DU_1-MAKTX.
IT_MSEG_DU-ERFMG = IT_MSEG_DU_1-ERFMG.
IT_MSEG_DU-ERFME = IT_MSEG_DU_1-ERFME.
APPEND IT_MSEG_DU.
ENDIF.
ENDLOOP.
*---------END OF FOR DEDUCTING REVERSAL QTY
SELECT MK~BUDAT MK~MBLNR
MS~MATNR MS~ERFMG MS~ERFME
MA~MAKTX
INTO CORRESPONDING FIELDS OF TABLE IT_MSEG_AM_1
FROM MSEG AS MS INNER JOIN
MKPF AS MK ON MS~MBLNR = MK~MBLNR
INNER JOIN
MAKT AS MA ON MS~MATNR = MA~MATNR
WHERE MK~BUDAT IN SO_BUDAT AND
MK~VGART = 'WL' AND
MS~UMWRK = 'P002' AND
MS~BWART = '601' AND
MS~KUNNR = '516' AND
MS~XAUTO NE 'X' AND
MA~SPRAS = 'E'.
*----FOR DEDUCTING REVERSAL
SELECT MK~BUDAT MK~MBLNR
MS~MATNR MS~ERFMG MS~ERFME
MA~MAKTX
INTO CORRESPONDING FIELDS OF TABLE IT_MSEG_AM_2
FROM MSEG AS MS INNER JOIN
MKPF AS MK ON MS~MBLNR = MK~MBLNR
INNER JOIN
MAKT AS MA ON MS~MATNR = MA~MATNR
WHERE MK~BUDAT IN SO_BUDAT AND
MK~VGART = 'WL' AND
MS~UMWRK = 'P002' AND
MS~BWART = '602' AND
MS~KUNNR = '516' AND
MS~XAUTO NE 'X' AND
MA~SPRAS = 'E'.
LOOP AT IT_MSEG_AM_1.
READ TABLE IT_MSEG_AM_2 WITH KEY BUDAT = IT_MSEG_AM_2-BUDAT
MATNR = IT_MSEG_AM_2-MATNR.
IF SY-SUBRC = 0.
IT_MSEG_AM-BUDAT = IT_MSEG_AM_1-BUDAT.
IT_MSEG_AM-MBLNR = IT_MSEG_AM_1-MBLNR.
IT_MSEG_AM-MATNR = IT_MSEG_AM_1-MATNR.
IT_MSEG_AM-MAKTX = IT_MSEG_AM_1-MAKTX.
IT_MSEG_AM-ERFMG = IT_MSEG_AM_1-ERFMG - IT_MSEG_AM_2-ERFMG.
IT_MSEG_AM-ERFME = IT_MSEG_AM_1-ERFME.
APPEND IT_MSEG_AM.
ELSE.
IT_MSEG_AM-BUDAT = IT_MSEG_AM_1-BUDAT.
IT_MSEG_AM-MBLNR = IT_MSEG_AM_1-MBLNR.
IT_MSEG_AM-MATNR = IT_MSEG_AM_1-MATNR.
IT_MSEG_AM-MAKTX = IT_MSEG_AM_1-MAKTX.
IT_MSEG_AM-ERFMG = IT_MSEG_AM_1-ERFMG.
IT_MSEG_AM-ERFME = IT_MSEG_AM_1-ERFME.
APPEND IT_MSEG_AM.
ENDIF.
ENDLOOP.
*----END OF DEDUCTING REVERSAL
SELECT MK~BUDAT MK~MBLNR
MS~MATNR MS~ERFMG MS~ERFME
MA~MAKTX
INTO CORRESPONDING FIELDS OF TABLE IT_MSEG_OT_1
FROM MSEG AS MS INNER JOIN
MKPF AS MK ON MS~MBLNR = MK~MBLNR
INNER JOIN
MAKT AS MA ON MS~MATNR = MA~MATNR
WHERE MK~BUDAT IN SO_BUDAT AND
MK~VGART = 'WL' AND
MS~UMWRK = 'P002' AND
MS~BWART = '601' AND
MS~XAUTO NE 'X' AND
MA~SPRAS = 'E'.
*----FOR DEDUCTING REVERSAL
SELECT MK~BUDAT MK~MBLNR
MS~MATNR MS~ERFMG MS~ERFME
MA~MAKTX
INTO CORRESPONDING FIELDS OF TABLE IT_MSEG_OT_2
FROM MSEG AS MS INNER JOIN
MKPF AS MK ON MS~MBLNR = MK~MBLNR
INNER JOIN
MAKT AS MA ON MS~MATNR = MA~MATNR
WHERE MK~BUDAT IN SO_BUDAT AND
MK~VGART = 'WL' AND
MS~UMWRK = 'P002' AND
MS~BWART = '602' AND
MS~XAUTO NE 'X' AND
MA~SPRAS = 'E'.
LOOP AT IT_MSEG_OT_1.
READ TABLE IT_MSEG_OT_2 WITH KEY BUDAT = IT_MSEG_OT_2-BUDAT
MATNR = IT_MSEG_OT_2-MATNR.
IF SY-SUBRC = 0.
IT_MSEG_OT-BUDAT = IT_MSEG_OT_1-BUDAT.
IT_MSEG_OT-MBLNR = IT_MSEG_OT_1-MBLNR.
IT_MSEG_OT-MATNR = IT_MSEG_OT_1-MATNR.
IT_MSEG_OT-MAKTX = IT_MSEG_OT_1-MAKTX.
IT_MSEG_OT-ERFMG = IT_MSEG_OT_1-ERFMG - IT_MSEG_OT_2-ERFMG.
IT_MSEG_OT-ERFME = IT_MSEG_OT_1-ERFME.
APPEND IT_MSEG_OT.
ELSE.
IT_MSEG_OT-BUDAT = IT_MSEG_OT_1-BUDAT.
IT_MSEG_OT-MBLNR = IT_MSEG_OT_1-MBLNR.
IT_MSEG_OT-MATNR = IT_MSEG_OT_1-MATNR.
IT_MSEG_OT-MAKTX = IT_MSEG_OT_1-MAKTX.
IT_MSEG_OT-ERFMG = IT_MSEG_OT_1-ERFMG.
IT_MSEG_OT-ERFME = IT_MSEG_OT_1-ERFME.
APPEND IT_MSEG_OT.
ENDIF.
ENDLOOP.
*----END OF DEDUCTING REVERSAL
SORT IT_MSEG_KA BY BUDAT.
LOOP AT IT_MSEG_KA INTO WA_MSEG_KA.
AT END OF MATNR.
SUM.
READ TABLE IT_MSEG_KA WITH KEY BUDAT = WA_MSEG_KA-BUDAT
MATNR = WA_MSEG_KA-MATNR.
IF SY-SUBRC = 0.
IT_MSEG_KA1-MATNR = IT_MSEG_KA-MATNR.
IT_MSEG_KA1-MAKTX = IT_MSEG_KA-MAKTX.
IT_MSEG_KA1-BUDAT = IT_MSEG_KA-BUDAT.
IT_MSEG_KA1-ERFMG = WA_MSEG_KA-ERFMG.
IT_MSEG_KA1-ERFME = IT_MSEG_KA-ERFME.
ENDIF.
APPEND IT_MSEG_KA1.
CLEAR IT_MSEG_KA1.
ENDAT.
ENDLOOP.
SORT IT_MSEG_NV BY BUDAT MATNR.
LOOP AT IT_MSEG_NV INTO WA_MSEG_NV.
AT END OF MATNR.
SUM.
READ TABLE IT_MSEG_NV WITH KEY BUDAT = WA_MSEG_NV-BUDAT
MATNR = WA_MSEG_NV-MATNR.
IF SY-SUBRC = 0.
IT_MSEG_NV1-MATNR = IT_MSEG_NV-MATNR.
IT_MSEG_NV1-MAKTX = IT_MSEG_NV-MAKTX.
IT_MSEG_NV1-BUDAT = IT_MSEG_NV-BUDAT.
IT_MSEG_NV1-ERFMG = WA_MSEG_NV-ERFMG.
IT_MSEG_NV1-ERFME = IT_MSEG_NV-ERFME.
ENDIF.
APPEND IT_MSEG_NV1.
CLEAR IT_MSEG_NV1.
ENDAT.
ENDLOOP.
SORT IT_MSEG_DU BY BUDAT.
LOOP AT IT_MSEG_DU INTO WA_MSEG_DU.
AT END OF MATNR.
SUM.
READ TABLE IT_MSEG_DU WITH KEY BUDAT = WA_MSEG_DU-BUDAT
MATNR = WA_MSEG_DU-MATNR.
IF SY-SUBRC = 0.
IT_MSEG_DU1-MATNR = IT_MSEG_DU-MATNR.
IT_MSEG_DU1-MAKTX = IT_MSEG_DU-MAKTX.
IT_MSEG_DU1-BUDAT = IT_MSEG_DU-BUDAT.
IT_MSEG_DU1-ERFMG = WA_MSEG_DU-ERFMG.
IT_MSEG_DU1-ERFME = IT_MSEG_DU-ERFME.
ENDIF.
APPEND IT_MSEG_DU1.
CLEAR IT_MSEG_DU1.
ENDAT.
ENDLOOP.
SORT IT_MSEG_AM BY BUDAT.
LOOP AT IT_MSEG_AM INTO WA_MSEG_AM.
AT END OF MATNR.
SUM.
READ TABLE IT_MSEG_AM WITH KEY BUDAT = WA_MSEG_AM-BUDAT
MATNR = WA_MSEG_AM-MATNR.
IF SY-SUBRC = 0.
IT_MSEG_AM1-MATNR = IT_MSEG_AM-MATNR.
IT_MSEG_AM1-MAKTX = IT_MSEG_AM-MAKTX.
IT_MSEG_AM1-BUDAT = IT_MSEG_AM-BUDAT.
IT_MSEG_AM1-ERFMG = WA_MSEG_AM-ERFMG.
IT_MSEG_AM1-ERFME = IT_MSEG_AM-ERFME.
ENDIF.
APPEND IT_MSEG_AM1.
CLEAR IT_MSEG_AM1.
ENDAT.
ENDLOOP.
SORT IT_MSEG_OT BY BUDAT.
LOOP AT IT_MSEG_OT INTO WA_MSEG_OT.
AT END OF MATNR.
SUM.
READ TABLE IT_MSEG_OT WITH KEY BUDAT = WA_MSEG_OT-BUDAT
MATNR = WA_MSEG_OT-MATNR.
IF SY-SUBRC = 0.
IT_MSEG_OT1-MATNR = IT_MSEG_OT-MATNR.
IT_MSEG_OT1-MAKTX = IT_MSEG_OT-MAKTX.
IT_MSEG_OT1-BUDAT = IT_MSEG_OT-BUDAT.
IT_MSEG_OT1-ERFMG = WA_MSEG_OT-ERFMG.
IT_MSEG_OT1-ERFME = IT_MSEG_OT-ERFME.
ENDIF.
APPEND IT_MSEG_OT1.
CLEAR IT_MSEG_OT1.
ENDAT.
ENDLOOP.
* IF SO_BUDAT-HIGH IS INITIAL.
* SO_BUDAT-HIGH = SO_BUDAT-LOW.
* ENDIF.
*
* CALL FUNCTION 'HR_SEN_CALE_DAYS_DURATION'
* EXPORTING
* ID_BEGDA = SO_BUDAT-LOW
* ID_ENDDA = SO_BUDAT-HIGH
* IMPORTING
* ES_DURATION = LW_PSEN_DUR
* EXCEPTIONS
* CONVERSION_NOT_SPECIFIED = 1
* CONVERSION_NOT_POSSIBLE = 2
* OTHERS = 3
* .
* IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
* ENDIF.
*
* LW_DUR = LW_PSEN_DUR-CALDD.
*
* DO LW_DUR TIMES.
*
* LW_CNT = LW_CNT + 1.
*
* LW_CNT1-CALDD = LW_CNT.
*
* CALL FUNCTION 'HR_SEN_CALE_DAYS_DATE'
* EXPORTING
* ID_DATE = SO_BUDAT-LOW
* ID_OPERATOR = '+'
* IS_DURATION = LW_CNT1
* IMPORTING
* ED_DATE = LW_DATE
* EXCEPTIONS
* CONVERSION_NOT_SPECIFIED = 1
* CONVERSION_NOT_POSSIBLE = 2
* OTHERS = 3
* .
* IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
* ENDIF.
IF IT_MAIN[] IS NOT INITIAL.
LOOP AT IT_MAIN.
MOVE IT_MAIN-BUDAT TO IT_DATA-BUDAT.
MOVE IT_MAIN-MATNR TO IT_DATA-MATNR.
MOVE IT_MAIN-MAKTX TO IT_DATA-MAKTX.
MOVE IT_MAIN-ERFMG TO IT_DATA-ERFMG.
MOVE IT_MAIN-ERFME TO IT_DATA-ERFME.
APPEND IT_DATA.
ENDLOOP.
ENDIF.
CLEAR IT_DATA.
IF IT_MSEG_KA1[] IS NOT INITIAL.
LOOP AT IT_MSEG_KA1 INTO WA_MSEG_KA.
READ TABLE IT_MAIN WITH KEY BUDAT = WA_MSEG_KA-BUDAT
MATNR = WA_MSEG_KA-MATNR.
IF SY-SUBRC = 0.
MOVE WA_MSEG_KA-BUDAT TO IT_DATA-BUDAT.
MOVE WA_MSEG_KA-MATNR TO IT_DATA-MATNR_K.
MOVE WA_MSEG_KA-MAKTX TO IT_DATA-MAKTX_K.
MOVE WA_MSEG_KA-ERFMG TO IT_DATA-ERFMG_K.
MOVE WA_MSEG_KA-ERFME TO IT_DATA-ERFME_K.
MODIFY IT_DATA TRANSPORTING BUDAT MATNR_K MAKTX_K ERFMG_K ERFME_K
WHERE BUDAT = WA_MSEG_KA-BUDAT AND
MATNR = WA_MSEG_KA-MATNR.
CLEAR WA_MSEG_KA.
ELSE.
MOVE WA_MSEG_KA-BUDAT TO IT_DATA-BUDAT.
MOVE WA_MSEG_KA-MATNR TO IT_DATA-MATNR_K.
MOVE WA_MSEG_KA-MAKTX TO IT_DATA-MAKTX_K.
MOVE WA_MSEG_KA-ERFMG TO IT_DATA-ERFMG_K.
MOVE WA_MSEG_KA-ERFME TO IT_DATA-ERFME_K.
APPEND IT_DATA.
ENDIF.
ENDLOOP.
ENDIF.
CLEAR IT_DATA.
IF IT_MSEG_NV1[] IS NOT INITIAL.
LOOP AT IT_MSEG_NV1 INTO WA_MSEG_NV.
READ TABLE IT_MAIN WITH KEY BUDAT = WA_MSEG_NV-BUDAT
MATNR = WA_MSEG_NV-MATNR.
IF SY-SUBRC = 0.
MOVE WA_MSEG_NV-BUDAT TO IT_DATA-BUDAT.
MOVE WA_MSEG_NV-MATNR TO IT_DATA-MATNR_N.
MOVE WA_MSEG_NV-MAKTX TO IT_DATA-MAKTX_N.
MOVE WA_MSEG_NV-ERFMG TO IT_DATA-ERFMG_N.
MOVE WA_MSEG_NV-ERFME TO IT_DATA-ERFME_N.
* APPEND IT_DATA.
MODIFY IT_DATA TRANSPORTING BUDAT MATNR_N MAKTX_N ERFMG_N ERFME_N
WHERE BUDAT = WA_MSEG_NV-BUDAT AND
MATNR = WA_MSEG_NV-MATNR.
CLEAR WA_MSEG_NV.
ELSE.
MOVE WA_MSEG_NV-BUDAT TO IT_DATA-BUDAT.
MOVE WA_MSEG_NV-MATNR TO IT_DATA-MATNR_N.
MOVE WA_MSEG_NV-MAKTX TO IT_DATA-MAKTX_N.
MOVE WA_MSEG_NV-ERFMG TO IT_DATA-ERFMG_N.
MOVE WA_MSEG_NV-ERFME TO IT_DATA-ERFME_N.
APPEND IT_DATA.
ENDIF.
ENDLOOP.
ENDIF.
CLEAR IT_DATA.
IF IT_MSEG_DU1[] IS NOT INITIAL.
LOOP AT IT_MSEG_DU1 INTO WA_MSEG_DU .
READ TABLE IT_MAIN WITH KEY BUDAT = WA_MSEG_DU-BUDAT
MATNR = WA_MSEG_DU-MATNR.
IF SY-SUBRC = 0.
MOVE WA_MSEG_DU-BUDAT TO IT_DATA-BUDAT.
MOVE WA_MSEG_DU-MATNR TO IT_DATA-MATNR_D.
MOVE WA_MSEG_DU-MAKTX TO IT_DATA-MAKTX_D.
MOVE WA_MSEG_DU-ERFMG TO IT_DATA-ERFMG_D.
MOVE WA_MSEG_DU-ERFME TO IT_DATA-ERFME_D.
* APPEND IT_DATA.
MODIFY IT_DATA TRANSPORTING BUDAT MATNR_D MAKTX_D ERFMG_D ERFME_D
WHERE BUDAT = WA_MSEG_DU-BUDAT AND
MATNR = WA_MSEG_DU-MATNR.
CLEAR WA_MSEG_DU.
ELSE.
MOVE WA_MSEG_DU-BUDAT TO IT_DATA-BUDAT.
MOVE WA_MSEG_DU-MATNR TO IT_DATA-MATNR_D.
MOVE WA_MSEG_DU-MAKTX TO IT_DATA-MAKTX_D.
MOVE WA_MSEG_DU-ERFMG TO IT_DATA-ERFMG_D.
MOVE WA_MSEG_DU-ERFME TO IT_DATA-ERFME_D.
APPEND IT_DATA.
ENDIF.
ENDLOOP.
ENDIF.
CLEAR IT_DATA.
IF IT_MSEG_AM1[] IS NOT INITIAL.
LOOP AT IT_MSEG_AM1 INTO WA_MSEG_AM.
READ TABLE IT_MAIN WITH KEY BUDAT = WA_MSEG_AM-BUDAT
MATNR = WA_MSEG_AM-MATNR.
IF SY-SUBRC = 0.
MOVE WA_MSEG_AM-BUDAT TO IT_DATA-BUDAT.
MOVE WA_MSEG_AM-MATNR TO IT_DATA-MATNR_A.
MOVE WA_MSEG_AM-MAKTX TO IT_DATA-MAKTX_A.
MOVE WA_MSEG_AM-ERFMG TO IT_DATA-ERFMG_A.
MOVE WA_MSEG_AM-ERFME TO IT_DATA-ERFME_A.
* APPEND IT_DATA.
MODIFY IT_DATA TRANSPORTING BUDAT MATNR_A MAKTX_A ERFMG_A ERFME_A
WHERE BUDAT = WA_MSEG_AM-BUDAT AND
MATNR = WA_MSEG_AM-MATNR.
CLEAR WA_MSEG_AM.
ELSE.
MOVE WA_MSEG_AM-BUDAT TO IT_DATA-BUDAT.
MOVE WA_MSEG_AM-MATNR TO IT_DATA-MATNR_A.
MOVE WA_MSEG_AM-MAKTX TO IT_DATA-MAKTX_A.
MOVE WA_MSEG_AM-ERFMG TO IT_DATA-ERFMG_A.
MOVE WA_MSEG_AM-ERFME TO IT_DATA-ERFME_A.
APPEND IT_DATA.
ENDIF.
ENDLOOP.
ENDIF.
CLEAR IT_DATA.
IF IT_MSEG_OT1[] IS NOT INITIAL.
LOOP AT IT_MSEG_OT1 INTO WA_MSEG_OT.
READ TABLE IT_MAIN WITH KEY BUDAT = WA_MSEG_OT-BUDAT
MATNR = WA_MSEG_OT-MATNR.
IF SY-SUBRC = 0.
MOVE WA_MSEG_OT-BUDAT TO IT_DATA-BUDAT.
MOVE WA_MSEG_OT-MATNR TO IT_DATA-MATNR_O.
MOVE WA_MSEG_OT-MAKTX TO IT_DATA-MAKTX_O.
MOVE WA_MSEG_OT-ERFMG TO IT_DATA-ERFMG_O.
MOVE WA_MSEG_OT-ERFME TO IT_DATA-ERFME_O.
* APPEND IT_DATA.
MODIFY IT_DATA TRANSPORTING BUDAT MATNR_O MAKTX_O ERFMG_O ERFME_O
WHERE BUDAT = WA_MSEG_OT-BUDAT AND
MATNR = WA_MSEG_OT-MATNR.
CLEAR WA_MSEG_OT.
ELSE.
MOVE WA_MSEG_OT-BUDAT TO IT_DATA-BUDAT.
MOVE WA_MSEG_OT-MATNR TO IT_DATA-MATNR_O.
MOVE WA_MSEG_OT-MAKTX TO IT_DATA-MAKTX_O.
MOVE WA_MSEG_OT-ERFMG TO IT_DATA-ERFMG_O.
MOVE WA_MSEG_OT-ERFME TO IT_DATA-ERFME_O.
APPEND IT_DATA.
ENDIF.
ENDLOOP.
ENDIF.
SORT IT_DATA BY BUDAT.
* ENDDO.
PERFORM F008_LEADING_ZEROS.
ENDFORM. " F002_GET_DATA
*&---------------------------------------------------------------------*
*& Form F003_EVENTTAB_BUILD_TEMP
*&---------------------------------------------------------------------*
FORM F003_EVENTTAB_BUILD_TEMP USING RT_EVENTS TYPE SLIS_T_EVENT.
DATA : LW_EVENT TYPE SLIS_ALV_EVENT.
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
I_LIST_TYPE = 0
IMPORTING
ET_EVENTS = RT_EVENTS
EXCEPTIONS
LIST_TYPE_WRONG = 1
OTHERS = 2.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
READ TABLE RT_EVENTS WITH KEY NAME = SLIS_EV_TOP_OF_PAGE INTO LW_EVENT
.
IF SY-SUBRC = 0.
MOVE W_TOP_OF_PAGE TO LW_EVENT-FORM.
APPEND LW_EVENT TO RT_EVENTS.
ENDIF.
ENDFORM. " F003_EVENTTAB_BUILD_TEMP
*&---------------------------------------------------------------------*
*& Form F004_FIELDCAT_INIT
*&---------------------------------------------------------------------*
FORM F004_FIELDCAT_INIT .
DATA : LW_FIELDCAT TYPE SLIS_FIELDCAT_ALV.
CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'BUDAT'.
LW_FIELDCAT-SELTEXT_M = 'POSTING DATE'.
LW_FIELDCAT-OUTPUTLEN = 8.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.
CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'MATNR'.
LW_FIELDCAT-SELTEXT_M = 'MATERIAL CODE'.
LW_FIELDCAT-OUTPUTLEN = 18.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.
CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'MAKTX'.
LW_FIELDCAT-SELTEXT_M = 'MATERIAL DESCRIPTION'.
LW_FIELDCAT-OUTPUTLEN = 40.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.
CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'ERFMG'.
LW_FIELDCAT-SELTEXT_M = 'PROD QTY'.
LW_FIELDCAT-OUTPUTLEN = 14.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.
CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'ERFME'.
LW_FIELDCAT-SELTEXT_M = 'UOE'.
LW_FIELDCAT-OUTPUTLEN = 5.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.
CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'MATNR_K'.
LW_FIELDCAT-SELTEXT_M = 'MATERIAL CODE'.
LW_FIELDCAT-OUTPUTLEN = 18.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.
CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'MAKTX_K'.
LW_FIELDCAT-SELTEXT_M = 'MATERIAL DESCRIPTION'.
LW_FIELDCAT-OUTPUTLEN = 40.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.
CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'ERFMG_K'.
LW_FIELDCAT-SELTEXT_M = 'DISPATCH TO KUTCH'.
LW_FIELDCAT-OUTPUTLEN = 14.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.
CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'ERFME_K'.
LW_FIELDCAT-SELTEXT_M = 'UOE'.
LW_FIELDCAT-OUTPUTLEN = 5.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.
CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'MATNR_N'.
LW_FIELDCAT-SELTEXT_M = 'MATERIAL CODE'.
LW_FIELDCAT-OUTPUTLEN = 18.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.
CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'MAKTX_N'.
LW_FIELDCAT-SELTEXT_M = 'MATERIAL DESCRIPTION'.
LW_FIELDCAT-OUTPUTLEN = 40.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.
CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'ERFMG_N'.
LW_FIELDCAT-SELTEXT_M = 'DISPATCH TO NAVSARI'.
LW_FIELDCAT-OUTPUTLEN = 14.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.
CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'ERFME_N'.
LW_FIELDCAT-SELTEXT_M = 'UOE'.
LW_FIELDCAT-OUTPUTLEN = 5.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.
CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'MATNR_D'.
LW_FIELDCAT-SELTEXT_M = 'MATERIAL CODE'.
LW_FIELDCAT-OUTPUTLEN = 18.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.
CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'MAKTX_D'.
LW_FIELDCAT-SELTEXT_M = 'MATERIAL DESCRIPTION'.
LW_FIELDCAT-OUTPUTLEN = 40.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.
CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'ERFMG_D'.
LW_FIELDCAT-SELTEXT_M = 'DISPATCH TO DUBAI'.
LW_FIELDCAT-OUTPUTLEN = 14.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.
CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'ERFME_D'.
LW_FIELDCAT-SELTEXT_M = 'UOE'.
LW_FIELDCAT-OUTPUTLEN = 5.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.
CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'MATNR_A'.
LW_FIELDCAT-SELTEXT_M = 'MATERIAL CODE'.
LW_FIELDCAT-OUTPUTLEN = 18.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.
CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'MAKTX_A'.
LW_FIELDCAT-SELTEXT_M = 'MATERIAL DESCRIPTION'.
LW_FIELDCAT-OUTPUTLEN = 40.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.
CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'ERFMG_A'.
LW_FIELDCAT-SELTEXT_M = 'DISPATCH TO AMERICA'.
LW_FIELDCAT-OUTPUTLEN = 14.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.
CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'ERFME_A'.
LW_FIELDCAT-SELTEXT_M = 'UOE'.
LW_FIELDCAT-OUTPUTLEN = 5.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.
CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'MATNR_O'.
LW_FIELDCAT-SELTEXT_M = 'MATERIAL CODE'.
LW_FIELDCAT-OUTPUTLEN = 18.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.
CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'MAKTX_O'.
LW_FIELDCAT-SELTEXT_M = 'MATERIAL DESCRIPTION'.
LW_FIELDCAT-OUTPUTLEN = 40.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.
CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'ERFMG_O'.
LW_FIELDCAT-SELTEXT_M = 'DISPATCH TO OTHERS'.
LW_FIELDCAT-OUTPUTLEN = 14.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.
CLEAR LW_FIELDCAT.
LW_FIELDCAT-FIELDNAME = 'ERFME_O'.
LW_FIELDCAT-SELTEXT_M = 'UOE'.
LW_FIELDCAT-OUTPUTLEN = 5.
APPEND LW_FIELDCAT TO W_FIELDCATALOG.
ENDFORM. " F004_FIELDCAT_INIT
*&---------------------------------------------------------------------*
*& Form F005_DISPLAY_DATA
*&---------------------------------------------------------------------*
FORM F005_DISPLAY_DATA USING GT_LISTHEADER TYPE SLIS_T_LISTHEADER.
DATA : LW_LISTHEADER TYPE SLIS_LISTHEADER.
CLEAR LW_LISTHEADER.
LW_LISTHEADER-TYP = 'H'.
LW_LISTHEADER-INFO = W_INFO.
APPEND LW_LISTHEADER TO GT_LISTHEADER.
CLEAR LW_LISTHEADER.
LW_LISTHEADER-TYP = 'S'.
LW_LISTHEADER-INFO = W_INFO1.
APPEND LW_LISTHEADER TO GT_LISTHEADER.
CLEAR LW_LISTHEADER.
LW_LISTHEADER-TYP = 'S'.
LW_LISTHEADER-INFO = W_INFO2.
APPEND LW_LISTHEADER TO GT_LISTHEADER.
ENDFORM. " F005_DISPLAY_DATA
*&---------------------------------------------------------------------*
*& Form F006_DISPLAY_LIST
*&---------------------------------------------------------------------*
FORM F006_DISPLAY_LIST .
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
* I_INTERFACE_CHECK = ' '
* I_BYPASSING_BUFFER = ' '
* I_BUFFER_ACTIVE = ' '
I_CALLBACK_PROGRAM = W_REPID
* I_CALLBACK_PF_STATUS_SET = ' '
* I_CALLBACK_USER_COMMAND = ' '
I_CALLBACK_TOP_OF_PAGE = 'TOP_OF_PAGE'
* I_CALLBACK_HTML_TOP_OF_PAGE = ' '
* I_CALLBACK_HTML_END_OF_LIST = ' '
* I_STRUCTURE_NAME =
I_BACKGROUND_ID = 'ALV_BACKGROUND'
* I_GRID_TITLE =
* I_GRID_SETTINGS =
IS_LAYOUT = W_LAYOUT
IT_FIELDCAT = W_FIELDCATALOG[]
* IT_EXCLUDING =
* IT_SPECIAL_GROUPS =
IT_SORT = W_GT_SORT[]
* IT_FILTER =
* IS_SEL_HIDE =
* I_DEFAULT = 'X'
* I_SAVE = ' '
* IS_VARIANT =
IT_EVENTS = W_EVENTS[]
* IT_EVENT_EXIT =
* IS_PRINT =
* IS_REPREP_ID =
* I_SCREEN_START_COLUMN = 0
* I_SCREEN_START_LINE = 0
* I_SCREEN_END_COLUMN = 0
* I_SCREEN_END_LINE = 0
* IT_ALV_GRAPHICS =
* IT_HYPERLINK =
* IT_ADD_FIELDCAT =
* IT_EXCEPT_QINFO =
* I_HTML_HEIGHT_TOP =
* I_HTML_HEIGHT_END =
* IMPORTING
* E_EXIT_CAUSED_BY_CALLER =
* ES_EXIT_CAUSED_BY_USER =
TABLES
T_OUTTAB = IT_DATA
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2
.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDFORM. " F006_DISPLAY_LIST
*&--------------------------------------------------------------------*
*& Form TOP_OF_PAGE
*&--------------------------------------------------------------------*
FORM TOP_OF_PAGE.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
IT_LIST_COMMENTARY = W_LISTHEADER
I_LOGO = ' '.
ENDFORM. "top_of_page_db
*&---------------------------------------------------------------------*
*& Form F007_ALV_SORT
*&---------------------------------------------------------------------*
FORM F007_ALV_SORT .
W_GT_SORT-SPOS = 1.
W_GT_SORT-FIELDNAME = 'BUDAT'.
W_GT_SORT-UP = 'X'.
APPEND W_GT_SORT.
ENDFORM. " F007_ALV_SORT
*&---------------------------------------------------------------------*
*& Form F008_LEADING_ZEROS
*&---------------------------------------------------------------------*
FORM F008_LEADING_ZEROS .
LOOP AT IT_DATA INTO WA_DATA.
SHIFT WA_DATA-MATNR LEFT DELETING LEADING '0'.
SHIFT WA_DATA-MATNR_K LEFT DELETING LEADING '0'.
SHIFT WA_DATA-MATNR_N LEFT DELETING LEADING '0'.
SHIFT WA_DATA-MATNR_D LEFT DELETING LEADING '0'.
SHIFT WA_DATA-MATNR_A LEFT DELETING LEADING '0'.
SHIFT WA_DATA-MATNR_O LEFT DELETING LEADING '0'.
MODIFY IT_DATA FROM WA_DATA TRANSPORTING MATNR MATNR_K MATNR_N MATNR_D
MATNR_A MATNR_O.
ENDLOOP.
ENDFORM. " F008_LEADING_ZEROS
Labels:
PP Report
Subscribe to:
Posts (Atom)
link us...
For Visitors
if you want to publish or Add something on ERP, SAP , SAP FUNCTIONAL, SAP ABAP then mail us along with your email-id. contain must be yours
email-id :- avinashkr_raj@yahoo.com(any email)
email-id :- avinaskr_raj.abap@blogger.com ( use only gmail)
email-id :- avinashkr_raj@yahoo.com(any email)
email-id :- avinaskr_raj.abap@blogger.com ( use only gmail)