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

Popular posts from this blog

ALV with field catalog merge

SAP ABAP real-time Interview Questions with answers

Using GUI Upload in SAP ABAP