Interactive ALV report with ALV Events in SAP ABAP

Interactive ALV report using SAP ABAP programming with ALV events and user command.
REPORT  ZALV6                                   .

DATA: IT_EKKO LIKE EKKO OCCURS 1 WITH HEADER LINE.
DATA: IT_EKPO LIKE EKPO OCCURS 1 WITH HEADER LINE.

TYPE-POOLS: SLIS.
DATA: WA_LAYOUT TYPE SLIS_LAYOUT_ALV.
DATA: IT_EVENTS TYPE SLIS_T_EVENT WITH HEADER LINE.

SELECT-OPTIONS: S_EBELN FOR IT_EKKO-EBELN.


START-OF-SELECTION.
  PERFORM GET_DATA.
  PERFORM BUILD_LAYOUT.
  PERFORM BUILD_EVENTS.


END-OF-SELECTION.
  PERFORM SHOW_BASIC_GRID.
*&---------------------------------------------------------------------*
*&      Form  GET_DATA
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM GET_DATA .
  SELECT *
    FROM EKKO
    INTO TABLE IT_EKKO
    WHERE EBELN IN S_EBELN.
ENDFORM.                    " GET_DATA
*&---------------------------------------------------------------------*
*&      Form  SHOW_BASIC_GRID
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM SHOW_BASIC_GRID .
  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
      I_STRUCTURE_NAME   = 'EKKO'
      I_GRID_TITLE       = 'Purchase Order Header'
      I_CALLBACK_PROGRAM = 'ZALV6'
      IS_LAYOUT          = WA_LAYOUT
      IT_EVENTS          = IT_EVENTS[]
    TABLES
      T_OUTTAB           = IT_EKKO
    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.

ENDFORM.                    " SHOW_BASIC_GRID
*&---------------------------------------------------------------------*
*&      Form  BUILD_LAYOUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM BUILD_LAYOUT .
  WA_LAYOUT-KEY_HOTSPOT = 'X'.
ENDFORM.                    " BUILD_LAYOUT
*&---------------------------------------------------------------------*
*&      Form  BUILD_EVENTS
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM BUILD_EVENTS .
  CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
    IMPORTING
      ET_EVENTS       = IT_EVENTS[]
    EXCEPTIONS
      LIST_TYPE_WRONG = 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.
  ELSE.
    READ TABLE IT_EVENTS WITH KEY NAME = 'USER_COMMAND'.
    IF SY-SUBRC = 0.
      IT_EVENTS-FORM = 'SHOW_SEC_GRID'.
      MODIFY IT_EVENTS INDEX SY-TABIX.
    ENDIF.
  ENDIF.

ENDFORM.                    " BUILD_EVENTS

*&---------------------------------------------------------------------*
*&      Form  SHOW_SEC_GRID
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM SHOW_SEC_GRID USING P_UCOMM LIKE SY-UCOMM
                         P_SEL TYPE SLIS_SELFIELD.

  CASE P_UCOMM.
    WHEN '&IC1'.
      REFRESH IT_EKPO.
      SELECT *
        FROM EKPO
        INTO TABLE IT_EKPO
        WHERE EBELN = P_SEL-VALUE.

      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
        EXPORTING
          I_STRUCTURE_NAME = 'EKPO'
          I_GRID_TITLE     = 'Purchase order Items'
        TABLES
          T_OUTTAB         = IT_EKPO[]
        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.
  ENDCASE.
ENDFORM.                    " SHOW_SEC_GRID

Popular posts from this blog

ALV with field catalog merge

SAP ABAP real-time Interview Questions with answers

Using GUI Upload in SAP ABAP