I get the required data in 3 internal tables. How can I get a report which will print :
1. Material Number
2. Material Description
3. Plant
4. Plant Description as output for the given Material Number.
I am a bit confused about retrieving the data from it_too1w when no field matches with MARC and MAKT Internal tables.
Here is the code :
*&---------------------------------------------------------------------*
*& Report Z_ABAP_ASSIGNMENT2_ADDITION_1
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT Z_ABAP_ASSIGNMENT2_ADDITION_1.
TYPES : BEGIN OF ty_marc,
matnr TYPE MATNR,
werks TYPE WERKS_D,
END OF ty_marc.
TYPES : BEGIN OF ty_makt,
matnr TYPE MATNR,
spras TYPE SPRAS,
maktx TYPE MAKTX,
maktg TYPE MAKTG,
END OF ty_makt.
TYPES : BEGIN OF ty_t001w,
werks TYPE WERKS_D,
name1 TYPE NAME1,
END OF ty_t001w.
DATA : it_marc TYPE ty_marc OCCURS 0,
wa_marc TYPE ty_marc,
it_makt TYPE ty_makt OCCURS 0,
wa_makt TYPE ty_makt,
it_t001w TYPE ty_t001w OCCURS 0,
wa_t001w TYPE ty_t001w.
SELECT-OPTIONS s_matnr FOR wa_makt-matnr NO-EXTENSION NO INTERVALS.
SELECT matnr
spras
maktx
maktg
FROM makt
INTO TABLE it_makt
WHERE matnr IN s_matnr.
IF sy-subrc IS INITIAL.
SELECT matnr
werks
FROM marc
INTO TABLE it_marc
FOR ALL ENTRIES IN it_makt
WHERE matnr EQ it_makt-matnr.
ENDIF.
IF sy-subrc IS INITIAL.
SELECT werks
name1
FROM T001W
INTO TABLE it_t001w
FOR ALL ENTRIES IN it_marc
WHERE werks EQ it_marc-werks.
ENDIF.
WRITE : / 'Material Number',
20 'Material Description',
45 'Plant',
55 'Plant Description' LEFT-JUSTIFIED.
SKIP.
*I am unable to understand how to use 3 IT for output.
LOOP AT it_makt INTO wa_makt.
* READ TABLE it_t001w INTO wa_t001w WITH TABLE KEY.
WRITE wa_makt-matnr.
WRITE 20 wa_makt-maktx.
WRITE 45 wa_t001w-werks.
WRITE 55 wa_t001w-name1 LEFT-JUSTIFIED.
ENDLOOP.