‎2008 Feb 27 10:33 AM
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.
‎2008 Feb 27 10:50 AM
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'
‎2008 Feb 27 10:50 AM
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
‎2008 Feb 27 10:52 AM
hi
What is your requirement can you give some details so that i can suggest if your code is correct or not.
Regards
Lakshmikanth
‎2008 Feb 27 11:09 AM
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.
‎2008 Feb 27 11:21 AM
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