Quantcast
Channel: SCN: Message List
Viewing all articles
Browse latest Browse all 2106

Re: Issue in Logic ?

$
0
0

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 = 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


Viewing all articles
Browse latest Browse all 2106

Latest Images

Trending Articles



Latest Images