03-07-2010 10:09 AM
Hi expert,
i am new in abap.
I m getting confuse to fill itab. i have 3 itab and want to fill final itab.
my code is -
>
REPORT ZREAD_ITAB .
TABLES : MARC,MARA,MAKT.
SELECT-OPTIONS S_MATNR FOR MARC-MATNR .
PARAMETER P_WERKS LIKE MARC-WERKS.
DATA T_MARC LIKE MARC OCCURS 0 WITH HEADER LINE.
DATA T_MARA LIKE MARA OCCURS 0 WITH HEADER LINE.
DATA T_MAKT LIKE MAKT OCCURS 0 WITH HEADER LINE.
DATA : BEGIN OF ITAB OCCURS 0,
MATNR LIKE MARC-MATNR,
WERKS LIKE MARC-WERKS,
MBRSH LIKE MARA-MBRSH,
MEINS LIKE MARA-MEINS,
MATKL LIKE MARA-MATKL,
MAKTX LIKE MAKT-MAKTX,
SPRAS LIKE MAKT-SPRAS,
END OF ITAB.
SELECT MATNR WERKS LVORM FROM MARC INTO CORRESPONDING FIELDS OF TABLE
T_MARC WHERE MATNR IN
S_MATNR AND WERKS = P_WERKS.
IF T_MARC[] IS NOT INITIAL.
SELECT MATNR MBRSH MEINS MATKL FROM MARA INTO (T_MARA-MATNR,
T_MARA-MBRSH,T_MARA-MEINS,T_MARA-MATKL)
FOR ALL ENTRIES IN T_MARC WHERE MATNR = T_MARC-MATNR.
APPEND T_MARA.
ENDSELECT.
SELECT MATNR MAKTX SPRAS FROM MAKT INTO CORRESPONDING FIELDS OF
(T_MAKT-MATNR,T_MAKT-MAKTX,T_MAKT-SPRAS) FOR ALL ENTRIES IN T_MARC
WHERE MATNR = T_MARC-MATNR AND SPRAS = 'EN'.
APPEND T_MAKT.
ENDSELECT.
LOOP AT T_MARC.
READ TABLE T_MARA WITH KEY MATNR = T_MARC-MATNR.
MOVE :
T_MARC-MATNR TO ITAB-MATNR,
T_MARC-WERKS TO ITAB-WERKS.
APPEND ITAB.
CLEAR T_MARA.
READ TABLE T_MAKT WITH KEY MATNR = T_MARC-MATNR.
MOVE :
T_MARA-MBRSH TO ITAB-MBRSH,
T_MARA-MEINS TO ITAB-MEINS,
T_MARA-MATKL TO ITAB-MATKL,
T_MAKT-MAKTX TO ITAB-MAKTX,
T_MAKT-SPRAS TO ITAB-SPRAS.
APPEND ITAB.
CLEAR T_MAKT.
ENDLOOP.
WRITE:/ ITAB.
ELSE .
WRITE:/ 'NO DATA FOUND'.
ENDIF.
Regards ,
Ashish
03-07-2010 10:19 AM
But you are not new to searching, are you?
This has been discussed many times before.
A tip from my end, replace "for all entries" with a join select and read everything into one final table right away.
Again, please search for more info on this concept.
Thread locked.
Thomas
P.S. you asked questions about ABAP already in 2008, so much for "new in ABAP"...