Sie sind auf Seite 1von 6

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

*& Report ZCR_ALV_BLOCK_LIST


*
*&
*
*&---------------------------------------------------------------------*
*&
*
*&
*
*&---------------------------------------------------------------------*
REPORT ZCR_ALV_BLOCK_LIST.
TYPE-POOLS : SLIS.
TABLES : MARA,MAKT,MARD.
TYPES: BEGIN OF TY_MARA,
MATNR LIKE MARA-MATNR,
ERSDA LIKE MARA-ERSDA,
ERNAM LIKE MARA-ERNAM,
LAEDA LIKE MARA-LAEDA,
END OF TY_MARA.
TYPES:

BEGIN OF TY_MAKT,
MATNR LIKE MAKT-MATNR,
SPRAS LIKE MAKT-SPRAS,
MAKTX LIKE MAKT-MAKTX,
END OF TY_MAKT.

TYPES:

BEGIN OF TY_MARD,
MATNR LIKE MARD-MATNR,
WERKS LIKE MARD-WERKS,
LGORT LIKE MARD-LGORT,
END OF TY_MARD.

* INTERNAL TABLE DECLARATION.


DATA : IT_MARA TYPE TABLE OF TY_MARA,
IT_MAKT TYPE TABLE OF TY_MAKT,
IT_MARD TYPE TABLE OF TY_MARD.
* FIELDCAT DECLARATION
DATA : I_FCAT_MARA TYPE SLIS_T_FIELDCAT_ALV,
I_FCAT_MAKT TYPE SLIS_T_FIELDCAT_ALV,
I_FCAT_MARD TYPE SLIS_T_FIELDCAT_ALV,
W_FCAT_MARA TYPE SLIS_FIELDCAT_ALV,
W_FCAT_MAKT TYPE SLIS_FIELDCAT_ALV,
W_FCAT_MARD TYPE SLIS_FIELDCAT_ALV,
I_EVENT TYPE SLIS_T_EVENT.

*PROGRAM NAME
DATA : I_PROGRAM TYPE SY-REPID.
*LAYOUT DECLARATION
DATA : W_LAYOUT TYPE SLIS_LAYOUT_ALV.

START-OF-SELECTION.
I_PROGRAM = SY-REPID.
PERFORM BUILD_FACT.
PERFORM MY_LAYOUT.
PERFORM INIT_BLOCK.
PERFORM SELECT_DATA.
PERFORM BLOCK_LIST.
*&---------------------------------------------------------------------*
*&
Form BUILD_FACT
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM BUILD_FACT .
*FIELDCAT FOR MARA TABLE
W_FCAT_MARA-col_pos =
W_FCAT_MARA-fieldname
W_FCAT_MARA-tabname =
W_FCAT_MARA-seltext_m
APPEND W_FCAT_MARA TO
CLEAR W_FCAT_MARA.

'1'.
= 'MATNR'.
'MARA'.
= 'MATERIAL NO'.
I_FCAT_MARA.

W_FCAT_MARA-col_pos = '2'.
W_FCAT_MARA-fieldname = 'ERSDA'.
W_FCAT_MARA-tabname = 'MARA'.
W_FCAT_MARA-seltext_m = 'CREATION DATE'.
APPEND W_FCAT_MARA TO I_FCAT_MARA.
CLEAR W_FCAT_MARA.
W_FCAT_MARA-col_pos = '3'.
W_FCAT_MARA-fieldname = 'ERNAM'.
W_FCAT_MARA-tabname = 'MARA'.
W_FCAT_MARA-seltext_m = 'PERSON CREATED'.
APPEND W_FCAT_MARA TO I_FCAT_MARA.
CLEAR W_FCAT_MARA.
W_FCAT_MARA-col_pos = '4'.
W_FCAT_MARA-fieldname = 'LAEDA'.
W_FCAT_MARA-tabname = 'MARA'.
W_FCAT_MARA-seltext_m = 'DATE OF LAST CHANGE'.
APPEND W_FCAT_MARA TO I_FCAT_MARA.
CLEAR W_FCAT_MARA.
* FIELDCAT FOR MAKT
W_FCAT_MAKT-col_pos =
W_FCAT_MAKT-fieldname
W_FCAT_MAKT-tabname =
W_FCAT_MAKT-seltext_m
APPEND W_FCAT_MAKT TO
CLEAR W_FCAT_MAKT.

'1'.
= 'MATNR'.
'MAKT'.
= 'MATERIAL NO'.
I_FCAT_MAKT.

W_FCAT_MAKT-col_pos = '2'.

W_FCAT_MAKT-fieldname
W_FCAT_MAKT-tabname =
W_FCAT_MAKT-seltext_m
APPEND W_FCAT_MAKT TO
CLEAR W_FCAT_MAKT.

= 'SPRAS'.
'MAKT'.
= 'LANGUAGE'.
I_FCAT_MAKT.

W_FCAT_MAKT-col_pos = '3'.
W_FCAT_MAKT-fieldname = 'MAKTX'.
W_FCAT_MAKT-tabname = 'MAKT'.
W_FCAT_MAKT-seltext_m = 'MATERIAL DESCRIPTION'.
APPEND W_FCAT_MAKT TO I_FCAT_MAKT.
CLEAR W_FCAT_MAKT.
* FIELDCAT FOR MARD
W_FCAT_MARD-col_pos =
W_FCAT_MARD-fieldname
W_FCAT_MARD-tabname =
W_FCAT_MARD-seltext_m
APPEND W_FCAT_MARD TO
CLEAR W_FCAT_MARD.

'1'.
= 'MATNR'.
'MARD'.
= 'MATERIAL NO'.
I_FCAT_MARD.

W_FCAT_MARD-col_pos = '2'.
W_FCAT_MARD-fieldname = 'WERKS'.
W_FCAT_MARD-tabname = 'MARD'.
W_FCAT_MARD-seltext_m = 'PLANT'.
APPEND W_FCAT_MARD TO I_FCAT_MARD.
CLEAR W_FCAT_MARD.
W_FCAT_MARD-col_pos = '3'.
W_FCAT_MARD-fieldname = 'LGORT'.
W_FCAT_MARD-tabname = 'MARD'.
W_FCAT_MARD-seltext_m = 'STORAGE LOCATION'.
APPEND W_FCAT_MARD TO I_FCAT_MARD.
CLEAR W_FCAT_MARD.
ENDFORM.
" BUILD_FACT
*&---------------------------------------------------------------------*
*&
Form INIT_BLOCK
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM INIT_BLOCK .
CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_INIT'
EXPORTING
I_CALLBACK_PROGRAM
= I_PROGRAM
* I_CALLBACK_PF_STATUS_SET
= ' '
* I_CALLBACK_USER_COMMAND
= ' '
* IT_EXCLUDING
=
.
ENDFORM.
" INIT_BLOCK
*&---------------------------------------------------------------------*
*&
Form MY_LAYOUT
*&---------------------------------------------------------------------*

*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM MY_LAYOUT .
W_LAYOUT-zebra = 'X'.
ENDFORM.
" MY_LAYOUT
*&---------------------------------------------------------------------*
*&
Form SELECT_DATA
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM SELECT_DATA .
SELECT MATNR
ERSDA
ERNAM
LAEDA
INTO TABLE IT_MARA FROM MARA UP TO 20 ROWS.
SELECT MATNR
SPRAS
MAKTX
INTO TABLE IT_MAKT FROM MAKT UP TO 20 ROWS.
SELECT MATNR
WERKS
LGORT
INTO TABLE IT_MARD FROM MARD UP TO 20 ROWS.

ENDFORM.

" SELECT_DATA

FORM BLOCK_LIST .
CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'
EXPORTING
IS_LAYOUT
= W_LAYOUT
IT_FIELDCAT
= I_FCAT_MARA
I_TABNAME
= 'MARA'
IT_EVENTS
= I_EVENT
* IT_SORT
=
* I_TEXT
= ' '
TABLES
T_OUTTAB
= IT_MARA
* EXCEPTIONS
* PROGRAM_ERROR
= 1
* MAXIMUM_OF_APPENDS_REACHED
= 2
* OTHERS
= 3
.
IF SY-SUBRC <> 0.

* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO


*
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'
EXPORTING
IS_LAYOUT
= W_LAYOUT
IT_FIELDCAT
= I_FCAT_MAKT
I_TABNAME
= 'MAKT'
IT_EVENTS
= I_EVENT
* IT_SORT
=
* I_TEXT
= ' '
TABLES
T_OUTTAB
= IT_MAKT
* EXCEPTIONS
* PROGRAM_ERROR
= 1
* MAXIMUM_OF_APPENDS_REACHED
= 2
* OTHERS
= 3
.
IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'
EXPORTING
IS_LAYOUT
= W_LAYOUT
IT_FIELDCAT
= I_FCAT_MARD
I_TABNAME
= 'MARD'
IT_EVENTS
= I_EVENT
* IT_SORT
=
* I_TEXT
= ' '
TABLES
T_OUTTAB
= IT_MARD
* EXCEPTIONS
* PROGRAM_ERROR
= 1
* MAXIMUM_OF_APPENDS_REACHED
= 2
* OTHERS
= 3
.
IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_DISPLAY'
* EXPORTING
* I_INTERFACE_CHECK
= ' '
* IS_PRINT
=
* I_SCREEN_START_COLUMN
= 0
* I_SCREEN_START_LINE
= 0
* I_SCREEN_END_COLUMN
= 0
* I_SCREEN_END_LINE
= 0
* IMPORTING
* E_EXIT_CAUSED_BY_CALLER
=
* ES_EXIT_CAUSED_BY_USER
=
* 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.
*&---------------------------------------------------------------------*
*&
Form BLOCK_LIST
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
ENDFORM.

" BLOCK_LIST

Das könnte Ihnen auch gefallen