You are on page 1of 7

*&---------------------------------------------------------------------*

*& Report Z_ALV2

*&

*&---------------------------------------------------------------------*

*&

*&

*&---------------------------------------------------------------------*

REPORT Z_ALV2.

TYPE-POOLS: SLIS.

TABLES: MARA, MARC.

TYPES: BEGIN OF TY_MARA,

MATNR TYPE MARA-MATNR,

ERSDA TYPE MARA-ERSDA,

ERNAM TYPE MARA-ERNAM,

PSTAT TYPE MARA-PSTAT,

MTART TYPE MARA-MTART,

END OF TY_MARA,

BEGIN OF TY_MARC,

MATNR TYPE MARC-MATNR,

WERKS TYPE MARC-WERKS,

LVORM TYPE MARC-LVORM,

EKGRP TYPE MARC-EKGRP,

END OF TY_MARC,

BEGIN OF TY_FINAL,

MATNR TYPE MARA-MATNR,

ERSDA TYPE MARA-ERSDA,

ERNAM TYPE MARA-ERNAM,


PSTAT TYPE MARA-PSTAT,

MTART TYPE MARA-MTART,

WERKS TYPE MARC-WERKS,

LVORM TYPE MARC-LVORM,

EKGRP TYPE MARC-EKGRP,

END OF TY_FINAL.

DATA: I_MARA TYPE TABLE OF TY_MARA,

I_MARC TYPE TABLE OF TY_MARC,

I_FINAL TYPE TABLE OF TY_FINAL,

W_MARA TYPE TY_MARA,

W_MARC TYPE TY_MARC,

W_FINAL TYPE TY_FINAL,

I_FCAT TYPE SLIS_T_FIELDCAT_ALV,

W_FCAT TYPE SLIS_FIELDCAT_ALV.

SELECTION-SCREEN: BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.

SELECT-OPTIONS: S_MATNR FOR MARA-MATNR.

SELECTION-SCREEN: END OF BLOCK B1.

IF S_MATNR IS NOT INITIAL.

SELECT MATNR ERSDA ERNAM PSTAT MTART FROM MARA INTO TABLE I_MARA WHERE MATNR IN S_MATNR.

IF I_MARA IS NOT INITIAL.

SELECT MATNR WERKS LVORM EKGRP FROM MARC INTO TABLE I_MARC FOR ALL ENTRIES IN I_MARA WHERE
MATNR = I_MARA-MATNR.

ENDIF.

ENDIF.
IF I_MARA IS NOT INITIAL.

LOOP AT I_MARA INTO W_MARA.

W_FINAL-MATNR = W_MARA-MATNR.

W_FINAL-ERSDA = W_MARA-ERSDA.

W_FINAL-ERNAM = W_MARA-ERNAM.

W_FINAL-PSTAT = W_MARA-PSTAT.

W_FINAL-MTART = W_MARA-MTART.

LOOP AT I_MARC INTO W_MARC WHERE MATNR = W_MARA-MATNR.

W_FINAL-WERKS = W_MARC-WERKS.

W_FINAL-LVORM = W_MARC-LVORM.

W_FINAL-EKGRP = W_MARC-EKGRP.

APPEND W_FINAL TO I_FINAL.

CLEAR: W_MARA, W_MARC, W_FINAL.

ENDLOOP.

ENDLOOP.

ENDIF.

CLEAR W_FCAT.

W_FCAT-COL_POS = '1'.

W_FCAT-FIELDNAME = 'MATNR'.

W_FCAT-TABNAME = 'FINAL'.

W_FCAT-SELTEXT_M = 'Material Number'.

APPEND W_FCAT TO I_FCAT.

CLEAR W_FCAT.
W_FCAT-COL_POS = '2'.

W_FCAT-FIELDNAME = 'ERSDA'.

W_FCAT-TABNAME = 'FINAL'.

W_FCAT-SELTEXT_M = 'Created On'.

APPEND W_FCAT TO I_FCAT.

CLEAR W_FCAT.

W_FCAT-COL_POS = '3'.

W_FCAT-FIELDNAME = 'ERNAM'.

W_FCAT-TABNAME = 'FINAL'.

W_FCAT-SELTEXT_M = 'Name of Person'.

APPEND W_FCAT TO I_FCAT.

CLEAR W_FCAT.

W_FCAT-COL_POS = '4'.

W_FCAT-FIELDNAME = 'PSTAT'.

W_FCAT-TABNAME = 'FINAL'.

W_FCAT-SELTEXT_M = 'Maintenance status'.

APPEND W_FCAT TO I_FCAT.

CLEAR W_FCAT.

W_FCAT-COL_POS = '5'.

W_FCAT-FIELDNAME = 'MTART'.

W_FCAT-TABNAME = 'FINAL'.

W_FCAT-SELTEXT_M = 'Material Type'.

APPEND W_FCAT TO I_FCAT.

CLEAR W_FCAT.
W_FCAT-COL_POS = '6'.

W_FCAT-FIELDNAME = 'WERKS'.

W_FCAT-TABNAME = 'FINAL'.

W_FCAT-SELTEXT_M = 'Plant'.

APPEND W_FCAT TO I_FCAT.

CLEAR W_FCAT.

W_FCAT-COL_POS = '7'.

W_FCAT-FIELDNAME = 'LVORM'.

W_FCAT-TABNAME = 'FINAL'.

W_FCAT-SELTEXT_M = 'Flag Material'.

APPEND W_FCAT TO I_FCAT.

CLEAR W_FCAT.

W_FCAT-COL_POS = '8'.

W_FCAT-FIELDNAME = 'EKGRP'.

W_FCAT-TABNAME = 'FINAL'.

W_FCAT-SELTEXT_M = 'Purchasing Group'.

APPEND W_FCAT TO I_FCAT.

CLEAR W_FCAT.

CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'

EXPORTING

* I_INTERFACE_CHECK =''

* I_BYPASSING_BUFFER =

* I_BUFFER_ACTIVE =''
* I_CALLBACK_PROGRAM =''

* I_CALLBACK_PF_STATUS_SET =''

* I_CALLBACK_USER_COMMAND =''

* I_STRUCTURE_NAME =

* IS_LAYOUT =

IT_FIELDCAT = I_FCAT

* IT_EXCLUDING =

* IT_SPECIAL_GROUPS =

* 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

* IR_SALV_LIST_ADAPTER =

* IT_EXCEPT_QINFO =

* I_SUPPRESS_EMPTY_DATA = ABAP_FALSE

* IMPORTING

* E_EXIT_CAUSED_BY_CALLER =
* ES_EXIT_CAUSED_BY_USER =

TABLES

T_OUTTAB = I_FINAL.

* 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.

You might also like