Dear,
If you want to get WIP report means KKAO output in detail then read following.
For that you have to develope z program butz program take lts of time to execute so try to enhance kkao and take data from kkao to one z table and then make report .
to get data from KKAO enhance report SAPKKA07 in FORM create_grundliste
like
ENHANCEMENT 2 ZWIP. "active version
* EXPORT T_AUFTLST FROM T_AUFTLST TO MEMORY ID 'DATA'.
DATA : WIP TYPE STANDARD TABLE OF ZWIP WITH HEADER LINE.
DATA : SRNO TYPE I.
DELETE FROM ZWIP WHERE UNAME = SY-UNAME.
CLEAR WIP.
SELECT MAX( SRNO ) FROM ZWIP
INTO SRNO.
LOOP AT T_AUFTLST.
MOVE-CORRESPONDING T_AUFTLST TO WIP.
SRNO = WIP-SRNO = SRNO + 1.
WIP-ZYEAR = ABGR_PERIOD-J.
WIP-PERIO = ABGR_PERIOD-M.
WIP-UNAME = SY-UNAME.
APPEND WIP.
* INSERT ZWIP FROM TABLE WIP ACCEPTING DUPLICATE KEYS.
ENDLOOP.
INSERT ZWIP FROM TABLE WIP ACCEPTING DUPLICATE KEYS.
ENDENHANCEMENT.
then make program like below
*&---------------------------------------------------------------------*
*& Report ZWIP
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT ZWIP.
TYPE-POOLS : SLIS.
*tables****************************************************************
TABLES:
AUFK, "Order master data
*JEST, "Object status
*AFKO, "Order header data PP orders
COEP, "CO Object: Line Items (by Period)
COBK, "CO Object: Document Header
*MSEG, "Document Segment: Material
*AFRU, "Order completion confirmations
*RESB, "Reservation/dependent requirements
*JCDS, "Change Documents for System/User Statuses (Table JEST)
*T001W,"Plants/Branches
*TJ02T,"System status texts
*MAKT. "Material DescriptionsTYPES : BEGIN OF TY_FINAL, SR_NO TYPE I , CELLCOLOR TYPE LVC_T_SCOL, AUFNR TYPE AFPO-AUFNR, POSNR TYPE AFPO-POSNR, OBJNR TYPE COEP-OBJNR, GSTRS TYPE AFKO-GSTRS, MEINS TYPE AFPO-MEINS, MATNR TYPE AFPO-MATNR, MAKTX TYPE MAKT-MAKTX, PSMNG TYPE AFPO-PSMNG, WEMNG TYPE AFPO-WEMNG, PEMNG TYPE AFKO-GAMNG, STLNR TYPE STPO-STLNR, DATUV TYPE STPO-DATUV, ANDAT TYPE STPO-ANDAT, IDNRK TYPE STPO-IDNRK, BOMNG TYPE STPO-MENGE, REMNG TYPE STPO-MENGE, MEGBTR TYPE COEP-MEGBTR, MBGBTR TYPE COEP-MBGBTR, STMNG TYPE STPO-MENGE, RMEINS TYPE STPO-MEINS, WOGBTR TYPE COEP-WOGBTR, AVALUE1 TYPE COEP-WOGBTR, AVALUE2 TYPE COEP-WOGBTR, AVALUE TYPE COEP-WOGBTR, CMATNR TYPE COEP-MATNR, CMAKTX TYPE MAKT-MAKTX, BUDAT TYPE COBK-BUDAT, BOM TYPE C,END OF TY_FINAL.DATA : IT_FINAL TYPE STANDARD TABLE OF TY_FINAL.DATA : WA_FINAL TYPE TY_FINAL.*DATA : WA_FINAL1 TYPE TY_FINAL.DATA : CMATNR TYPE I.*TYPES : BEGIN OF TY_FINAL1,* AUFNR TYPE AFPO-AUFNR,* POSNR TYPE AFPO-POSNR,* OBJNR TYPE COEP-OBJNR,* MATNR TYPE AFPO-MATNR,* MAKTX TYPE MAKT-MAKTX,* WOGBTR TYPE COEP-WOGBTR,* AVALUE TYPE COEP-WOGBTR,* CMATNR TYPE COEP-MATNR,*END OF TY_FINAL1.*DATA : IT_FINAL1 TYPE STANDARD TABLE OF TY_FINAL1 WITH HEADER LINE. *TYPES : BEGIN OF TY_AUFK, " OCCURS 0,*AUFNR TYPE AUFK-AUFNR,*OBJNR TYPE AUFK-OBJNR,*AUART TYPE AUFK-AUART,** aufnr TYPE afko-aufnr,*GAMNG TYPE AFKO-GAMNG,*PLNBEZ TYPE AFKO-PLNBEZ,*GMEIN TYPE AFKO-GMEIN,*AUFPL TYPE AFKO-AUFPL,*RSNUM TYPE AFKO-RSNUM,*DISPO TYPE AFKO-DISPO,*STLNR TYPE AFKO-STLNR,*END OF TY_AUFK.*DATA : IT_AUFK TYPE STANDARD TABLE OF TY_AUFK WITH HEADER LINE.*DATA : BEGIN OF IT_WIP OCCURS 0.* INCLUDE STRUCTURE ZWIP.** AUFNR TYPE ZWIP-AUFNR,** OBJNR TYPE ZWIP-OBJNR,** ZYEAR TYPE ZWIP-ZYEAR,** PERIO TYPE ZWIP-PERIO,** UNAME TYPE ZWIP-UNAME,** MATNR TYPE ZWIP-MATNR,** WRT TYPE ZWIP-WRT,** WRTK TYPE ZWIP-WRTK,** BEWER TYPE ZWIP-BEWER,*DATA : END OF IT_WIP.DATA : IT_WIP TYPE STANDARD TABLE OF ZWIP WITH HEADER LINE.TYPES : BEGIN OF TY_TEMP, " OCCURS 0,AUFNR TYPE AUFK-AUFNR,OBJNR TYPE AUFK-OBJNR,AUART TYPE AUFK-AUART,GSTRS TYPE CAUFV-GSTRS,SDATV TYPE CAUFV-SDATV,AUFLD TYPE CAUFV-AUFLD,* aufnr TYPE afko-aufnr,GAMNG TYPE AFKO-GAMNG,IGMNG TYPE AFKO-IGMNG,PLNBEZ TYPE AFKO-PLNBEZ,GMEIN TYPE AFKO-GMEIN,AUFPL TYPE AFKO-AUFPL,RSNUM TYPE AFKO-RSNUM,DISPO TYPE AFKO-DISPO,STLNR TYPE AFKO-STLNR,POSNR TYPE AFPO-POSNR,MEINS TYPE AFPO-MEINS,MATNR TYPE AFPO-MATNR,PSMNG TYPE AFPO-PSMNG,WEMNG TYPE AFPO-WEMNG,END OF TY_TEMP.DATA : IT_TEMP TYPE STANDARD TABLE OF TY_TEMP WITH HEADER LINE.*DATA : IT_TEMP1 TYPE STANDARD TABLE OF TY_TEMP WITH HEADER LINE.TYPES : BEGIN OF TY_RESB, MATNR TYPE RESB-MATNR, BDMNG TYPE RESB-BDMNG, MEINS TYPE RESB-MEINS, SHKZG TYPE RESB-SHKZG, AUFNR TYPE RESB-AUFNR, OBJNR TYPE AUFK-OBJNR,END OF TY_RESB.DATA : IT_RESB TYPE STANDARD TABLE OF TY_RESB WITH HEADER LINE.DATA : IT_RESB1 TYPE STANDARD TABLE OF TY_RESB WITH HEADER LINE.DATA : BDMNG TYPE RESB-BDMNG. TYPES : BEGIN OF TY_MDFA, AUFNR TYPE MDFA-AUFNR, MATNR TYPE MDFA-MATNR, WEMNG TYPE MDFA-WEMNG,END OF TY_MDFA.DATA : IT_MDFA TYPE STANDARD TABLE OF TY_MDFA WITH HEADER LINE. TYPES : BEGIN OF TY_STPO, " OCCURS 0, STLNR TYPE STPO-STLNR, DATUV TYPE STPO-DATUV, ANDAT TYPE STPO-ANDAT, IDNRK TYPE STPO-IDNRK, MENGE TYPE STPO-MENGE, MEINS TYPE STPO-MEINS,END OF TY_STPO.DATA : IT_STPO TYPE STANDARD TABLE OF TY_STPO WITH HEADER LINE. TYPES : BEGIN OF TY_COEP, " OCCURS 0,KSTAR TYPE COEP-KSTAR,BUZEI TYPE COEP-BUZEI,PERIO TYPE COEP-PERIO,BELNR TYPE COEP-BELNR,OBJNR TYPE COEP-OBJNR,VRGNG TYPE COEP-VRGNG,MATNR TYPE COEP-MATNR,GJAHR TYPE COEP-GJAHR,WERKS TYPE COEP-WERKS,MEINB TYPE COEP-MEINB,WOGBTR TYPE COEP-WOGBTR,MEGBTR TYPE COEP-MEGBTR,MBGBTR TYPE COEP-MBGBTR,MEINH TYPE COEP-MEINH,REFBN TYPE COBK-REFBN,BUDAT TYPE COBK-BUDAT,END OF TY_COEP.DATA : IT_COEP TYPE STANDARD TABLE OF TY_COEP WITH HEADER LINE.DATA : IT_COEP1 TYPE STANDARD TABLE OF TY_COEP WITH HEADER LINE.DATA : IT_COEP2 TYPE STANDARD TABLE OF TY_COEP WITH HEADER LINE.DATA : IT_COEP3 TYPE STANDARD TABLE OF TY_COEP WITH HEADER LINE.DATA : IT_COEP4 TYPE STANDARD TABLE OF TY_COEP WITH HEADER LINE.DATA : IT_COEP5 TYPE STANDARD TABLE OF TY_COEP WITH HEADER LINE.DATA : IT_COEP6 TYPE STANDARD TABLE OF TY_COEP WITH HEADER LINE.DATA : IT_COEP7 TYPE STANDARD TABLE OF TY_COEP WITH HEADER LINE.DATA : COEP_TEMP TYPE STANDARD TABLE OF TY_COEP WITH HEADER LINE.DATA : WOGBTR TYPE COEP-WOGBTR,* WOGBTR1 TYPE COEP-WOGBTR, MEGBTR TYPE COEP-MEGBTR, MBGBTR TYPE COEP-MBGBTR.*DATA : COUNT TYPE I.TYPES : BEGIN OF TY_MAKT, MATNR TYPE MAKT-MATNR, MAKTX TYPE MAKT-MAKTX,END OF TY_MAKT.DATA : IT_MAKT TYPE STANDARD TABLE OF TY_MAKT WITH HEADER LINE.DATA : IT_MAKT1 TYPE STANDARD TABLE OF TY_MAKT WITH HEADER LINE. *TYPES: BEGIN OF TY_JEST, " OCCURS 0,*OBJNR TYPE JEST-OBJNR,*STAT TYPE JEST-STAT,*END OF TY_JEST.*DATA : IT_JEST TYPE STANDARD TABLE OF TY_JEST WITH HEADER LINE.*TYPES: BEGIN OF TY_JCDS, " OCCURS 0,*OBJNR TYPE JCDS-OBJNR,*STAT TYPE JCDS-STAT,*UDATE TYPE JCDS-UDATE,*INACT TYPE JCDS-INACT,*END OF TY_JCDS.*DATA : IT_JCDS TYPE STANDARD TABLE OF TY_JCDS WITH HEADER LINE.*DATA : IT_JEST1 TYPE STANDARD TABLE OF TY_JEST WITH HEADER LINE.*DATA : IT_JEST2 TYPE STANDARD TABLE OF TY_JEST WITH HEADER LINE.*DATA : IT_JEST3 TYPE STANDARD TABLE OF TY_JEST WITH HEADER LINE.*DATA : IT_JEST4 TYPE STANDARD TABLE OF TY_JEST WITH HEADER LINE.*DATA : IT_JEST5 TYPE STANDARD TABLE OF TY_JEST WITH HEADER LINE.*DATA : IT_JEST6 TYPE STANDARD TABLE OF TY_JEST WITH HEADER LINE.*DATA : IT_JEST7 TYPE STANDARD TABLE OF TY_JEST WITH HEADER LINE.*DATA : IT_JEST8 TYPE STANDARD TABLE OF TY_JEST WITH HEADER LINE.*DATA : IT_JEST9 TYPE STANDARD TABLE OF TY_JEST WITH HEADER LINE.*DATA : IT_JEST0 TYPE STANDARD TABLE OF TY_JEST WITH HEADER LINE.*DATA : IT_JEST11 TYPE STANDARD TABLE OF TY_JEST WITH HEADER LINE.*DATA : IT_JEST12 TYPE STANDARD TABLE OF TY_JEST WITH HEADER LINE.*DATA: I_TJ02T TYPE TJ02T OCCURS 0 WITH HEADER LINE.*DATA : GVALUE TYPE COEP-WOGBTR,* GVALUE1 TYPE COEP-WOGBTR.*DATA : STAT TYPE C.*************************************************************************CONSTANTS: C_AUTYP TYPE AUFK-AUTYP VALUE '10',*C_TRUE VALUE 'X',*C_FALSE VALUE ' ',*C_TECO(5) VALUE 'I0045',*C_DLV(5) VALUE 'I0012',*C_DELT(5) VALUE 'I0013'.DATA : IT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV WITH HEADER LINE, IT_LAYOUT TYPE SLIS_LAYOUT_ALV, GT_TOP TYPE SLIS_T_LISTHEADER, GW_TOP TYPE SLIS_LISTHEADER, IT_SORT TYPE SLIS_T_SORTINFO_ALV, WA_SORT TYPE SLIS_SORTINFO_ALV,* IT_EVENTS TYPE SLIS_T_EVENT, IT_EVENT TYPE SLIS_T_EVENT.* WA_EVENTS TYPE SLIS_ALV_EVENT.DATA SRNO TYPE I.DATA : MONTH(2) TYPE C, YEAR(4) TYPE C, PERIO TYPE COEP-PERIO, GJAHR TYPE COEP-GJAHR.* MAX_PERIO TYPE COEP-PERIO,* MIN_PERIO TYPE COEP-PERIO.***********************************************************************SELECTION-SCREEN: BEGIN OF BLOCK A01 WITH FRAME TITLE TEXT-S01.SELECT-OPTIONS: S_KOKRS FOR COEP-KOKRS OBLIGATORY DEFAULT '1000' NO-EXTENSION NO INTERVALS, " Control area* S_WERKS FOR AUFK-WERKS OBLIGATORY DEFAULT '1000' NO-EXTENSION NO INTERVALS,"MEMORY ID WRK OBLIGATORY NO-EXTENSION NO INTERVALS, " "* S_AUART FOR AUFK-AUART ,"DEFAULT 'ZP04', " Order type S_MATNR FOR MARA-MATNR,"AFKO-PLNBEZ," " material number S_AUFNR FOR AUFK-AUFNR, " default '2000011* S_DISPO FOR AFKO-DISPO, " MRP controller S_BUDAT FOR COBK-BUDAT OBLIGATORY NO INTERVALS NO-EXTENSION DEFAULT SY-DATUM.SELECTION-SCREEN: END OF BLOCK A01.************************************************************************ AT SELECTION-SCREEN. MONTH = S_BUDAT+07(02). YEAR = S_BUDAT+03(04). PERIO = MONTH - 3. IF PERIO LE 0. PERIO = PERIO + 12. ENDIF. IF PERIO > 09. GJAHR = YEAR - 1. ELSE. GJAHR = YEAR. ENDIF. ************************************************************************START-OF-SELECTION. PERFORM GET_DATA. PERFORM FIELDCAT. PERFORM LAYOUT. PERFORM SORT. PERFORM EVENT_GET. PERFORM SET_CELL_COLOURS. PERFORM DISPLAY. *&---------------------------------------------------------------------**& Form GET_DATA*&---------------------------------------------------------------------** text*----------------------------------------------------------------------** --> p1 text* <-- p2 text*----------------------------------------------------------------------*FORM GET_DATA .* CLEAR IT_AUFK.* REFRESH IT_AUFK. SELECT * "AUFNR OBJNR ZYEAR PERIO UNAME MATNR WRT WRTK BEWER FROM ZWIP INTO CORRESPONDING FIELDS OF TABLE IT_WIP WHERE UNAME = SY-UNAME AND ZYEAR = GJAHR AND PERIO = PERIO AND AUFNR IN S_AUFNR AND MATNR IN S_MATNR. IF IT_WIP[] IS NOT INITIAL. SELECT A~AUFNR A~OBJNR A~AUART A~GSTRS A~GAMNG A~IGMNG A~PLNBEZ A~GMEIN A~AUFPL A~RSNUM A~STLNR A~DISPO A~SDATV A~AUFLD A~RSNUM B~POSNR B~MEINS B~MATNR B~PSMNG B~WEMNG INTO CORRESPONDING FIELDS OF TABLE IT_TEMP FROM CAUFV AS A INNER JOIN AFPO AS B ON A~AUFNR = B~AUFNR FOR ALL ENTRIES IN IT_WIP WHERE A~AUFNR = IT_WIP-AUFNR AND A~PLNBEZ IN S_MATNR. ENDIF. IF IT_TEMP[] IS INITIAL. MESSAGE E000(ZPP) WITH 'No Valid status for Production Order selection.'. ELSE. PERFORM SELECT_DATA. ENDIF.
*&---------------------------------------------------------------------**& Form SELECT_DATA*&---------------------------------------------------------------------** text*----------------------------------------------------------------------** --> p1 text* <-- p2 text*----------------------------------------------------------------------*FORM SELECT_DATA . IF IT_TEMP[] IS NOT INITIAL. SORT IT_TEMP BY AUFNR OBJNR POSNR. SELECT AUFNR MATNR WEMNG INTO CORRESPONDING FIELDS OF TABLE IT_MDFA FROM MDFA FOR ALL ENTRIES IN IT_TEMP WHERE AUFNR EQ IT_TEMP-AUFNR. SELECT MATNR BDMNG MEINS SHKZG AUFNR INTO CORRESPONDING FIELDS OF TABLE IT_RESB FROM RESB FOR ALL ENTRIES IN IT_TEMP WHERE RSNUM = IT_TEMP-RSNUM AND AUFNR EQ IT_TEMP-AUFNR. IF IT_RESB[] IS NOT INITIAL. PERFORM IT_RESB. ENDIF. SELECT STLNR DATUV ANDAT IDNRK MENGE MEINS FROM STPO INTO CORRESPONDING FIELDS OF TABLE IT_STPO FOR ALL ENTRIES IN IT_TEMP WHERE STLNR EQ IT_TEMP-STLNR. SELECT MATNR MAKTX INTO CORRESPONDING FIELDS OF TABLE IT_MAKT1 FROM MAKT FOR ALL ENTRIES IN IT_TEMP WHERE MATNR EQ IT_TEMP-MATNR AND SPRAS EQ 'EN'. SELECT COEP~KSTAR COEP~BUZEI COEP~PERIO COEP~BELNR COEP~OBJNR COEP~VRGNG COEP~MATNR COEP~GJAHR COEP~WERKS COEP~MEINB COEP~WOGBTR COEP~MEGBTR COEP~MBGBTR COEP~MEINH COBK~REFBN COBK~BUDAT INTO CORRESPONDING FIELDS OF TABLE IT_COEP FROM ( COBK INNER JOIN COEP ON COBK~KOKRS = COEP~KOKRS AND COBK~BELNR = COEP~BELNR ) FOR ALL ENTRIES IN IT_TEMP WHERE COEP~KOKRS IN S_KOKRS AND COEP~OBJNR EQ IT_TEMP-OBJNR AND COBK~BUDAT <= S_BUDAT-LOW AND COEP~LEDNR EQ '00'. IT_COEP5[] = IT_COEP[]. LOOP AT IT_COEP5." WHERE GJAHR <= GJAHR. IF IT_COEP5-GJAHR < GJAHR. MOVE IT_COEP5 TO IT_COEP1.* MOVE-CORRESPONDING IT_COEP5 TO IT_COEP1. APPEND IT_COEP1. ELSEIF IT_COEP5-GJAHR = GJAHR. IF IT_COEP5-PERIO <= PERIO. MOVE IT_COEP5 TO IT_COEP1.* MOVE-CORRESPONDING IT_COEP5 TO IT_COEP1. APPEND IT_COEP1. ENDIF. ENDIF. ENDLOOP. IF IT_COEP[] IS NOT INITIAL." AND IT_COEP1[] IS NOT INITIAL. PERFORM IT_COEP. CLEAR IT_COEP4. REFRESH IT_COEP4. IF IT_RESB[] IS NOT INITIAL. IT_COEP4[] = IT_COEP[]. PERFORM FILL_FINAL. ENDIF. ENDIF. ENDIF.
*&---------------------------------------------------------------------**& Form IT_RESB*&---------------------------------------------------------------------** text*----------------------------------------------------------------------** --> p1 text* <-- p2 text*----------------------------------------------------------------------*FORM IT_RESB . CLEAR IT_RESB1[]. REFRESH IT_RESB1. IT_RESB1[] = IT_RESB[]. CLEAR IT_RESB. REFRESH IT_RESB. SORT IT_RESB1 BY AUFNR MATNR. LOOP AT IT_RESB1. IF IT_RESB-AUFNR = IT_RESB1-AUFNR AND IT_RESB-MATNR = IT_RESB1-MATNR. CLEAR BDMNG. BDMNG = IT_RESB1-BDMNG + IT_RESB-BDMNG. CLEAR IT_RESB-BDMNG. IT_RESB-BDMNG = BDMNG. MODIFY IT_RESB TRANSPORTING BDMNG WHERE AUFNR = IT_RESB1-AUFNR AND MATNR = IT_RESB1-MATNR. ELSE. MOVE IT_RESB1 TO IT_RESB.* MOVE-CORRESPONDING IT_RESB1 TO IT_RESB. READ TABLE IT_TEMP WITH KEY AUFNR = IT_RESB-AUFNR. IF SY-SUBRC = 0. IT_RESB-OBJNR = IT_TEMP-OBJNR. ENDIF. APPEND IT_RESB. ENDIF. ENDLOOP. SELECT MATNR MAKTX INTO CORRESPONDING FIELDS OF TABLE IT_MAKT FROM MAKT FOR ALL ENTRIES IN IT_RESB WHERE MATNR EQ IT_RESB-MATNR AND SPRAS EQ 'EN'.
*&---------------------------------------------------------------------**& Form IT_COEP*&---------------------------------------------------------------------** text*----------------------------------------------------------------------** --> p1 text* <-- p2 text*----------------------------------------------------------------------*FORM IT_COEP . CLEAR COEP_TEMP. REFRESH COEP_TEMP. COEP_TEMP[] = IT_COEP1[]. SORT COEP_TEMP BY OBJNR MATNR PERIO DESCENDING. CLEAR IT_COEP1. REFRESH IT_COEP1. LOOP AT COEP_TEMP. IF IT_COEP1-OBJNR EQ COEP_TEMP-OBJNR AND IT_COEP1-MATNR EQ COEP_TEMP-MATNR AND IT_COEP1-PERIO = COEP_TEMP-PERIO. CLEAR : WOGBTR,MEGBTR,MBGBTR. WOGBTR = IT_COEP1-WOGBTR + COEP_TEMP-WOGBTR. MEGBTR = IT_COEP1-MEGBTR + COEP_TEMP-MEGBTR. MBGBTR = IT_COEP1-MBGBTR + COEP_TEMP-MBGBTR. CLEAR : IT_COEP1-WOGBTR,IT_COEP1-MEGBTR,IT_COEP1-MBGBTR. IT_COEP1-WOGBTR = WOGBTR. IT_COEP1-MEGBTR = MEGBTR. IT_COEP1-MBGBTR = MBGBTR. MODIFY IT_COEP1 TRANSPORTING WOGBTR MEGBTR MBGBTR WHERE OBJNR = COEP_TEMP-OBJNR AND MATNR = COEP_TEMP-MATNR AND PERIO = COEP_TEMP-PERIO. ELSE. MOVE COEP_TEMP TO IT_COEP1.* MOVE-CORRESPONDING COEP_TEMP TO IT_COEP1. APPEND IT_COEP1. " DATA WITH ALL PERIOD LESS THAN OR EQUAL TO ENTERED PERIOD ENDIF. ENDLOOP. CLEAR : COEP_TEMP,IT_COEP2,IT_COEP3. REFRESH : COEP_TEMP, IT_COEP2,IT_COEP3. LOOP AT IT_COEP1. IF IT_COEP1-PERIO <> PERIO. IF IT_COEP2-OBJNR = IT_COEP1-OBJNR AND IT_COEP2-MATNR = IT_COEP1-MATNR. CLEAR : WOGBTR,MEGBTR,MBGBTR. WOGBTR = IT_COEP2-WOGBTR + IT_COEP1-WOGBTR. MEGBTR = IT_COEP2-MEGBTR + IT_COEP1-MEGBTR. MBGBTR = IT_COEP2-MBGBTR + IT_COEP1-MBGBTR. CLEAR : IT_COEP2-WOGBTR,IT_COEP2-MEGBTR,IT_COEP2-MBGBTR. IT_COEP2-WOGBTR = WOGBTR. IT_COEP2-MEGBTR = MEGBTR.IT_COEP2-MBGBTR = MBGBTR. MODIFY IT_COEP2 TRANSPORTING WOGBTR MEGBTR MBGBTR WHERE OBJNR = IT_COEP1-OBJNR AND MATNR = IT_COEP1-MATNR.* AND PERIO = IT_COEP1-PERIO. ELSE. MOVE IT_COEP1 TO IT_COEP2.* MOVE-CORRESPONDING IT_COEP1 TO IT_COEP2. APPEND IT_COEP2." DATA WITHOUT ENTERED PERIOD ENDIF. ELSE. IF IT_COEP3-OBJNR = IT_COEP1-OBJNR AND IT_COEP3-MATNR = IT_COEP1-MATNR. CLEAR : WOGBTR,MEGBTR,MBGBTR. WOGBTR = IT_COEP3-WOGBTR + IT_COEP1-WOGBTR. MEGBTR = IT_COEP3-MEGBTR + IT_COEP1-MEGBTR. MBGBTR = IT_COEP3-MBGBTR + IT_COEP1-MBGBTR. CLEAR : IT_COEP3-WOGBTR,IT_COEP3-MEGBTR,IT_COEP3-MBGBTR. IT_COEP3-WOGBTR = WOGBTR. IT_COEP3-MEGBTR = MEGBTR. IT_COEP3-MBGBTR = MBGBTR. MODIFY IT_COEP2 TRANSPORTING WOGBTR MEGBTR MBGBTR WHERE OBJNR = IT_COEP1-OBJNR AND MATNR = IT_COEP1-MATNR AND PERIO = IT_COEP1-PERIO. ELSE. MOVE IT_COEP1 TO IT_COEP3.* MOVE-CORRESPONDING IT_COEP1 TO IT_COEP3. APPEND IT_COEP3." DATA WITH ENTERED PERIOD ENDIF. ENDIF. IF IT_COEP1-GJAHR <> GJAHR. IF IT_COEP6-OBJNR = IT_COEP1-OBJNR AND IT_COEP6-MATNR = IT_COEP1-MATNR. CLEAR : WOGBTR,MEGBTR,MBGBTR. WOGBTR = IT_COEP6-WOGBTR + IT_COEP1-WOGBTR. MEGBTR = IT_COEP6-MEGBTR + IT_COEP1-MEGBTR.MBGBTR = IT_COEP6-MBGBTR + IT_COEP1-MBGBTR. CLEAR : IT_COEP6-WOGBTR,IT_COEP6-MEGBTR,IT_COEP6-MBGBTR. IT_COEP6-WOGBTR = WOGBTR. IT_COEP6-MEGBTR = MEGBTR. IT_COEP6-MBGBTR = MBGBTR. MODIFY IT_COEP6 TRANSPORTING WOGBTR MEGBTR MBGBTR WHERE OBJNR = IT_COEP1-OBJNR AND MATNR = IT_COEP1-MATNR.* AND PERIO = IT_COEP1-PERIO. ELSE. MOVE IT_COEP1 TO IT_COEP6.* MOVE-CORRESPONDING IT_COEP1 TO IT_COEP6. APPEND IT_COEP6." DATA WITHOUT ENTERED YEAR ENDIF. ELSE. IF IT_COEP7-OBJNR = IT_COEP1-OBJNR AND IT_COEP7-MATNR = IT_COEP1-MATNR. CLEAR : WOGBTR,MEGBTR,MBGBTR. WOGBTR = IT_COEP7-WOGBTR + IT_COEP1-WOGBTR. MEGBTR = IT_COEP7-MEGBTR + IT_COEP1-MEGBTR. MBGBTR = IT_COEP7-MBGBTR + IT_COEP1-MBGBTR. CLEAR : IT_COEP7-WOGBTR,IT_COEP7-MEGBTR,IT_COEP7-MBGBTR. IT_COEP7-WOGBTR = WOGBTR. IT_COEP7-MEGBTR = MEGBTR. IT_COEP7-MBGBTR = MBGBTR. MODIFY IT_COEP7 TRANSPORTING WOGBTR MEGBTR MBGBTR WHERE OBJNR = IT_COEP1-OBJNR AND MATNR = IT_COEP1-MATNR.* AND PERIO = IT_COEP1-PERIO. ELSE. MOVE IT_COEP1 TO IT_COEP7.* MOVE-CORRESPONDING IT_COEP1 TO IT_COEP7. APPEND IT_COEP7." DATA WITHOUT ENTERED YEAR ENDIF. ENDIF. ENDLOOP. COEP_TEMP[] = IT_COEP[]. CLEAR : IT_COEP. REFRESH IT_COEP. SORT COEP_TEMP BY OBJNR MATNR DESCENDING. LOOP AT COEP_TEMP. IF IT_COEP-OBJNR EQ COEP_TEMP-OBJNR AND IT_COEP-MATNR EQ COEP_TEMP-MATNR. CLEAR : WOGBTR,MEGBTR,MBGBTR. WOGBTR = IT_COEP-WOGBTR + COEP_TEMP-WOGBTR. MEGBTR = IT_COEP-MEGBTR + COEP_TEMP-MEGBTR. MBGBTR = IT_COEP-MBGBTR + COEP_TEMP-MBGBTR. CLEAR : IT_COEP-WOGBTR,IT_COEP-MEGBTR,IT_COEP-MBGBTR. IT_COEP-WOGBTR = WOGBTR. IT_COEP-MEGBTR = MEGBTR. IT_COEP-MBGBTR = MBGBTR. MODIFY IT_COEP TRANSPORTING WOGBTR MEGBTR MBGBTR WHERE OBJNR EQ COEP_TEMP-OBJNR AND MATNR EQ COEP_TEMP-MATNR. ELSE. MOVE COEP_TEMP TO IT_COEP.* MOVE-CORRESPONDING COEP_TEMP TO IT_COEP. APPEND IT_COEP. " DATA WITH LESS THAN OR EQUAL TO ENTERED DATE ENDIF. ENDLOOP.
*&---------------------------------------------------------------------**& Form FILL_FINAL*&---------------------------------------------------------------------** text*----------------------------------------------------------------------** --> p1 text* <-- p2 text*----------------------------------------------------------------------*FORM FILL_FINAL . LOOP AT IT_RESB. CLEAR WA_FINAL. ON CHANGE OF IT_RESB-AUFNR. CLEAR SRNO. WA_FINAL-SR_NO = 0. ENDON. WA_FINAL-SR_NO = WA_FINAL-SR_NO + SRNO + 1. CLEAR SRNO. WA_FINAL-CMATNR = IT_RESB-MATNR. WA_FINAL-REMNG = IT_RESB-BDMNG. WA_FINAL-RMEINS = IT_RESB-MEINS. WA_FINAL-AUFNR = IT_RESB-AUFNR. READ TABLE IT_TEMP WITH KEY AUFNR = WA_FINAL-AUFNR. IF SY-SUBRC EQ 0. WA_FINAL-OBJNR = IT_TEMP-OBJNR. WA_FINAL-POSNR = IT_TEMP-POSNR. WA_FINAL-GSTRS = IT_TEMP-GSTRS. WA_FINAL-MEINS = IT_TEMP-MEINS. WA_FINAL-MATNR = IT_TEMP-MATNR. WA_FINAL-PSMNG = IT_TEMP-GAMNG. WA_FINAL-STLNR = IT_TEMP-STLNR. WA_FINAL-DATUV = IT_TEMP-SDATV. WA_FINAL-ANDAT = IT_TEMP-AUFLD. ENDIF. READ TABLE IT_MDFA WITH KEY AUFNR = WA_FINAL-AUFNR MATNR = WA_FINAL-MATNR. IF SY-SUBRC EQ 0. WA_FINAL-WEMNG = IT_MDFA-WEMNG. ENDIF. READ TABLE IT_MAKT WITH KEY MATNR = WA_FINAL-CMATNR. IF SY-SUBRC EQ 0. WA_FINAL-CMAKTX = IT_MAKT-MAKTX. ENDIF. READ TABLE IT_MAKT1 WITH KEY MATNR = WA_FINAL-MATNR. IF SY-SUBRC EQ 0. WA_FINAL-MAKTX = IT_MAKT1-MAKTX. ENDIF. READ TABLE IT_STPO WITH KEY STLNR = WA_FINAL-STLNR IDNRK = WA_FINAL-CMATNR. IF SY-SUBRC EQ 0. WA_FINAL-IDNRK = IT_STPO-IDNRK. WA_FINAL-BOMNG = IT_STPO-MENGE. WA_FINAL-BOM = 'Y'. ELSE. WA_FINAL-BOM = 'N'. ENDIF. READ TABLE IT_COEP WITH KEY OBJNR = WA_FINAL-OBJNR MATNR = WA_FINAL-CMATNR. IF SY-SUBRC = 0. WA_FINAL-MEGBTR = IT_COEP-MEGBTR. WA_FINAL-WOGBTR = IT_COEP-WOGBTR. WA_FINAL-MBGBTR = IT_COEP-MBGBTR.WA_FINAL-BUDAT = IT_COEP-BUDAT. DELETE IT_COEP WHERE OBJNR EQ WA_FINAL-OBJNR AND MATNR EQ WA_FINAL-CMATNR. ENDIF. IF WA_FINAL-CMATNR IS INITIAL. CMATNR = 0. ELSE. CMATNR = 1. ENDIF. CASE CMATNR. WHEN '0'. WA_FINAL-AVALUE = WA_FINAL-WOGBTR. WA_FINAL-PEMNG = WA_FINAL-PSMNG - WA_FINAL-WEMNG. WA_FINAL-STMNG = WA_FINAL-MBGBTR - ( WA_FINAL-WEMNG * WA_FINAL-BOMNG ). WHEN '1'. WA_FINAL-PEMNG = WA_FINAL-PSMNG - WA_FINAL-WEMNG. IF WA_FINAL-CMATNR <> WA_FINAL-MATNR. IF WA_FINAL-BOM = 'Y'. WA_FINAL-STMNG = WA_FINAL-MBGBTR - ( WA_FINAL-WEMNG * WA_FINAL-BOMNG ). ENDIF. ELSE. WA_FINAL-STMNG = WA_FINAL-MBGBTR * ( -1 ). ENDIF. WHEN OTHERS. ENDCASE. SRNO = WA_FINAL-SR_NO. APPEND WA_FINAL TO IT_FINAL. ENDLOOP. IF IT_FINAL[] IS NOT INITIAL. SORT IT_FINAL BY AUFNR OBJNR SR_NO DESCENDING. SORT IT_COEP BY OBJNR MATNR. IF IT_COEP[] IS NOT INITIAL. PERFORM FINAL. ENDIF. ENDIF.
*&---------------------------------------------------------------------**& Form FINAL*&---------------------------------------------------------------------** text*----------------------------------------------------------------------** --> p1 text* <-- p2 text*----------------------------------------------------------------------*FORM FINAL .* IF IT_COEP[] IS NOT INITIAL. LOOP AT IT_COEP. CLEAR WA_FINAL. IF IT_COEP-MATNR IS INITIAL. READ TABLE IT_FINAL INTO WA_FINAL WITH KEY OBJNR = IT_COEP-OBJNR. IF SY-SUBRC = 0. WA_FINAL-SR_NO = WA_FINAL-SR_NO + 1. WA_FINAL-CMATNR = IT_COEP-MATNR. WA_FINAL-RMEINS = IT_COEP-MEINB. WA_FINAL-MEGBTR = IT_COEP-MEGBTR. WA_FINAL-MBGBTR = IT_COEP-MBGBTR. WA_FINAL-WOGBTR = IT_COEP-WOGBTR. WA_FINAL-BUDAT = IT_COEP-BUDAT. CLEAR : WA_FINAL-POSNR,WA_FINAL-GSTRS,WA_FINAL-STLNR,WA_FINAL-DATUV,WA_FINAL-ANDAT,WA_FINAL-IDNRK,WA_FINAL-BOMNG,WA_FINAL-REMNG,WA_FINAL-STMNG,WA_FINAL-AVALUE1,WA_FINAL-AVALUE2,WA_FINAL-AVALUE,WA_FINAL-CMAKTX,WA_FINAL-BOM. CLEAR SRNO. SRNO = WA_FINAL-SR_NO. APPEND WA_FINAL TO IT_FINAL. ENDIF. ELSE. CLEAR WA_FINAL. READ TABLE IT_FINAL INTO WA_FINAL WITH KEY OBJNR = IT_COEP-OBJNRMATNR = IT_COEP-MATNR. IF SY-SUBRC = 0. IF SRNO IS NOT INITIAL. WA_FINAL-SR_NO = SRNO + 1. ELSE. WA_FINAL-SR_NO = WA_FINAL-SR_NO + 1. ENDIF. WA_FINAL-CMATNR = IT_COEP-MATNR. WA_FINAL-CMAKTX = WA_FINAL-MAKTX. WA_FINAL-RMEINS = WA_FINAL-MEINS. WA_FINAL-MBGBTR = IT_COEP-MBGBTR. WA_FINAL-STMNG = IT_COEP-MBGBTR * ( -1 ). WA_FINAL-WOGBTR = IT_COEP-WOGBTR. WA_FINAL-BUDAT = IT_COEP-BUDAT. CLEAR : WA_FINAL-POSNR,WA_FINAL-GSTRS,WA_FINAL-STLNR,WA_FINAL-DATUV,WA_FINAL-ANDAT,WA_FINAL-IDNRK,WA_FINAL-BOMNG,WA_FINAL-REMNG,WA_FINAL-MEGBTR,WA_FINAL-AVALUE1,WA_FINAL-AVALUE2,WA_FINAL-AVALUE,WA_FINAL-BOM. APPEND WA_FINAL TO IT_FINAL. ELSE. READ TABLE IT_FINAL INTO WA_FINAL WITH KEY OBJNR = IT_COEP-OBJNR. IF SY-SUBRC = 0. IF SRNO IS NOT INITIAL. WA_FINAL-SR_NO = SRNO + 1. ELSE. WA_FINAL-SR_NO = WA_FINAL-SR_NO + 1. ENDIF. WA_FINAL-CMATNR = IT_COEP-MATNR. WA_FINAL-RMEINS = IT_COEP-MEINB. WA_FINAL-MEGBTR = IT_COEP-MEGBTR. WA_FINAL-MBGBTR = IT_COEP-MBGBTR. WA_FINAL-STMNG = IT_COEP-MBGBTR * ( -1 ). WA_FINAL-WOGBTR = IT_COEP-WOGBTR. WA_FINAL-BUDAT = IT_COEP-BUDAT. CLEAR : WA_FINAL-POSNR,WA_FINAL-GSTRS,WA_FINAL-STLNR,WA_FINAL-DATUV,WA_FINAL-ANDAT,WA_FINAL-IDNRK,WA_FINAL-BOMNG,WA_FINAL-REMNG,WA_FINAL-STMNG,WA_FINAL-AVALUE1,WA_FINAL-AVALUE2,WA_FINAL-AVALUE,WA_FINAL-CMAKTX,WA_FINAL-BOM. CLEAR SRNO. SRNO = WA_FINAL-SR_NO. APPEND WA_FINAL TO IT_FINAL. ENDIF. ENDIF. ENDIF. ENDLOOP. SORT IT_FINAL BY AUFNR OBJNR MATNR SR_NO ASCENDING.* ENDIF. IF IT_FINAL[] IS NOT INITIAL. PERFORM PERIOD_CHANGE. ENDIF.
*&---------------------------------------------------------------------**& Form PERIOD_CHANGE*&---------------------------------------------------------------------** text*----------------------------------------------------------------------** --> p1 text* <-- p2 text*----------------------------------------------------------------------*FORM PERIOD_CHANGE . LOOP AT IT_FINAL INTO WA_FINAL. READ TABLE IT_WIP WITH KEY OBJNR = WA_FINAL-OBJNR. IF SY-SUBRC = 0. IF IT_WIP-WRT IS NOT INITIAL. IF IT_WIP-BEWER IS INITIAL. READ TABLE IT_COEP6 WITH KEY OBJNR = WA_FINAL-OBJNR MATNR = WA_FINAL-CMATNR. IF SY-SUBRC = 0. WA_FINAL-AVALUE1 = IT_COEP6-WOGBTR * ( -1 ). ENDIF. ELSE. READ TABLE IT_COEP7 WITH KEY OBJNR = WA_FINAL-OBJNR MATNR = WA_FINAL-CMATNR. IF SY-SUBRC = 0. WA_FINAL-AVALUE1 = IT_COEP7-WOGBTR. ENDIF.* CASE IT_WIP-WIPTYP.* WHEN 'Res. for Unrealized Costs'.* READ TABLE IT_COEP4 WITH KEY OBJNR = WA_FINAL-OBJNR* MATNR = WA_FINAL-CMATNR.* IF SY-SUBRC = 0.* WA_FINAL-AVALUE1 = IT_COEP4-WOGBTR.* ENDIF.* WHEN 'Inventory (WIP)'.* READ TABLE IT_COEP2 WITH KEY OBJNR = WA_FINAL-OBJNR* MATNR = WA_FINAL-CMATNR.* IF SY-SUBRC = 0.* WA_FINAL-AVALUE1 = IT_COEP2-WOGBTR.* ENDIF.* WHEN OTHERS.* ENDCASE. ENDIF.ENDIF. IF IT_WIP-WRTK IS INITIAL. CLEAR WA_FINAL-WOGBTR. ENDIF. MODIFY IT_FINAL FROM WA_FINAL TRANSPORTING WOGBTR AVALUE1. ENDIF. ENDLOOP.
*&---------------------------------------------------------------------**& Form FIELDCAT*&---------------------------------------------------------------------** text*----------------------------------------------------------------------** --> p1 text* <-- p2 text*----------------------------------------------------------------------*FORM FIELDCAT . DATA : POS TYPE INT1 VALUE 0. CLEAR IT_FIELDCAT. POS = POS + 1. IT_FIELDCAT-COL_POS = POS.*IT_FIELDCAT-FIX_COLUMN = 'X'. IT_FIELDCAT-KEY = 'X'. IT_FIELDCAT-FIELDNAME = 'AUFNR'. IT_FIELDCAT-TABNAME = 'IT_FINAL'. IT_FIELDCAT-SELTEXT_L = 'Order Number'. IT_FIELDCAT-OUTPUTLEN = 12. IT_FIELDCAT-EMPHASIZE = 'X'. APPEND IT_FIELDCAT. CLEAR IT_FIELDCAT. POS = POS + 1. IT_FIELDCAT-COL_POS = POS.*IT_FIELDCAT-FIX_COLUMN = 'X'. IT_FIELDCAT-KEY = 'X'. IT_FIELDCAT-FIELDNAME = 'MATNR'. IT_FIELDCAT-TABNAME = 'IT_FINAL'. IT_FIELDCAT-SELTEXT_L = 'Material'. IT_FIELDCAT-OUTPUTLEN = 12. APPEND IT_FIELDCAT. CLEAR IT_FIELDCAT. POS = POS + 1. IT_FIELDCAT-COL_POS = POS.*IT_FIELDCAT-FIX_COLUMN = 'X'. IT_FIELDCAT-KEY = 'X'. IT_FIELDCAT-FIELDNAME = 'MAKTX'. IT_FIELDCAT-TABNAME = 'IT_FINAL'. IT_FIELDCAT-SELTEXT_L = 'Material Description'. IT_FIELDCAT-OUTPUTLEN = 12. APPEND IT_FIELDCAT. CLEAR IT_FIELDCAT. POS = POS + 1. IT_FIELDCAT-COL_POS = POS.*IT_FIELDCAT-FIX_COLUMN = 'X'. IT_FIELDCAT-KEY = 'X'. IT_FIELDCAT-FIELDNAME = 'PSMNG'. IT_FIELDCAT-TABNAME = 'IT_FINAL'. IT_FIELDCAT-SELTEXT_L = 'Oreder Quantity'. IT_FIELDCAT-OUTPUTLEN = 12. APPEND IT_FIELDCAT. CLEAR IT_FIELDCAT. POS = POS + 1. IT_FIELDCAT-COL_POS = POS.*IT_FIELDCAT-FIX_COLUMN = 'X'. IT_FIELDCAT-KEY = 'X'. IT_FIELDCAT-FIELDNAME = 'WEMNG'. IT_FIELDCAT-TABNAME = 'IT_FINAL'. IT_FIELDCAT-SELTEXT_L = 'Confirm Quantity'. IT_FIELDCAT-OUTPUTLEN = 12. APPEND IT_FIELDCAT. CLEAR IT_FIELDCAT. POS = POS + 1. IT_FIELDCAT-COL_POS = POS. IT_FIELDCAT-FIX_COLUMN = 'X'. IT_FIELDCAT-KEY = 'X'. IT_FIELDCAT-FIELDNAME = 'PEMNG'. IT_FIELDCAT-TABNAME = 'IT_FINAL'. IT_FIELDCAT-SELTEXT_L = 'Pending Quantity'. IT_FIELDCAT-OUTPUTLEN = 12. APPEND IT_FIELDCAT. CLEAR IT_FIELDCAT. POS = POS + 1. IT_FIELDCAT-COL_POS = POS.*IT_FIELDCAT-FIX_COLUMN = 'X'. IT_FIELDCAT-FIELDNAME = 'CMATNR'. IT_FIELDCAT-TABNAME = 'IT_FINAL'. IT_FIELDCAT-SELTEXT_L = 'Require Matrial'. IT_FIELDCAT-OUTPUTLEN = 12. APPEND IT_FIELDCAT. CLEAR IT_FIELDCAT. POS = POS + 1. IT_FIELDCAT-COL_POS = POS.*IT_FIELDCAT-FIX_COLUMN = 'X'. IT_FIELDCAT-FIELDNAME = 'CMAKTX'. IT_FIELDCAT-TABNAME = 'IT_FINAL'. IT_FIELDCAT-SELTEXT_L = 'Require Material Description'. IT_FIELDCAT-OUTPUTLEN = 12. APPEND IT_FIELDCAT. CLEAR IT_FIELDCAT. POS = POS + 1. IT_FIELDCAT-COL_POS = POS.*IT_FIELDCAT-FIX_COLUMN = 'X'. IT_FIELDCAT-FIELDNAME = 'REMNG'. IT_FIELDCAT-TABNAME = 'IT_FINAL'. IT_FIELDCAT-SELTEXT_L = 'Require Quantity'. IT_FIELDCAT-OUTPUTLEN = 12. APPEND IT_FIELDCAT. CLEAR IT_FIELDCAT. POS = POS + 1. IT_FIELDCAT-COL_POS = POS.*IT_FIELDCAT-FIX_COLUMN = 'X'. IT_FIELDCAT-FIELDNAME = 'MBGBTR'. IT_FIELDCAT-TABNAME = 'IT_FINAL'. IT_FIELDCAT-SELTEXT_L = 'Issue Quantity'. IT_FIELDCAT-OUTPUTLEN = 12. APPEND IT_FIELDCAT. CLEAR IT_FIELDCAT. POS = POS + 1. IT_FIELDCAT-COL_POS = POS.*IT_FIELDCAT-FIX_COLUMN = 'X'. IT_FIELDCAT-FIELDNAME = 'STMNG'. IT_FIELDCAT-TABNAME = 'IT_FINAL'. IT_FIELDCAT-SELTEXT_L = 'WIP Quantity'. IT_FIELDCAT-OUTPUTLEN = 12. APPEND IT_FIELDCAT. CLEAR IT_FIELDCAT. POS = POS + 1. IT_FIELDCAT-COL_POS = POS.*IT_FIELDCAT-FIX_COLUMN = 'X'. IT_FIELDCAT-FIELDNAME = 'RMEINS'. IT_FIELDCAT-TABNAME = 'IT_FINAL'. IT_FIELDCAT-SELTEXT_L = 'UOM'. IT_FIELDCAT-OUTPUTLEN = 12. APPEND IT_FIELDCAT. CLEAR IT_FIELDCAT. POS = POS + 1. IT_FIELDCAT-COL_POS = POS.*IT_FIELDCAT-FIX_COLUMN = 'X'. IT_FIELDCAT-FIELDNAME = 'WOGBTR'. IT_FIELDCAT-TABNAME = 'IT_FINAL'. IT_FIELDCAT-SELTEXT_L = 'WIP Value'. IT_FIELDCAT-OUTPUTLEN = 12. APPEND IT_FIELDCAT. *CLEAR IT_FIELDCAT.*POS = POS + 1.*IT_FIELDCAT-COL_POS = POS.**IT_FIELDCAT-FIX_COLUMN = 'X'.*IT_FIELDCAT-FIELDNAME = 'AVALUE'.*IT_FIELDCAT-TABNAME = 'IT_FINAL'.*IT_FIELDCAT-SELTEXT_L = 'WIP Value'.*IT_FIELDCAT-OUTPUTLEN = 12.*APPEND IT_FIELDCAT. CLEAR IT_FIELDCAT. POS = POS + 1. IT_FIELDCAT-COL_POS = POS.*IT_FIELDCAT-FIX_COLUMN = 'X'. IT_FIELDCAT-FIELDNAME = 'AVALUE1'. IT_FIELDCAT-TABNAME = 'IT_FINAL'. IT_FIELDCAT-SELTEXT_L = 'WIP Value (Period Change)'. IT_FIELDCAT-OUTPUTLEN = 12. APPEND IT_FIELDCAT. CLEAR IT_FIELDCAT. POS = POS + 1. IT_FIELDCAT-COL_POS = POS.*IT_FIELDCAT-FIX_COLUMN = 'X'. IT_FIELDCAT-FIELDNAME = 'BUDAT'. IT_FIELDCAT-TABNAME = 'IT_FINAL'. IT_FIELDCAT-SELTEXT_L = 'Posting Date'. IT_FIELDCAT-OUTPUTLEN = 12. APPEND IT_FIELDCAT. CLEAR IT_FIELDCAT. POS = POS + 1. IT_FIELDCAT-COL_POS = POS.*IT_FIELDCAT-FIX_COLUMN = 'X'. IT_FIELDCAT-FIELDNAME = 'BOM'. IT_FIELDCAT-TABNAME = 'IT_FINAL'. IT_FIELDCAT-SELTEXT_L = 'BOM Material'. IT_FIELDCAT-OUTPUTLEN = 12. APPEND IT_FIELDCAT.
*&---------------------------------------------------------------------**& Form DISPLAY*&---------------------------------------------------------------------** text*----------------------------------------------------------------------** --> p1 text* <-- p2 text*----------------------------------------------------------------------*FORM DISPLAY . CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY' EXPORTING I_CALLBACK_PROGRAM = SY-CPROG I_CALLBACK_TOP_OF_PAGE = 'TOP_OF_PAGE ' IS_LAYOUT = IT_LAYOUT IT_FIELDCAT = IT_FIELDCAT[] IT_SORT = IT_SORT[] IT_EVENTS = IT_EVENT[] I_DEFAULT = 'X' I_SAVE = 'A' TABLES T_OUTTAB = IT_FINAL 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.
*&---------------------------------------------------------------------**& Form TOP_OF_PAGE*&---------------------------------------------------------------------** text*----------------------------------------------------------------------** --> p1 text* <-- p2 text*----------------------------------------------------------------------*FORM top_of_page . REFRESH GT_TOP. GW_TOP-TYP = 'H'. GW_TOP-INFO = 'Atul Auto Ltd.'. APPEND GW_TOP TO GT_TOP. CLEAR GW_TOP. GW_TOP-TYP = 'S'. GW_TOP-INFO = 'Work In Progress Report'. APPEND GW_TOP TO GT_TOP. CLEAR GW_TOP. IF S_BUDAT-HIGH IS INITIAL. S_BUDAT-HIGH = S_BUDAT-LOW. CLEAR S_BUDAT-LOW. S_BUDAT-LOW = '19000101'. ENDIF. CONCATENATE 'Date : ' SPACE(1) S_BUDAT-LOW+6(2) '-' S_BUDAT-LOW+4(2) '-' S_BUDAT-LOW(4) SPACE(1) ' To ' SPACE(1) S_BUDAT-HIGH+6(2) '-' S_BUDAT-HIGH+4(2) '-' S_BUDAT-HIGH(4) INTO GW_TOP-INFO. GW_TOP-TYP = 'S'. APPEND GW_TOP TO GT_TOP. CLEAR GW_TOP. CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE' EXPORTING it_list_commentary = GT_TOP I_LOGO = 'ATUL_LOGO'* I_END_OF_LIST_GRID =* I_ALV_FORM = .
*&---------------------------------------------------------------------**& Form SORT*&---------------------------------------------------------------------** text*----------------------------------------------------------------------** --> p1 text* <-- p2 text*----------------------------------------------------------------------*FORM SORT . IT_FIELDCAT-DO_SUM = 'X'. MODIFY IT_FIELDCAT TRANSPORTING DO_SUM WHERE FIELDNAME = 'WOGBTR'. MODIFY IT_FIELDCAT TRANSPORTING DO_SUM WHERE FIELDNAME = 'AVALUE'. MODIFY IT_FIELDCAT TRANSPORTING DO_SUM WHERE FIELDNAME = 'AVALUE1'. WA_SORT-SPOS = '01' . WA_SORT-FIELDNAME = 'AUFNR'. WA_SORT-SUBTOT = 'X'. APPEND WA_SORT TO IT_SORT . CLEAR WA_SORT. WA_SORT-SPOS = '02' . WA_SORT-FIELDNAME = 'MATNR'. APPEND WA_SORT TO IT_SORT . CLEAR WA_SORT. WA_SORT-SPOS = '03' . WA_SORT-FIELDNAME = 'MAKTX'. APPEND WA_SORT TO IT_SORT . CLEAR WA_SORT. WA_SORT-SPOS = '04' . WA_SORT-FIELDNAME = 'PSMNG'. APPEND WA_SORT TO IT_SORT . CLEAR WA_SORT. WA_SORT-SPOS = '05' . WA_SORT-FIELDNAME = 'WEMNG'. APPEND WA_SORT TO IT_SORT . CLEAR WA_SORT. WA_SORT-SPOS = '06' . WA_SORT-FIELDNAME = 'PEMNG'. APPEND WA_SORT TO IT_SORT . CLEAR WA_SORT.
*&---------------------------------------------------------------------**& Form EVENT_GET*&---------------------------------------------------------------------** text*----------------------------------------------------------------------** --> p1 text* <-- p2 text*----------------------------------------------------------------------*FORM EVENT_GET . CONSTANTS : C_FORMNAME_SUBTOTAL_TEXT TYPE SLIS_FORMNAME VALUE 'SUBTOTAL_TEXT'. DATA : L_S_EVENT TYPE SLIS_ALV_EVENT. CALL FUNCTION 'REUSE_ALV_EVENTS_GET' EXPORTING I_LIST_TYPE = 4 IMPORTING ET_EVENTS = IT_EVENT EXCEPTIONS LIST_TYPE_WRONG = 0 OTHERS = 0. READ TABLE IT_EVENT INTO L_S_EVENT WITH KEY NAME = SLIS_EV_SUBTOTAL_TEXT. IF SY-SUBRC EQ 0. MOVE C_FORMNAME_SUBTOTAL_TEXT TO L_S_EVENT-FORM. MODIFY IT_EVENT FROM L_S_EVENT INDEX SY-TABIX. ENDIF.
*&---------------------------------------------------------------------**& Form SUBTOTAL_TEXT*&---------------------------------------------------------------------** Build SUBTOTAL_TEXT*----------------------------------------------------------------------** P_total Total* p_subtot_text Subtotal text info*----------------------------------------------------------------------*FORM SUBTOTAL_TEXT CHANGING* P_TOTAL TYPE ANY P_SUBTOT_TEXT TYPE SLIS_SUBTOT_TEXT. IF P_SUBTOT_TEXT-CRITERIA = 'AUFNR'. P_SUBTOT_TEXT-DISPLAY_TEXT_FOR_SUBTOTAL = 'Production Order Level total'(010). ENDIF.
*&---------------------------------------------------------------------**& Form LAYOUT*&---------------------------------------------------------------------** text*----------------------------------------------------------------------** --> p1 text* <-- p2 text*----------------------------------------------------------------------*FORM LAYOUT . CLEAR IT_LAYOUT.* IT_LAYOUT-ZEBRA = 'X'. IT_LAYOUT-NO_INPUT = 'X'. IT_LAYOUT-COLWIDTH_OPTIMIZE = 'X'. IT_LAYOUT-TOTALS_TEXT = 'TOTALS'(201). IT_LAYOUT-COLTAB_FIELDNAME = 'CELLCOLOR'.
*&---------------------------------------------------------------------**& Form SET_CELL_COLOURS*&---------------------------------------------------------------------** text*----------------------------------------------------------------------** --> p1 text* <-- p2 text*----------------------------------------------------------------------*FORM SET_CELL_COLOURS . DATA: WA_CELLCOLOR TYPE LVC_S_SCOL. DATA: LD_INDEX TYPE SY-TABIX. LOOP AT IT_FINAL INTO WA_FINAL." WHERE CMATNR EQ WA_FINAL-MATNR. LD_INDEX = SY-TABIX. IF WA_FINAL-CMATNR EQ WA_FINAL-MATNR. WA_CELLCOLOR-FNAME = 'AVALUE'. WA_CELLCOLOR-COLOR-COL = 6. "color code 1-7, if outside rage defaults to 7 WA_CELLCOLOR-COLOR-INT = '0'. "1 = Intensified on, 0 = Intensified off WA_CELLCOLOR-COLOR-INV = '0'. "1 = text colour, 0 = background colour APPEND WA_CELLCOLOR TO WA_FINAL-CELLCOLOR. MODIFY IT_FINAL FROM WA_FINAL INDEX LD_INDEX TRANSPORTING CELLCOLOR. WA_CELLCOLOR-FNAME = 'WOGBTR'. WA_CELLCOLOR-COLOR-COL = 6. "color code 1-7, if outside rage defaults to 7 WA_CELLCOLOR-COLOR-INT = '0'. "1 = Intensified on, 0 = Intensified off WA_CELLCOLOR-COLOR-INV = '0'. "1 = text colour, 0 = background colour APPEND WA_CELLCOLOR TO WA_FINAL-CELLCOLOR. MODIFY IT_FINAL FROM WA_FINAL INDEX LD_INDEX TRANSPORTING CELLCOLOR. ENDIF.* ENDLOOP.* LOOP AT IT_FINAL INTO WA_FINAL WHERE BOM EQ 'N'.* LD_INDEX = SY-TABIX. IF WA_FINAL-BOM EQ 'N'. WA_CELLCOLOR-FNAME = 'CMATNR'. WA_CELLCOLOR-COLOR-COL = 6. "color code 1-7, if outside rage defaults to 7 WA_CELLCOLOR-COLOR-INT = '0'. "1 = Intensified on, 0 = Intensified off WA_CELLCOLOR-COLOR-INV = '0'. "1 = text colour, 0 = background colour APPEND WA_CELLCOLOR TO WA_FINAL-CELLCOLOR. WA_CELLCOLOR-FNAME = 'CMAKTX'. WA_CELLCOLOR-COLOR-COL = 6. "color code 1-7, if outside rage defaults to 7 WA_CELLCOLOR-COLOR-INT = '0'. "1 = Intensified on, 0 = Intensified off WA_CELLCOLOR-COLOR-INV = '0'. "1 = text colour, 0 = background colour APPEND WA_CELLCOLOR TO WA_FINAL-CELLCOLOR. WA_CELLCOLOR-FNAME = 'REMNG'. WA_CELLCOLOR-COLOR-COL = 6. "color code 1-7, if outside rage defaults to 7 WA_CELLCOLOR-COLOR-INT = '0'. "1 = Intensified on, 0 = Intensified off WA_CELLCOLOR-COLOR-INV = '0'. "1 = text colour, 0 = background colour APPEND WA_CELLCOLOR TO WA_FINAL-CELLCOLOR. WA_CELLCOLOR-FNAME = 'MBGBTR'. WA_CELLCOLOR-COLOR-COL = 6. "color code 1-7, if outside rage defaults to 7 WA_CELLCOLOR-COLOR-INT = '0'. "1 = Intensified on, 0 = Intensified off WA_CELLCOLOR-COLOR-INV = '0'. "1 = text colour, 0 = background colour APPEND WA_CELLCOLOR TO WA_FINAL-CELLCOLOR. WA_CELLCOLOR-FNAME = 'STMNG'. WA_CELLCOLOR-COLOR-COL = 6. "color code 1-7, if outside rage defaults to 7 WA_CELLCOLOR-COLOR-INT = '0'. "1 = Intensified on, 0 = Intensified off WA_CELLCOLOR-COLOR-INV = '0'. "1 = text colour, 0 = background colour APPEND WA_CELLCOLOR TO WA_FINAL-CELLCOLOR. WA_CELLCOLOR-FNAME = 'RMEINS'. WA_CELLCOLOR-COLOR-COL = 6. "color code 1-7, if outside rage defaults to 7 WA_CELLCOLOR-COLOR-INT = '0'. "1 = Intensified on, 0 = Intensified off WA_CELLCOLOR-COLOR-INV = '0'. "1 = text colour, 0 = background colour APPEND WA_CELLCOLOR TO WA_FINAL-CELLCOLOR. WA_CELLCOLOR-FNAME = 'WOGBTR'. WA_CELLCOLOR-COLOR-COL = 6. "color code 1-7, if outside rage defaults to 7 WA_CELLCOLOR-COLOR-INT = '0'. "1 = Intensified on, 0 = Intensified off WA_CELLCOLOR-COLOR-INV = '0'. "1 = text colour, 0 = background colour APPEND WA_CELLCOLOR TO WA_FINAL-CELLCOLOR. WA_CELLCOLOR-FNAME = 'AVALUE'. WA_CELLCOLOR-COLOR-COL = 6. "color code 1-7, if outside rage defaults to 7 WA_CELLCOLOR-COLOR-INT = '0'. "1 = Intensified on, 0 = Intensified off WA_CELLCOLOR-COLOR-INV = '0'. "1 = text colour, 0 = background colour APPEND WA_CELLCOLOR TO WA_FINAL-CELLCOLOR. WA_CELLCOLOR-FNAME = 'BUDAT'. WA_CELLCOLOR-COLOR-COL = 6. "color code 1-7, if outside rage defaults to 7 WA_CELLCOLOR-COLOR-INT = '0'. "1 = Intensified on, 0 = Intensified off WA_CELLCOLOR-COLOR-INV = '0'. "1 = text colour, 0 = background colour APPEND WA_CELLCOLOR TO WA_FINAL-CELLCOLOR. MODIFY IT_FINAL FROM WA_FINAL INDEX LD_INDEX TRANSPORTING CELLCOLOR. ENDIF. ENDLOOP.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
8 | |
1 | |
1 | |
1 | |
1 | |
1 | |
1 | |
1 | |
1 | |
1 |