TABLES: mara.
*----Event
Initialization----------------------------------------------*
INITIALIZATION.
*----Selection screen with B1
block------------------------------------*
SELECTION-SCREEN BEGIN
OF BLOCK b1 WITH
FRAME TITLE text-001.
"Mandatory selection range
SELECT-OPTIONS s_matnr FOR mara-matnr OBLIGATORY.
SELECTION-SCREEN END
OF BLOCK b1.
*----------------------------------------------------------------------*
* CLASS cls1 DEFINITION
*----------------------------------------------------------------------*
* Class Definition
*----------------------------------------------------------------------*
CLASS cls1 DEFINITION.
PUBLIC SECTION. "Public section property
"Internal table structure
TYPES: BEGIN OF ty_mara,
matnr TYPE mara-matnr,
ernam TYPE mara-ernam,
mtart TYPE mara-mtart,
END OF
ty_mara,
BEGIN OF
ty_marc,
matnr TYPE marc-matnr,
werks TYPE marc-werks,
END OF
ty_marc,
BEGIN OF
ty_mard,
matnr TYPE mard-matnr,
werks TYPE mard-werks,
lgort TYPE mard-lgort,
END OF
ty_mard,
BEGIN OF
ty_out1,
matnr TYPE mara-matnr,
ernam TYPE mara-ernam,
mtart TYPE mara-mtart,
werks TYPE mard-werks,
lgort TYPE mard-lgort,
END OF
ty_out1.
"Declaration of work area & internal table
DATA: wa_mara TYPE
ty_mara,
it_mara TYPE STANDARD
TABLE OF ty_mara,
wa_marc TYPE ty_marc,
it_marc TYPE STANDARD
TABLE OF ty_marc,
wa_mard TYPE ty_mard,
it_mard TYPE STANDARD
TABLE OF ty_mard,
wa_out1 TYPE ty_out1,
it_out1 TYPE STANDARD
TABLE OF ty_out1.
"Declaration of methods
METHODS: m_mara, m_marc, m_mard,
m_out1, m_display1.
PROTECTED SECTION.
"Protected section property
PRIVATE SECTION. "Private
section property
ENDCLASS. "cls1 DEFINITION
*----------------------------------------------------------------------*
* CLASS cls1 IMPLEMENTATION
*----------------------------------------------------------------------*
* Class Implementation
*----------------------------------------------------------------------*
CLASS cls1 IMPLEMENTATION.
"Implementing m_mara
METHOD m_mara.
SELECT matnr ernam mtart
FROM mara INTO TABLE it_mara
WHERE matnr IN
s_matnr.
IF sy-subrc = 0.
SORT it_mara BY
matnr.
ELSE.
MESSAGE 'No data
found' TYPE 'I'.
ENDIF.
ENDMETHOD.
"m_mara
"Implementing m_marc
METHOD m_marc.
"Prerequisite of For all entries
IF it_mara IS NOT INITIAL.
SELECT matnr werks FROM
marc
INTO TABLE
it_marc
FOR ALL
ENTRIES IN it_mara
WHERE matnr = it_mara-matnr.
IF sy-subrc = 0.
SORT it_marc BY
matnr.
ENDIF.
ENDIF.
ENDMETHOD.
"m_marc
"Implementing m_mard
METHOD m_mard.
"Prerequisite of For all entries
IF it_mara IS NOT INITIAL.
SELECT matnr werks lgort
FROM mard INTO
TABLE it_mard
FOR ALL
ENTRIES IN it_mara
WHERE matnr = it_mara-matnr.
IF sy-subrc = 0.
SORT it_mard BY
matnr.
ENDIF.
ENDIF.
ENDMETHOD.
"m_mard
"Implementing m_out1 - Output table
METHOD m_out1.
IF it_marc IS NOT INITIAL.
"Looping at plant table
LOOP AT it_marc INTO wa_marc.
wa_out1-werks = wa_marc-werks.
"Looping at storage table - loop inside loop with where clause
LOOP AT
it_mard INTO wa_mard
WHERE matnr = wa_marc-matnr.
wa_out1-lgort = wa_mard-lgort.
"Reading the master table since it has unique material
READ
TABLE it_mara INTO wa_mara
WITH KEY
matnr = wa_mard-matnr
BINARY SEARCH.
IF sy-subrc = 0.
wa_out1-matnr =
wa_mara-matnr.
wa_out1-ernam =
wa_mara-ernam.
wa_out1-mtart =
wa_mara-mtart.
"Appending the output table
APPEND wa_out1 TO it_out1.
CLEAR: wa_out1, wa_mara, wa_marc, wa_mard.
ENDIF.
ENDLOOP.
ENDLOOP.
ENDIF.
ENDMETHOD. "m_out1
"Implementing m_display1
METHOD m_display1.
IF it_out1 IS NOT INITIAL.
LOOP AT it_out1 INTO wa_out1.
AT FIRST. "Control
break statement
WRITE: /3 'MATERIAL',
21 'NAME',
36 'TYPE',
48 'PLANT',
56 'STORAGE
LOCATION'.
ULINE.
SKIP.
ENDAT.
WRITE: /3 wa_out1-matnr,
21 wa_out1-ernam,
36 wa_out1-mtart,
48 wa_out1-werks,
56 wa_out1-lgort.
ENDLOOP.
CLEAR wa_out1.
ENDIF.
ENDMETHOD.
"m_display1
ENDCLASS. "cls1 IMPLEMENTATION
*-----Event Start of
Selection-----------------------------------------*
START-OF-SELECTION.
"Declaring the object / instance referenced to class
DATA: obj1 TYPE REF TO cls1.
"Creating the object
CREATE OBJECT:
obj1.
"Calling the methods by object
CALL METHOD:
obj1->m_mara,
obj1->m_marc,
obj1->m_mard,
obj1->m_out1,
obj1->m_display1.
Serkan AKKAVAK
Bilgisayar Mühendisi
serkurumsal@yandex.com
Social Plugin