Hello
Full Code as -
TYPES: BEGIN OF T_BSEG,
BUKRS TYPE BSEG-BUKRS,
BELNR TYPE BSEG-BELNR,
GJAHR TYPE BSEG-GJAHR,
KOART TYPE BSEG-KOART,
DMBTR TYPE BSEG-DMBTR,
HKONT TYPE BSEG-HKONT,
KUNNR TYPE BSEG-KUNNR,
PRCTR TYPE BSEG-PRCTR,
END OF T_BSEG.
TYPES: BEGIN OF T_BKPF,
BELNR TYPE BKPF-BELNR,
GJAHR TYPE BKPF-GJAHR,
MONAT TYPE BKPF-MONAT,
END OF T_BKPF.
TYPES: BEGIN OF T_KNA1,
KUNNR TYPE KNA1-KUNNR,
NAME1 TYPE KNA1-NAME1,
NAME2 TYPE KNA1-NAME2,
KTOKD TYPE KNA1-KTOKD,
END OF T_KNA1.
TYPES: BEGIN OF T_T009C,
PERIV TYPE T009C-PERIV,
POPER TYPE T009C-POPER,
KTEXT TYPE T009C-KTEXT,
END OF T_T009C.
TYPES: BEGIN OF T_FINAL,
BUKRS TYPE BSEG-BUKRS,
BELNR TYPE BSEG-BELNR,
GJAHR TYPE BSEG-GJAHR,
KOART TYPE BSEG-KOART,
DMBTR TYPE BSEG-DMBTR,
HKONT TYPE BSEG-HKONT,
KUNNR TYPE BSEG-KUNNR,
PRCTR TYPE BSEG-PRCTR,
* BELNR TYPE BKPF_BELNR,
* GJAHR TYPE BKPF-GJAHR,
MONAT TYPE BKPF-MONAT,
* KUNNR TYPE KNA1-KUNNR,
NAME1 TYPE KNA1-NAME1,
NAME2 TYPE KNA1-NAME2,
NAME3 TYPE KNA1-NAME1,
NAME4 TYPE KNA1-NAME2,
KTOKD TYPE KNA1-KTOKD,
PERIV TYPE T009C-PERIV,
POPER TYPE T009C-POPER,
KTEXT TYPE T009C-KTEXT,
END OF T_FINAL.
TYPES: BEGIN OF T_FINAL1,
NAME3 TYPE KNA1-NAME1,
DMBTR TYPE BSEG-DMBTR,
POPER TYPE T009C-POPER,
KTEXT TYPE T009C-KTEXT,
V1 TYPE BSEG-DMBTR,
V2 TYPE BSEG-DMBTR,
V3 TYPE BSEG-DMBTR,
V4 TYPE BSEG-DMBTR,
V5 TYPE BSEG-DMBTR,
V6 TYPE BSEG-DMBTR,
V7 TYPE BSEG-DMBTR,
V8 TYPE BSEG-DMBTR,
V9 TYPE BSEG-DMBTR,
V10 TYPE BSEG-DMBTR,
V11 TYPE BSEG-DMBTR,
V12 TYPE BSEG-DMBTR,
END OF T_FINAL1.
DATA : IT_BSEG TYPE STANDARD TABLE OF T_BSEG, ""Declaration for bseg.
WA_BSEG TYPE T_BSEG.
DATA : IT_BSEG1 TYPE STANDARD TABLE OF T_BSEG, ""Declaration for bseg.
WA_BSEG1 TYPE T_BSEG.
DATA : IT_BKPF TYPE STANDARD TABLE OF T_BKPF, ""Declaration for bkpf.
WA_BKPF TYPE T_BKPF.
DATA : IT_KNA1 TYPE STANDARD TABLE OF T_KNA1, ""Declaration for kna1.
WA_KNA1 TYPE T_KNA1.
DATA : IT_KNA2 TYPE STANDARD TABLE OF T_KNA1, ""Declaration for kna1.
WA_KNA2 TYPE T_KNA1.
DATA: IT_T009C TYPE STANDARD TABLE OF T_T009C,
WA_T009C TYPE T_T009C.
DATA : IT_FINAL TYPE STANDARD TABLE OF T_FINAL, ""Declaration for final.
WA_FINAL TYPE T_FINAL,
IT_FINAL1 TYPE STANDARD TABLE OF T_FINAL1,
WA_FINAL1 TYPE T_FINAL1,
IT_FINAL2 TYPE STANDARD TABLE OF T_T009C,
WA_FINAL2 TYPE T_T009C.
DATA: T1 TYPE BSEG-DMBTR,
T2 TYPE BSEG-DMBTR,
T3 TYPE BSEG-DMBTR,
T4 TYPE BSEG-DMBTR,
T5 TYPE BSEG-DMBTR,
T6 TYPE BSEG-DMBTR,
T7 TYPE BSEG-DMBTR,
T8 TYPE BSEG-DMBTR,
T9 TYPE BSEG-DMBTR,
T10 TYPE BSEG-DMBTR,
T11 TYPE BSEG-DMBTR,
T12 TYPE BSEG-DMBTR,
V1 TYPE BSEG-DMBTR.
DATA : IT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV, ""declaration for fieldcatalog.
WA_FIELDCAT TYPE SLIS_FIELDCAT_ALV.
DATA: G_LAYOUT TYPE SLIS_LAYOUT_ALV. ""declaration for layout.
DATA: T_LISTHEADER TYPE SLIS_T_LISTHEADER WITH HEADER LINE,
T_EVENT TYPE SLIS_T_EVENT WITH HEADER LINE,
T_HEADER TYPE SLIS_T_LISTHEADER,
WA_HEADER TYPE SLIS_LISTHEADER,
T_LINE LIKE WA_HEADER-INFO,
T_EVENTS TYPE SLIS_T_EVENT,
GT_EVENT_EXIT TYPE SLIS_T_EVENT_EXIT,
FS_LAYOUT TYPE SLIS_LAYOUT_ALV,
REPNAME LIKE SY-REPID.
**&---------------------------------------------------------------------*
**& LAYOUT
**&---------------------------------------------------------------------*
SELECTION-SCREEN : BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-000.
*SELECT-OPTIONS: S_HKONT FOR BSEG-HKONT NO INTERVALS.
SELECT-OPTIONS: S_KUNNR FOR BSEG-KUNNR NO INTERVALS.
SELECT-OPTIONS: S_MONAT FOR BKPF-MONAT NO INTERVALS.
SELECT-OPTIONS: S_GJAHR FOR BSEG-GJAHR NO INTERVALS.
SELECT-OPTIONS: S_BUKRS FOR BSEG-BUKRS NO INTERVALS.
SELECT-OPTIONS: S_PRCTR FOR BSEG-PRCTR NO INTERVALS.
SELECTION-SCREEN END OF BLOCK B1.
INITIALIZATION.
REPNAME = SY-REPID.
START-OF-SELECTION.
PERFORM FILL_LISTHEADER.
PERFORM DATAGET.
PERFORM FIELDCAT.
PERFORM BUILD_LAYOUT.
PERFORM TOP_OF_PAGE.
PERFORM GRID.
**&---------------------------------------------------------------------*
**& Form dataget
**&---------------------------------------------------------------------*
** text
**----------------------------------------------------------------------*
FORM DATAGET.
SELECT BUKRS
BELNR
GJAHR
KOART
DMBTR
HKONT
KUNNR
FROM BSEG
INTO CORRESPONDING FIELDS OF TABLE IT_BSEG
WHERE BUKRS IN S_BUKRS
AND KUNNR IN S_KUNNR
AND GJAHR IN S_GJAHR
AND KOART = 'D'.
SELECT BELNR
GJAHR
MONAT
FROM BKPF
INTO CORRESPONDING FIELDS OF TABLE IT_BKPF
FOR ALL ENTRIES IN IT_BSEG
WHERE BELNR = IT_BSEG-BELNR
AND MONAT IN S_MONAT.
SELECT KUNNR
NAME1
NAME2
KTOKD
FROM KNA1
INTO CORRESPONDING FIELDS OF TABLE IT_KNA1
FOR ALL ENTRIES IN IT_BSEG
WHERE KUNNR = IT_BSEG-KUNNR.
SELECT PERIV
POPER
KTEXT
FROM T009C
INTO CORRESPONDING FIELDS OF TABLE IT_T009C
WHERE PERIV = 'V3'
AND POPER IN ('001','002','003','004','005','006','007','008',
'009','010','011','012').
LOOP AT IT_BSEG INTO WA_BSEG.
WA_FINAL-BELNR = WA_BSEG-BELNR.
WA_FINAL-GJAHR = WA_BSEG-GJAHR.
WA_FINAL-KUNNR = WA_BSEG-KUNNR.
SELECT BUKRS
BELNR
GJAHR
KOART
DMBTR
HKONT
PRCTR
FROM BSEG
INTO CORRESPONDING FIELDS OF TABLE IT_BSEG1
FOR ALL ENTRIES IN IT_BSEG
WHERE GJAHR = IT_BSEG-GJAHR
AND BELNR = IT_BSEG-BELNR
AND KOART = 'S'
AND PRCTR IN S_PRCTR
AND HKONT IN ('0031010000','0031010001','0031010002','0031010003'
,'0031010004','0031010005','0031010006','0031010007'
,'0031010008').
READ TABLE IT_BSEG1 INTO WA_BSEG1 WITH KEY GJAHR = WA_BSEG-GJAHR BELNR = WA_BSEG-BELNR KOART = 'S'.
WA_FINAL-BELNR = WA_BSEG1-BELNR.
WA_FINAL-GJAHR = WA_BSEG1-GJAHR.
WA_FINAL-DMBTR = WA_BSEG1-DMBTR.
WA_FINAL-HKONT = WA_BSEG1-HKONT.
WA_FINAL-PRCTR = WA_BSEG1-PRCTR.
READ TABLE IT_KNA1 INTO WA_KNA1 WITH KEY KUNNR = WA_BSEG-KUNNR.
IF WA_KNA1-KTOKD NE 'ZITU'.
WA_FINAL-NAME1 = WA_KNA1-NAME1.
WA_FINAL-NAME2 = WA_KNA1-NAME2.
WA_FINAL-NAME4 = ''.
CONCATENATE WA_KNA1-NAME1 WA_KNA1-NAME2 INTO WA_FINAL-NAME3.
ELSEIF WA_KNA1-KTOKD EQ 'ZITU'.
WA_FINAL-NAME1 = WA_KNA1-NAME1.
WA_FINAL-NAME2 = WA_KNA1-NAME2.
WA_FINAL-NAME4 = 'INTER UNIT SALES'.
CONCATENATE WA_KNA1-NAME1 WA_KNA1-NAME2 INTO WA_FINAL-NAME3.
ENDIF.
READ TABLE IT_BKPF INTO WA_BKPF WITH KEY BELNR = WA_BSEG-BELNR GJAHR = WA_BSEG-GJAHR.
WA_FINAL-MONAT = WA_BKPF-MONAT.
APPEND WA_FINAL TO IT_FINAL.
CLEAR: WA_FINAL, WA_BSEG, WA_BSEG1, WA_BKPF, WA_KNA1.
ENDLOOP.
SORT IT_FINAL BY NAME3 MONAT.
LOOP AT IT_T009C INTO WA_T009C WHERE PERIV = 'V3' AND POPER = '001' OR POPER = '002' OR POPER = '003' OR POPER = '004' OR
POPER = '005' OR POPER = '006' OR POPER = '007' OR POPER = '008' OR
POPER = '009' OR POPER = '010' OR POPER = '011' OR POPER = '012'.
WA_FINAL2-PERIV = WA_T009C-PERIV.
WA_FINAL2-POPER = WA_T009C-POPER.
WA_FINAL2-KTEXT = WA_T009C-KTEXT.
APPEND WA_FINAL2 TO IT_FINAL2.
CLEAR: WA_FINAL2, WA_T009C.
ENDLOOP.
SORT IT_FINAL2 BY POPER.
DELETE ADJACENT DUPLICATES FROM IT_FINAL2 COMPARING POPER.
data : ctr TYPE sy-tabix.
DATA : prev_name3 TYPE KNA1-NAME3.
LOOP AT IT_FINAL INTO WA_FINAL.
ctr = sy-tabix.
READ TABLE IT_FINAL2 INTO WA_FINAL2 WITH KEY POPER = WA_FINAL-MONAT.
WA_FINAL1-NAME3 = WA_FINAL-NAME3.
WA_FINAL1-DMBTR = WA_FINAL-DMBTR.
WA_FINAL1-POPER = WA_FINAL2-POPER.
WA_FINAL1-KTEXT = WA_FINAL2-KTEXT.
IF WA_FINAL1-NAME3 EQ WA_FINAL-NAME3.
IF WA_FINAL1-POPER = '001' AND WA_FINAL1-KTEXT = 'APR'.
T1 = T1 + WA_FINAL-DMBTR.
WA_FINAL1-V1 = T1.
ELSEIF WA_FINAL1-POPER = '002' AND WA_FINAL1-KTEXT = 'MAI'.
T2 = T2 + WA_FINAL-DMBTR.
WA_FINAL1-V2 = T2.
ELSEIF WA_FINAL1-POPER = '003' AND WA_FINAL1-KTEXT = 'JUN'.
T3 = T3 + WA_FINAL-DMBTR.
WA_FINAL1-V3 = T3.
ELSEIF WA_FINAL1-POPER = '004' AND WA_FINAL1-KTEXT = 'JUL'.
T4 = T4 + WA_FINAL-DMBTR.
WA_FINAL1-V4 = T4.
ELSEIF WA_FINAL1-POPER = '005' AND WA_FINAL1-KTEXT = 'AUG'.
T5 = T5 + WA_FINAL-DMBTR.
WA_FINAL1-V5 = T5.
ELSEIF WA_FINAL1-POPER = '006' AND WA_FINAL1-KTEXT = 'SEP'.
T6 = T6 + WA_FINAL-DMBTR.
WA_FINAL1-V6 = T6.
ELSEIF WA_FINAL1-POPER = '007' AND WA_FINAL1-KTEXT = 'OKT'.
T7 = T7 + WA_FINAL-DMBTR.
WA_FINAL1-V7 = T7.
ELSEIF WA_FINAL1-POPER = '008' AND WA_FINAL1-KTEXT = 'NOV'.
T8 = T8 + WA_FINAL-DMBTR.
WA_FINAL1-V8 = T8.
ELSEIF WA_FINAL1-POPER = '009' AND WA_FINAL1-KTEXT = 'DEZ'.
T9 = T9 + WA_FINAL-DMBTR.
WA_FINAL1-V9 = T9.
ELSEIF WA_FINAL1-POPER = '010' AND WA_FINAL1-KTEXT = 'JAN'.
T10 = T10 + WA_FINAL-DMBTR.
WA_FINAL1-V10 = T10.
ELSEIF WA_FINAL1-POPER = '011' AND WA_FINAL1-KTEXT = 'FEB'.
T11 = T11 + WA_FINAL-DMBTR.
WA_FINAL1-V11 = T11.
ELSEIF WA_FINAL1-POPER = '012' AND WA_FINAL1-KTEXT = 'MAR'.
T12 = T12 + WA_FINAL-DMBTR.
WA_FINAL1-V12 = T12.
ENDIF.
IF ctr = 1 or prev_name3 ne WA_FINAL-NAME3.
APPEND WA_FINAL1 TO IT_FINAL1.
ELSE.
MODIFY IT_FINAL1 FROM WA_FINAL1 INDEX CTR TRANSPORTING V1 V2 V3 V4 V5 V6 V7 V8 V9 V10 V11 V12.
endif.
prev_name3 = wa_final-name3.
clear wa_final.
Now, I am able to append first record but MODIFY is not working ..
karan




.jpg)







