ALV Blocked list display in SAP ABAP
Example report for ALV blocked list display in SAP ABAP.
REPORT ZALV_BLOCKED.
TYPE-POOLS : SLIS .
DATA: BEGIN OF I_MARA OCCURS 0,
MATNR LIKE MARA-MATNR,
MTART LIKE MARA-MTART,
MBRSH LIKE MARA-MBRSH,
END OF I_MARA.
DATA: BEGIN OF I_MAKT OCCURS 0,
MATNR LIKE MAKT-MATNR,
SPRAS LIKE MAKT-SPRAS,
MAKTX LIKE MAKT-MAKTX,
END OF I_MAKT.
DATA: BEGIN OF I_MARC OCCURS 0,
MATNR LIKE MARC-MATNR,
WERKS LIKE MARC-WERKS,
BWTTY LIKE MARC-BWTTY,
END OF I_MARC.
DATA : WA_LAYOUT TYPE SLIS_LAYOUT_ALV .
DATA : I_FCAT TYPE SLIS_T_FIELDCAT_ALV .
DATA : I_EVENTS TYPE SLIS_T_EVENT .
BREAK-POINT.
START-OF-SELECTION .
PERFORM INIT_BLOCKED_ALV .
PERFORM APPEND_BLOCK1.
PERFORM APPEND_BLOCK2.
PERFORM APPEND_BLOCK3.
PERFORM DISPLAY_BLOCKED_ALV .
FORM INIT_BLOCKED_ALV .
CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_INIT'
EXPORTING
I_CALLBACK_PROGRAM = SY-REPID.
ENDFORM. " INIT_BLOCKED_ALV
FORM APPEND_BLOCK1 .
SELECT * FROM MARA
INTO CORRESPONDING FIELDS OF TABLE I_MARA
UP TO 10 ROWS.
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
I_PROGRAM_NAME = SY-REPID
I_INTERNAL_TABNAME = 'I_MARA'
I_INCLNAME = SY-REPID
CHANGING
CT_FIELDCAT = I_FCAT.
CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'
EXPORTING
IS_LAYOUT = WA_LAYOUT
IT_FIELDCAT = I_FCAT
I_TABNAME = 'I_MARA'
IT_EVENTS = I_EVENTS
TABLES
T_OUTTAB = I_MARA.
ENDFORM. " APPEND_BLOCK1
FORM APPEND_BLOCK2 .
IF NOT I_MARA[] IS INITIAL .
SELECT * FROM MAKT
INTO CORRESPONDING FIELDS OF TABLE I_MAKT
FOR ALL ENTRIES IN I_MARA
WHERE MATNR = I_MARA-MATNR .
ENDIF .
REFRESH I_FCAT .
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
I_PROGRAM_NAME = SY-REPID
I_INTERNAL_TABNAME = 'I_MAKT'
I_INCLNAME = SY-REPID
CHANGING
CT_FIELDCAT = I_FCAT.
CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'
EXPORTING
IS_LAYOUT = WA_LAYOUT
IT_FIELDCAT = I_FCAT
I_TABNAME = 'I_MAKT'
IT_EVENTS = I_EVENTS
TABLES
T_OUTTAB = I_MAKT.
ENDFORM. " APPEND_BLOCK2
FORM APPEND_BLOCK3 .
IF NOT I_MARA[] IS INITIAL .
SELECT * FROM MARC
INTO CORRESPONDING FIELDS OF TABLE I_MARC
FOR ALL ENTRIES IN I_MARA
WHERE MATNR = I_MARA-MATNR .
ENDIF .
REFRESH I_FCAT .
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
I_PROGRAM_NAME = SY-REPID
I_INTERNAL_TABNAME = 'I_MARC'
I_INCLNAME = SY-REPID
CHANGING
CT_FIELDCAT = I_FCAT.
CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'
EXPORTING
IS_LAYOUT = WA_LAYOUT
IT_FIELDCAT = I_FCAT
I_TABNAME = 'I_MARC'
IT_EVENTS = I_EVENTS
TABLES
T_OUTTAB = I_MARC.
ENDFORM. " APPEND_BLOCK3
FORM DISPLAY_BLOCKED_ALV .
CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_DISPLAY' .
ENDFORM. " DISPLAY_BLOCKED_ALV