Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

Is this below code is correct ?

Former Member
0 Likes
777

Hi Experts ,

Plz check the below , is this code will work or not ?

&----


*& Form job_logic

&----


FORM job_logic .

SELECT * FROM zt68 INTO TABLE v_zt68_tab.

LOOP AT v_final_tab.

IF v_zt68_tab-jobname(2) EQ 'SA' AND v_zt68_tab-jobname+8(4) NE '-CA7'.

IF v_zt68_tab-jobtype EQ 'LGY'.

IF v_zt68_tab-jobid NE 'D O N E'.

SELECT jobname jobtype jobid sdlstrtdt sdlstrttm

msg1 msg2 msg3 msg4 msg5 msg6 FROM zt68

INTO CORRESPONDING FIELDS OF TABLE l_zt68_tab

WHERE jobname EQ v_zt68_tab-jobname

AND jobtype EQ v_zt68_tab-jobtype

AND jobid NE v_zt68_tab-jobid

AND msg1 EQ zt68-msg1

AND msg2 EQ zt68-msg2

AND msg3 EQ zt68-msg3

AND msg4 EQ zt68-msg4

AND msg5 EQ zt68-msg5

AND msg6 EQ zt68-msg6.

IF sy-subrc EQ 0.

CONCATENATE zt68-msg1 zt68-msg2 zt68-msg3 zt68-msg4

zt68-msg5 zt68-msg6 INTO msg.

MOVE msg TO l_zt68_tab-i_msg.

ELSE.

MESSAGE i001(z001).

ENDIF.

ENDIF.

ENDIF.

ENDIF.

IF l_zt68_tab[] IS NOT INITIAL.

SELECT jobname jobtype owner text expected_day FROM

zt67 INTO CORRESPONDING FIELDS OF TABLE l_zt67_tab

WHERE jobname EQ l_zt68_tab-jobname

AND jobtype EQ l_zt68_tab-jobtype.

      • Aging

IF sy-subrc EQ 0.

i_cmpdate = sy-datum+6(2) - l_zt67_tab-expected_day.

CONCATENATE sy-datum l_zt67_tab-expected_day

INTO i_cmpdate.

MOVE i_cmpdate TO v_final_tab-datum.

ENDIF.

IF l_zt67_tab[] IS NOT INITIAL.

SELECT contact_name FROM zt107 INTO TABLE l_zt107_tab WHERE

owner EQ l_zt67_tab-owner.

ENDIF.

ENDIF.

MOVE-CORRESPONDING l_zt68_tab TO v_final_tab.

MOVE-CORRESPONDING l_zt67_tab TO v_final_tab.

MOVE-CORRESPONDING l_zt107_tab TO v_final_tab.

APPEND v_final_tab.

ENDLOOP.

ENDFORM. " logic

v_final_tab is final internal table using for output display through ALV Grid.

Thnx.

5 REPLIES 5
Read only

Pramanan
Active Participant
0 Likes
655

Hi,

To my knowledge it has some errors.

SELECT * FROM zt68 INTO TABLE v_zt68_tab.

LOOP AT v_final_tab.

IF v_zt68_tab-jobname(2) EQ 'SA' AND v_zt68_tab_jobname8(4) NE '-CA7'.+

IF v_zt68_tab-jobtype EQ 'LGY'.

IF v_zt68_tab-jobid NE 'D O N E'.

in the above code you had move some datas into an internal table v_zt68_tab but in the loop v_final_tab you trying to check the fileds in that internal table v_zt68_tab.

This is not possible. Because as like the table v_final_tab ,

v_zt68_tab this internal table needs loop to fecth data one by one.

or u can use for all entries and read statement to compare

'LGY' and 'DONE'

Read only

Former Member
0 Likes
655

Few Observations

1. While Looping thru V_FINAL_TAB internal you are appending records into it

which to me sounds strange. So i assume it should be LOOP AT V_zt68_tab.

2. For every record from V_ZT68_TAB internal table, how many records are you anticipating to be fetched from ZT68 & ZT67 tables in DB? It looks your select statements inside the loop assumes there would be only record retrieved.

So please check your code logic,

Thanks,

Balaji

Read only

Former Member
0 Likes
655

hi

What is your requirement can you give some details so that i can suggest if your code is correct or not.

Regards

Lakshmikanth

Read only

0 Likes
655

i need to fetch records from internal table l_zt68_tab, l_zt67_tab and l_zt107_tab. then i need to move the whole records into my final itab i.e.v_final_tab and should display via Alv Grid. already i have written the code ALV. but my problem there is no test data available in my development client .all Db tables are empty.

Plz Help me.

Read only

dhruv_shah3
Active Contributor
0 Likes
655

Hi,

Follow the below code it may be useful for you.


--------------------------------------------------------------------------------

*&---------------------------------------------------------------------*
*& Report  ZRJ_SPEC_BUDGET_ACTUAL_COMMIT
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*

REPORT  ZRJ_SPEC_BUDGET_ACTUAL_COMMIT.


INITIALIZATION.
TYPE-POOLS : SLIS.
PARAMETERS: P_COAREA TYPE COAS-KOKRS DEFAULT 1000,
            P_INTORD TYPE COAS-AUFNR DEFAULT 000000900043,
            P_FISCAL TYPE BPJA-GJAHR DEFAULT 2007.

*********************************************************************************
* DATA TYPE DECLARATION
*********************************************************************************

TYPES : BEGIN OF TY_COAS,
          IONO TYPE COAS-AUFNR,
          ORTYP TYPE COAS-AUART,
          AMT3 TYPE EKBZ-DMBTR,
        END OF TY_COAS,

        BEGIN OF TY_EKKN,
          PONO TYPE EKKN-EBELN,
          ITNO TYPE EKKN-EBELP,
          IONO TYPE EKKN-AUFNR,
*EKKO FIELD
          POTYP TYPE EKKO-BSART,
          POCUR TYPE EKKO-WAERS,
          EXCRT TYPE EKKO-WKURS,
*EKET FIELD
          DELDT TYPE EKET-EINDT,
*EKPO FIELD
          QTY1 TYPE EKPO-MENGE,
          AMT1 TYPE EKKO-WKURS,
*EKBE FIELD
          QTY2 TYPE EKBE-MENGE,
          AMT21 TYPE EKBE-DMBTR,
*EKBZ FIELD
          AMT22 TYPE EKBZ-DMBTR,
          QTY3 TYPE EKBZ-MENGE,
          AMT33 TYPE EKBZ-DMBTR,
* BPJA FIELD OR  BPGE FIELD ''' DEPENDS ON CONDITION
          AMT4 TYPE BPJA-WTJHR,

       END OF TY_EKKN,

        BEGIN OF TY_EKKO,
          PONO TYPE EKKO-EBELN,
          POTYP TYPE EKKO-BSART,
          POCUR TYPE EKKO-WAERS,
          EXCRT TYPE EKKO-WKURS,
       END OF TY_EKKO,

       BEGIN OF TY_EKET,
         PONO TYPE EKET-EBELN,
         ITNO TYPE EKKN-EBELP,
         DELDT TYPE EKET-EINDT,
       END OF TY_EKET,

       BEGIN OF TY_EKPO,
         PONO TYPE EKET-EBELN,
         ITNO TYPE EKKN-EBELP,
         QTY1 TYPE EKPO-MENGE,
      END OF TY_EKPO,

      BEGIN OF TY_EKBE,
         PONO TYPE EKET-EBELN,
         ITNO TYPE EKKN-EBELP,
         QTY2 TYPE EKBE-MENGE,
         AMT21 TYPE EKBE-DMBTR,
         SHKZG TYPE EKBE-SHKZG,
         BUDAT TYPE EKBE-BUDAT,
      END OF TY_EKBE,

      BEGIN OF TY_EKBZ,
         PONO TYPE EKBZ-EBELN,
         ITNO TYPE EKBZ-EBELP,
         AMT22 TYPE EKBZ-DMBTR,
         SHKZG TYPE EKBZ-SHKZG,
         BUDAT TYPE EKBZ-BUDAT,
      END OF TY_EKBZ,

      BEGIN OF TY_EBKN,
        IONO TYPE EBKN-AUFNR,
        PRNO TYPE EBKN-BANFN,
        ITNO TYPE EBKN-BNFPO,
        AMT6 TYPE EBAN-MENGE,
      END OF TY_EBKN,

      BEGIN OF TY_EBAN,
        PRNO TYPE EBAN-BANFN,
        ITNO TYPE EBAN-BNFPO,
        STATU TYPE EBAN-STATU,
        LOEKZ TYPE EBAN-LOEKZ,
        MENGE TYPE EBAN-MENGE,
        PREIS TYPE EBAN-PREIS,
      END OF TY_EBAN,

      BEGIN OF TY_BPJA,
        OBJNR TYPE BPJA-OBJNR,
        WRTTP TYPE BPJA-WRTTP,
        GJAHR TYPE BPJA-GJAHR,
        WTJHR TYPE BPJA-WTJHR,
      END OF TY_BPJA,

        BEGIN OF TY_BPGE,
        OBJNR TYPE BPGE-OBJNR,
        WRTTP TYPE BPGE-WRTTP,
        WTGES TYPE BPGE-WTGES,
      END OF TY_BPGE.



*********************************************************************************
* DATA OBJECT DECLARATION FOR REPORT
*********************************************************************************

DATA: IT_COAS TYPE STANDARD TABLE OF TY_COAS,
      WA_COAS TYPE TY_COAS,

      IT_EKKN TYPE STANDARD TABLE OF TY_EKKN,
      WA_EKKN TYPE TY_EKKN,

      IT_EKKO TYPE STANDARD TABLE OF TY_EKKO,
      WA_EKKO TYPE TY_EKKO,

      IT_EKET TYPE STANDARD TABLE OF TY_EKET,
      WA_EKET TYPE TY_EKET,

      IT_EKPO TYPE STANDARD TABLE OF TY_EKPO,
      WA_EKPO TYPE TY_EKPO,

      IT_EKBE TYPE STANDARD TABLE OF TY_EKBE,
      WA_EKBE TYPE TY_EKBE,

      IT_EKBZ TYPE STANDARD TABLE OF TY_EKBZ,
      WA_EKBZ TYPE TY_EKBZ,

      IT_EBKN TYPE STANDARD TABLE OF TY_EBKN,
      WA_EBKN TYPE TY_EBKN,

      IT_EBAN TYPE STANDARD TABLE OF TY_EBAN,
      WA_EBAN TYPE TY_EBAN,

       IT_BPJA TYPE STANDARD TABLE OF TY_BPJA,
      WA_BPJA TYPE TY_BPJA,

      IT_BPGE TYPE STANDARD TABLE OF TY_BPGE,
      WA_BPGE TYPE TY_BPGE,

      SUM_S_ME TYPE EKBE-MENGE,
      SUM_H_ME TYPE EKBE-MENGE,
      SUM_TOTME TYPE EKBE-MENGE,

      SUM_S_DMBTR TYPE EKBE-MENGE,
      SUM_H_DMBTR TYPE EKBE-MENGE,
      SUM_TOTDMBTR TYPE EKBE-MENGE,
      FLAG TYPE I,
      SUM_AMT4 TYPE BPJA-WTJHR.



*******************************************************************************
*  "DATA OBJECT DECLARATION for ALV
********************************************************************************
DATA: IT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,    " FOR PASSING FIELDCAT VALUE
       G_REPID LIKE SY-REPID,  " FOR PASSING REPORT ID
       IT_HEADER TYPE SLIS_T_LISTHEADER,   " FOR PASSING HEADER'
       IT_SORT TYPE SLIS_T_SORTINFO_ALV.
*********************************************************************************
* START OF SELECTION
*********************************************************************************

START-OF-SELECTION.
G_REPID = SY-REPID.
SELECT AUFNR AUART FROM COAS INTO TABLE IT_COAS
        WHERE AUFNR = P_INTORD AND KOKRS = P_COAREA .


CHECK IT_COAS IS NOT INITIAL.
    SELECT EBELN EBELP AUFNR FROM EKKN INTO TABLE IT_EKKN
      FOR ALL ENTRIES IN IT_COAS
          WHERE AUFNR = IT_COAS-IONO AND KOKRS = P_COAREA .

CHECK IT_EKKN IS NOT INITIAL.
    SELECT EBELN BSART WAERS WKURS FROM EKKO INTO TABLE IT_EKKO
      FOR ALL ENTRIES IN IT_EKKN WHERE EBELN = IT_EKKN-PONO.

    SELECT EBELN EBELP EINDT FROM EKET INTO TABLE IT_EKET
      FOR ALL ENTRIES IN IT_EKKN WHERE EBELN = IT_EKKN-PONO AND EBELP = IT_EKKN-ITNO AND EINDT <= P_FISCAL.

    SELECT EBELN EBELP MENGE FROM EKPO INTO TABLE IT_EKPO
      FOR ALL ENTRIES IN IT_EKKN WHERE EBELN  = IT_EKKN-PONO AND EBELP = IT_EKKN-ITNO .

    SELECT EBELN EBELP MENGE DMBTR SHKZG BUDAT FROM EKBE INTO TABLE IT_EKBE
      FOR ALL ENTRIES IN IT_EKKN
      WHERE EBELN  = IT_EKKN-PONO AND EBELP = IT_EKKN-ITNO AND VGABE = 1 AND BUDAT <= P_FISCAL .

     SELECT EBELN EBELP DMBTR SHKZG BUDAT FROM EKBZ INTO TABLE IT_EKBZ
      FOR ALL ENTRIES IN IT_EKKN
      WHERE EBELN  = IT_EKKN-PONO AND EBELP = IT_EKKN-ITNO AND VGABE = 1 AND BUDAT <= P_FISCAL .


    LOOP AT IT_EKBE INTO WA_EKBE.
        IF WA_EKBE-SHKZG = 'S'.
         SUM_S_ME = SUM_S_ME + WA_EKBE-QTY2.
         SUM_S_DMBTR = SUM_S_DMBTR + WA_EKBE-AMT21 .
        ELSEIF WA_EKBE-SHKZG = 'H'.
          SUM_H_ME = SUM_H_ME +  WA_EKBE-QTY2.
          SUM_H_DMBTR = SUM_H_DMBTR + WA_EKBE-AMT21 .
       ENDIF.
         SUM_TOTME = SUM_TOTME + ( SUM_S_ME - SUM_H_ME ).
         SUM_TOTDMBTR = SUM_TOTDMBTR + ( SUM_S_DMBTR - SUM_H_DMBTR ).

         WA_EKBE-QTY2 = SUM_TOTME.
         WA_EKBE-AMT21 = SUM_TOTDMBTR.

          CLEAR SUM_TOTME.
          CLEAR SUM_TOTDMBTR.
         MODIFY IT_EKBE FROM WA_EKBE TRANSPORTING QTY2 AMT21.
    ENDLOOP.

    CLEAR :  SUM_S_ME ,
            SUM_H_ME ,
            SUM_TOTME ,
            SUM_S_DMBTR ,
            SUM_H_DMBTR ,
            SUM_TOTDMBTR .

    LOOP AT IT_EKBZ INTO WA_EKBZ.
        IF WA_EKBZ-SHKZG = 'S'.
                   SUM_S_DMBTR = SUM_S_DMBTR + WA_EKBZ-AMT22 .
        ELSEIF WA_EKBZ-SHKZG = 'H'.
                  SUM_H_DMBTR = SUM_H_DMBTR + WA_EKBZ-AMT22 .
       ENDIF.
                SUM_TOTDMBTR = SUM_TOTDMBTR + ( SUM_S_DMBTR - SUM_H_DMBTR ).

         WA_EKBZ-AMT22 = SUM_TOTDMBTR.


          CLEAR SUM_TOTDMBTR.
          MODIFY IT_EKBZ FROM WA_EKBZ TRANSPORTING AMT22.

    ENDLOOP.


CHECK IT_COAS IS NOT INITIAL.

    SELECT AUFNR BANFN BNFPO FROM EBKN INTO TABLE IT_EBKN
      FOR ALL ENTRIES IN IT_COAS
      WHERE AUFNR = IT_COAS-IONO AND KOKRS = P_COAREA.

CHECK IT_EBKN IS NOT INITIAL.

    SELECT BANFN BNFPO STATU LOEKZ MENGE PREIS FROM EBAN INTO TABLE IT_EBAN
      FOR ALL ENTRIES IN IT_EBKN
      WHERE BANFN =  IT_EBKN-PRNO AND BNFPO = IT_EBKN-ITNO AND STATU IN ('B','L','S').



  LOOP AT IT_EBKN INTO WA_EBKN.

      READ TABLE IT_EBAN INTO WA_EBAN WITH KEY PRNO = WA_EBKN-PRNO
                                               ITNO = WA_EBKN-ITNO.

      WA_EBKN-AMT6 = WA_EBAN-MENGE * WA_EBAN-PREIS .

    MODIFY IT_EBKN FROM WA_EBKN TRANSPORTING AMT6.

    READ TABLE IT_COAS INTO WA_COAS WITH KEY IONO  = WA_EBKN-IONO.
*        MESSAGE 'RR' TYPE 'I'.
  ENDLOOP.

  LOOP AT IT_COAS INTO WA_COAS.

  CONCATENATE 'OR' WA_COAS-IONO INTO WA_COAS-IONO.

    IF WA_COAS-ORTYP+0(3) = 'HOP' OR WA_COAS-ORTYP = 'CAPX' OR WA_COAS-ORTYP = 'ONOF'.

        SELECT OBJNR WRTTP GJAHR WTJHR FROM BPJA INTO TABLE IT_BPJA
          WHERE  OBJNR = WA_COAS-IONO AND WRTTP = 41 AND GJAHR <= P_FISCAL .

            FLAG = 0.

    ELSE.
         SELECT OBJNR WRTTP WTGES FROM BPGE INTO TABLE IT_BPGE
           WHERE OBJNR = WA_COAS-IONO AND WRTTP = 41.

            FLAG = 1.
    ENDIF.

  ENDLOOP.


LOOP AT IT_EKKN INTO WA_EKKN.

  READ TABLE IT_EKKO INTO WA_EKKO WITH KEY PONO = WA_EKKN-PONO.
      IF SY-SUBRC = 0.
      WA_EKKN-POTYP = WA_EKKO-POTYP.
      WA_EKKN-POCUR = WA_EKKO-POCUR.
      WA_EKKN-EXCRT = WA_EKKO-EXCRT.
      ENDIF.

   READ TABLE IT_EKET INTO WA_EKET WITH KEY PONO = WA_EKKN-PONO
                                            ITNO = WA_EKKN-ITNO.
      IF SY-SUBRC = 0.
        WA_EKKN-DELDT = WA_EKET-DELDT.
      ENDIF.

   READ TABLE IT_EKBE INTO WA_EKBE WITH KEY  PONO = WA_EKKN-PONO
                                            ITNO = WA_EKKN-ITNO.

        IF SY-SUBRC = 0.
          WA_EKKN-QTY2 = WA_EKBE-QTY2.
          WA_EKKN-AMT21 = WA_EKBE-AMT21.
        ENDIF.

   READ TABLE IT_EKBZ INTO WA_EKBZ WITH KEY  PONO = WA_EKKN-PONO
                                            ITNO = WA_EKKN-ITNO.

        IF SY-SUBRC = 0.
          WA_EKKN-AMT22 = WA_EKBZ-AMT22.
        ENDIF.

    IF FLAG = 0.

      READ TABLE IT_BPJA INTO WA_BPJA INDEX 1.

      IF SY-SUBRC = 0.
        SUM_AMT4 = SUM_AMT4 + WA_BPJA-WTJHR.
        WA_EKKN-AMT4 = WA_EKKN-AMT4 + SUM_AMT4.
     ENDIF.
      ELSEIF FLAG = 1.
      READ TABLE IT_BPGE INTO WA_BPGE INDEX 1.

      IF SY-SUBRC = 0.
        SUM_AMT4 = SUM_AMT4 + WA_BPGE-WTGES.
        WA_EKKN-AMT4 = WA_EKKN-AMT4 + SUM_AMT4.
     ENDIF.
   ENDIF.

    MODIFY IT_EKKN FROM WA_EKKN TRANSPORTING POTYP POCUR EXCRT DELDT QTY2 AMT21 AMT22 AMT4.

      READ TABLE IT_EKPO INTO WA_EKPO WITH KEY PONO = WA_EKKN-PONO
                                            ITNO = WA_EKKN-ITNO.
            IF SY-SUBRC = 0 AND WA_EKKN-POCUR <> 'INR'  .
                WA_EKKN-QTY1 = WA_EKPO-QTY1.
                WA_EKKN-AMT1 = WA_EKKN-EXCRT * WA_EKKN-AMT1.
            ENDIF.
    MODIFY IT_EKKN FROM WA_EKKN TRANSPORTING QTY1 AMT1.

    WA_EKKN-QTY3 = WA_EKKN-QTY1 - WA_EKKN-QTY2.
    WA_EKKN-AMT33 = ( ( WA_EKKN-AMT1 / WA_EKKN-QTY1 )  * WA_EKKN-QTY3 ).

    MODIFY IT_EKKN FROM WA_EKKN TRANSPORTING QTY3 AMT33.

    READ TABLE IT_COAS INTO WA_COAS with KEY IONO = WA_EKKN-IONO.

*      *    MESSAGE 'RA' TYPE 'I'.
ENDLOOP.

 PERFORM BUILD_HEADER USING IT_HEADER[].
PERFORM TOP_OF_PAGE.
PERFORM FIELD_CAT USING IT_FIELDCAT[].
PERFORM it_sort_functionality using it_sort[].
PERFORM ALV_GRID_DISPLAY.



  FORM BUILD_HEADER  USING  P_IT_HEADER TYPE SLIS_T_LISTHEADER..

    DATA: WA_LISTHEADER TYPE SLIS_LISTHEADER.
    DATA: TEXT(50) TYPE C,
          DT(10),
          DT1(10).

    WA_LISTHEADER-TYP = 'H'.
    WA_LISTHEADER-INFO = 'ITC LIMITED – BUDGET ACTUAL COMMIT'.
    APPEND WA_LISTHEADER TO P_IT_HEADER.
    CLEAR WA_LISTHEADER.

    WRITE SY-DATUM TO DT DD/MM/YYYY.

    CONCATENATE 'DATE :' DT INTO TEXT.
    WA_LISTHEADER-TYP = 'S'.
    WA_LISTHEADER-INFO = TEXT.
    APPEND WA_LISTHEADER TO P_IT_HEADER.
    CLEAR WA_LISTHEADER.
    CLEAR DT.

    CONCATENATE 'CONTROLLING AREA :' P_COAREA INTO TEXT.
    WA_LISTHEADER-TYP = 'S'.
    WA_LISTHEADER-INFO = TEXT.
    APPEND WA_LISTHEADER TO P_IT_HEADER.
    CLEAR WA_LISTHEADER.

    CONCATENATE 'ORDER NO : ' P_INTORD INTO TEXT.
    WA_LISTHEADER-TYP = 'S'.
    WA_LISTHEADER-INFO = TEXT.
    APPEND WA_LISTHEADER TO P_IT_HEADER.
    CLEAR WA_LISTHEADER.


*    CONCATENATE 'DATE: ' SO_DATE INTO TEXT.
    WA_LISTHEADER-TYP = 'S'.
    WA_LISTHEADER-INFO = 'DEVELOPED BY RAJAN'.
    APPEND WA_LISTHEADER TO P_IT_HEADER.
    CLEAR WA_LISTHEADER.


  ENDFORM.                    " BUILD_HEADER

FORM TOP_OF_PAGE .
    CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
      EXPORTING
        IT_LIST_COMMENTARY = IT_HEADER[]
        I_LOGO             = 'ENJOYSAP_LOGO'.
*   I_END_OF_LIST_GRID       =
*   I_ALV_FORM               =
    .
  ENDFORM.                    " TOP_OF_PAGE

FORM FIELD_CAT  USING P_IT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV.
    DATA: WA_FIELDCAT TYPE SLIS_FIELDCAT_ALV.

    clear WA_FIELDCAT.
    WA_FIELDCAT-FIELDNAME     = 'PONO'.
    WA_FIELDCAT-ref_fieldname = 'EBELN'.
    WA_FIELDCAT-REF_TABNAME   = 'EKKN'.
*     WA_FIELDCAT-DO_SUM           = 'X'.
    WA_FIELDCAT-KEY           = 'X'.
    APPEND WA_FIELDCAT TO  P_IT_FIELDCAT.

clear WA_FIELDCAT.
    WA_FIELDCAT-FIELDNAME     = 'ITNO'.
    WA_FIELDCAT-ref_fieldname = 'EBELP'.
    WA_FIELDCAT-REF_TABNAME   = 'EKKN'.
*     WA_FIELDCAT-DO_SUM           = 'X'.
    WA_FIELDCAT-KEY           = 'X'.
    APPEND WA_FIELDCAT TO  P_IT_FIELDCAT.

clear WA_FIELDCAT.
    WA_FIELDCAT-FIELDNAME     = 'IONO'.
    WA_FIELDCAT-ref_fieldname = 'AUFNR'.
    WA_FIELDCAT-REF_TABNAME   = 'EKKN'.
*     WA_FIELDCAT-DO_SUM           = 'X'.
    WA_FIELDCAT-KEY           = 'X'.
    APPEND WA_FIELDCAT TO  P_IT_FIELDCAT.

clear WA_FIELDCAT.
    WA_FIELDCAT-FIELDNAME     = 'POTYP'.
    WA_FIELDCAT-ref_fieldname = 'BSART'.
    WA_FIELDCAT-REF_TABNAME   = 'EKKO'.
*     WA_FIELDCAT-DO_SUM           = 'X'.
*    WA_FIELDCAT-KEY           = 'X'.
    APPEND WA_FIELDCAT TO  P_IT_FIELDCAT.

clear WA_FIELDCAT.
    WA_FIELDCAT-FIELDNAME     = 'POCUR'.
    WA_FIELDCAT-ref_fieldname = 'WAERS'.
    WA_FIELDCAT-REF_TABNAME   = 'EKKO'.
*     WA_FIELDCAT-DO_SUM           = 'X'.
*    WA_FIELDCAT-KEY           = 'X'.
    APPEND WA_FIELDCAT TO  P_IT_FIELDCAT.

clear WA_FIELDCAT.
    WA_FIELDCAT-FIELDNAME     = 'EXCRT'.
    WA_FIELDCAT-ref_fieldname = 'WKURS'.
    WA_FIELDCAT-REF_TABNAME   = 'EKKO'.
*     WA_FIELDCAT-DO_SUM           = 'X'.
*    WA_FIELDCAT-KEY           = 'X'.
    APPEND WA_FIELDCAT TO  P_IT_FIELDCAT.

clear WA_FIELDCAT.
    WA_FIELDCAT-FIELDNAME     = 'DELDT'.
    WA_FIELDCAT-ref_fieldname = 'EINDT'.
    WA_FIELDCAT-REF_TABNAME   = 'EKET'.
     WA_FIELDCAT-DO_SUM           = 'X'.
*    WA_FIELDCAT-KEY           = 'X'.
    APPEND WA_FIELDCAT TO  P_IT_FIELDCAT.

clear WA_FIELDCAT.
    WA_FIELDCAT-FIELDNAME     = 'QTY1'.
    WA_FIELDCAT-SELTEXT_L = 'QTY1'.
     WA_FIELDCAT-DO_SUM           = 'X'.
*    WA_FIELDCAT-KEY           = 'X'.
    APPEND WA_FIELDCAT TO  P_IT_FIELDCAT.

clear WA_FIELDCAT.
    WA_FIELDCAT-FIELDNAME     = 'AMT1'.
    WA_FIELDCAT-SELTEXT_L = 'AMOUNT 1'.
     WA_FIELDCAT-DO_SUM           = 'X'.
*    WA_FIELDCAT-KEY           = 'X'.
    APPEND WA_FIELDCAT TO  P_IT_FIELDCAT.

clear WA_FIELDCAT.
    WA_FIELDCAT-FIELDNAME     = 'QTY2'.
    WA_FIELDCAT-SELTEXT_L = 'QTY 2'.
     WA_FIELDCAT-DO_SUM           = 'X'.
*    WA_FIELDCAT-KEY           = 'X'.
    APPEND WA_FIELDCAT TO  P_IT_FIELDCAT.

clear WA_FIELDCAT.
    WA_FIELDCAT-FIELDNAME     = 'AMT21'.
    WA_FIELDCAT-SELTEXT_L = 'AMT 21'.
     WA_FIELDCAT-DO_SUM           = 'X'.
*    WA_FIELDCAT-KEY           = 'X'.
    APPEND WA_FIELDCAT TO  P_IT_FIELDCAT.

clear WA_FIELDCAT.
    WA_FIELDCAT-FIELDNAME     = 'AMT22'.
    WA_FIELDCAT-SELTEXT_L = 'AMT22'.
     WA_FIELDCAT-DO_SUM           = 'X'.
*    WA_FIELDCAT-KEY           = 'X'.
    APPEND WA_FIELDCAT TO  P_IT_FIELDCAT.

clear WA_FIELDCAT.
    WA_FIELDCAT-FIELDNAME     = 'QTY3'.
    WA_FIELDCAT-SELTEXT_L = 'QTY 3'.
     WA_FIELDCAT-DO_SUM           = 'X'.
*    WA_FIELDCAT-KEY           = 'X'.
    APPEND WA_FIELDCAT TO  P_IT_FIELDCAT.

clear WA_FIELDCAT.
    WA_FIELDCAT-FIELDNAME     = 'AMT33'.
    WA_FIELDCAT-SELTEXT_L = 'AMT 33'.
     WA_FIELDCAT-DO_SUM           = 'X'.
*    WA_FIELDCAT-KEY           = 'X'.
    APPEND WA_FIELDCAT TO  P_IT_FIELDCAT.

clear WA_FIELDCAT.
    WA_FIELDCAT-FIELDNAME     = 'AMT4'.
    WA_FIELDCAT-SELTEXT_L = 'AMT 4'.
     WA_FIELDCAT-DO_SUM           = 'X'.
*    WA_FIELDCAT-KEY           = 'X'.
    APPEND WA_FIELDCAT TO  P_IT_FIELDCAT.


  ENDFORM.                    " FIELD_CAT

FORM it_sort_functionality  USING P_IT_SORT TYPE SLIS_T_SORTINFO_ALV.
    DATA: LS_SORT TYPE SLIS_SORTINFO_ALV.

    LS_SORT-FIELDNAME = 'PONO'.
    LS_SORT-SPOS      = 1.
    LS_SORT-UP        = 'X'.
    LS_SORT-SUBTOT    = 'X'.
    APPEND LS_SORT TO P_IT_SORT.

    LS_SORT-FIELDNAME = 'ITNO'.
    LS_SORT-SPOS      = 1.
    LS_SORT-UP        = 'X'.
    LS_SORT-SUBTOT    = 'X'.
    APPEND LS_SORT TO P_IT_SORT.

ENDFORM.                    " it_sort_functionality


FORM ALV_GRID_DISPLAY .


    CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
     EXPORTING
*   I_INTERFACE_CHECK                 = ' '
*   I_BYPASSING_BUFFER                = ' '
*   I_BUFFER_ACTIVE                   = ' '
       I_CALLBACK_PROGRAM                = G_REPID
*   I_CALLBACK_PF_STATUS_SET          = ' '
       I_CALLBACK_USER_COMMAND           = '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                   = ' '
*   I_GRID_TITLE                      =
*   I_GRID_SETTINGS                   =
*   IS_LAYOUT                         = IT_LAYOUT
       IT_FIELDCAT                    = IT_FIELDCAT[]
*   IT_EXCLUDING                      =
*   IT_SPECIAL_GROUPS                 =
   IT_SORT                           = it_sort[]
*   IT_FILTER                         =
*   IS_SEL_HIDE                       =
*   I_DEFAULT                         = 'X'
*   I_SAVE                            = ' '
*   IS_VARIANT                        =
*   IT_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
*   I_HTML_HEIGHT_TOP                 = 0
*   I_HTML_HEIGHT_END                 = 0
*   IT_ALV_GRAPHICS                   =
*   IT_HYPERLINK                      =
*   IT_ADD_FIELDCAT                   =
*   IT_EXCEPT_QINFO                   =
*   IR_SALV_FULLSCREEN_ADAPTER        =
* IMPORTING
*   E_EXIT_CAUSED_BY_CALLER           =
*   ES_EXIT_CAUSED_BY_USER            =
      TABLES
        T_OUTTAB                       = IT_EKKN
     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.                    " ALV_GRID_DISPLAY


Thanks & regards,

Dhruv shah