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.
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: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
| User | Count |
|---|---|
| 6 | |
| 2 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 |