Wednesday, December 4, 2013

ZGDEMO_SIMPLE_ALV_7AM

*&---------------------------------------------------------------------*
*& Report  ZGDEMO_SIMPLE_ALV_7AM
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*

REPORT  ZGDEMO_SIMPLE_ALV_EVENTS_7AM.

types: begin of TY_EVENTS,
        name(30),
        form(30),
      end of TY_EVENTS.
DATA IT_CSKS TYPE TABLE OF CSKS.



DATA : WA_EVENTS TYPE TY_EVENTS,
       IT_EVENTS TYPE TABLE OF TY_EVENTS.


START-OF-SELECTION.

  PERFORM READ_DATA.
  PERFORM FILL_EVENTS.
  PERFORM DISPLAY_ALV.


*&---------------------------------------------------------------------*
*&      Form  READ_DATA
*&---------------------------------------------------------------------*
FORM READ_DATA .
    SELECT * INTO TABLE IT_CSKS FROM CSKS

   UP TO 20 ROWS.
ENDFORM.                    " READ_DATA

*&---------------------------------------------------------------------*
*&      Form  DISPLAY_ALV
*&---------------------------------------------------------------------*
FORM DISPLAY_ALV .

call function 'REUSE_ALV_GRID_DISPLAY'
 EXPORTING
*   I_INTERFACE_CHECK                 = ' '
*   I_BYPASSING_BUFFER                = ' '
*   I_BUFFER_ACTIVE                   = ' '
   I_CALLBACK_PROGRAM                = SY-REPID
*   I_CALLBACK_PF_STATUS_SET          = ' '
*   I_CALLBACK_USER_COMMAND           = ' '
*   I_CALLBACK_TOP_OF_PAGE            = ' '
*   I_CALLBACK_HTML_TOP_OF_PAGE       = ' '
*   I_CALLBACK_HTML_END_OF_LIST       = ' '
   I_STRUCTURE_NAME                  = 'CSKS'
*   I_BACKGROUND_ID                   = ' '
*   I_GRID_TITLE                      =
*   I_GRID_SETTINGS                   =
*   IS_LAYOUT                         =
*   IT_FIELDCAT                       =
*   IT_EXCLUDING                      =
*   IT_SPECIAL_GROUPS                 =
*   IT_SORT                           =
*   IT_FILTER                         =
*   IS_SEL_HIDE                       =
*   I_DEFAULT                         = 'X'
*   I_SAVE                            = ' '
*   IS_VARIANT                        =
   IT_EVENTS                         = 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
*   I_HTML_HEIGHT_TOP                 = 0
*   I_HTML_HEIGHT_END                 = 0
*   IT_ALV_GRAPHICS                   =
*   IT_HYPERLINK                      =
*   IT_ADD_FIELDCAT                   =
*   IT_EXCEPT_QINFO                   =
*   IR_SALV_FULLSCREEN_ADAPTER        =
* IMPORTING
*   E_EXIT_CAUSED_BY_CALLER           =
*   ES_EXIT_CAUSED_BY_USER            =
  tables
    T_OUTTAB                          = IT_CSKS
* 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.                    " DISPLAY_ALV

*&---------------------------------------------------------------------*
*&      Form  FILL_EVENTS
*&---------------------------------------------------------------------*
FORM FILL_EVENTS .
        CLEAR WA_EVENTS.
              WA_EVENTS-NAME = 'TOP_OF_PAGE'. "EVENT
              WA_EVENTS-FORM = 'PRINT_HEADER'(001). "SUBROUTINE
        APPEND WA_EVENTS TO IT_EVENTS.
ENDFORM.                    " FILL_EVENTS

************************************************
*          PRINT_HEADER                        *
************************************************

FORM PRINT_HEADER.

TYPES : BEGIN OF TY_HEADER,
         typ(1) type c,   " H = Header, S = Selection, A = Action
         key(20) type c,
         info(60) type c,
        END   OF TY_HEADER.
DATA : WA_HEADER TYPE TY_HEADER,
       IT_HEADER TYPE TABLE OF TY_HEADER.

*1ST LINE
      WA_HEADER-TYP   = 'H'.
      WA_HEADER-INFO  = 'Demo to Work With ALV Events'.
APPEND WA_HEADER TO IT_HEADER.
*2ND LINE
      WA_HEADER-TYP   = 'A'.
      WA_HEADER-INFO  = 'Demo to Work With ALV Events'.
APPEND WA_HEADER TO IT_HEADER.
*3RD LINE
      WA_HEADER-TYP   = 'S'.
      WA_HEADER-INFO  = 'Demo to Work With ALV Events'.
APPEND WA_HEADER TO IT_HEADER.

      call function 'REUSE_ALV_COMMENTARY_WRITE'
        exporting
          IT_LIST_COMMENTARY       = IT_HEADER
         I_LOGO                   = 'ENJOYSAP_LOGO'
*         I_END_OF_LIST_GRID       =
*         I_ALV_FORM               =
           .

ENDFORM.

ZGDEMO_SIMPLE_ALV_GRID_7AM

*&---------------------------------------------------------------------*
*& Module pool       ZGDEMO_SIMPLE_ALV_GRID_7AM
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*

PROGRAM  ZGDEMO_OO_ALV_PRINT_EVENTS_7AM.
*REPORT  ZGDEMO_OO_ALV_PRINT_EVENTS_7AM.

DATA : O_CONTAINER TYPE REF TO
CL_GUI_CUSTOM_CONTAINER,
       O_GRID      TYPE REF TO
CL_GUI_ALV_GRID.
DATA : IT_EKKO TYPE TABLE OF EKKO,
       WA_EKKO TYPE EKKO,
       IT_EKPO TYPE TABLE OF EKPO.


*DEFINE EVENT HANDLER CLASS
CLASS LCL_EVENT_HANDLER DEFINITION.
    PUBLIC SECTION.
           METHODS : HANDLE_PRINT_TOP_OF_PAGE FOR EVENT
                          PRINT_TOP_OF_PAGE OF CL_GUI_ALV_GRID,
                     HANDLE_PRINT_TOP_OF_LIST FOR EVENT
                          PRINT_TOP_OF_LIST OF CL_GUI_ALV_GRID,
                     HANDLE_PRINT_END_OF_LIST FOR EVENT
                          PRINT_END_OF_LIST OF CL_GUI_ALV_GRID,
                     HANDLE_DOUBLE_CLICK FOR EVENT DOUBLE_CLICK
                            OF CL_GUI_ALV_GRID
                            IMPORTING ES_ROW_NO,
                     HANDLE_TOOLBAR FOR EVENT TOOLBAR
                            OF CL_GUI_ALV_GRID
                            IMPORTING E_OBJECT,
                     HANDLE_USER_COMMAND FOR EVENT USER_COMMAND
                            OF CL_GUI_ALV_GRID
                            IMPORTING E_UCOMM.


ENDCLASS.

*IMPLEMENTATION
CLASS LCL_EVENT_HANDLER IMPLEMENTATION.
  METHOD HANDLE_PRINT_TOP_OF_PAGE.
         WRITE / 'I AM TOP OF PAGE'.
  ENDMETHOD.

  METHOD HANDLE_PRINT_TOP_OF_LIST.
         WRITE / 'I AM TOP OF LIST'.
  ENDMETHOD.

  METHOD HANDLE_PRINT_END_OF_LIST.
         WRITE / 'I AM END OF LIST'.
  ENDMETHOD.

  METHOD HANDLE_DOUBLE_CLICK.
      READ TABLE IT_EKKO INTO WA_EKKO
                         INDEX ES_ROW_NO-ROW_ID.
      SET PARAMETER ID 'BES' FIELD WA_EKKO-EBELN.
      CALL TRANSACTION 'ME23N'.
  ENDMETHOD.

  METHOD HANDLE_TOOLBAR.
    DATA WA_TOOLBAR TYPE STB_BUTTON.
     WA_TOOLBAR-FUNCTION =  'DETAILED'.
     WA_TOOLBAR-TEXT     =  'Detailed List'.
     APPEND WA_TOOLBAR TO E_OBJECT->MT_TOOLBAR.
  ENDMETHOD.

  METHOD HANDLE_USER_COMMAND.
      CASE E_UCOMM.
           WHEN 'DETAILED'.
               SELECT * INTO TABLE IT_EKPO FROM EKPO
                        FOR ALL ENTRIES IN IT_EKKO
                        WHERE EBELN = IT_EKKO-EBELN.

                        call method O_GRID->SET_TABLE_FOR_FIRST_DISPLAY
                          EXPORTING
*                            I_BUFFER_ACTIVE               =
*                            I_BYPASSING_BUFFER            =
*                            I_CONSISTENCY_CHECK           =
                            I_STRUCTURE_NAME              = 'EKPO'
*                            IS_VARIANT                    =
*                            I_SAVE                        =
*                            I_DEFAULT                     = 'X'
*                            IS_LAYOUT                     =
*                            IS_PRINT                      =
*                            IT_SPECIAL_GROUPS             =
*                            IT_TOOLBAR_EXCLUDING          =
*                            IT_HYPERLINK                  =
*                            IT_ALV_GRAPHICS               =
*                            IT_EXCEPT_QINFO               =
*                            IR_SALV_ADAPTER               =
                          changing
                            IT_OUTTAB                     = IT_EKPO
*                            IT_FIELDCATALOG               =
*                            IT_SORT                       =
*                            IT_FILTER                     =
*                          EXCEPTIONS
*                            INVALID_PARAMETER_COMBINATION = 1
*                            PROGRAM_ERROR                 = 2
*                            TOO_MANY_LINES                = 3
*                            others                        = 4
                                .
                        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.
  ENDMETHOD.

ENDCLASS.

*&---------------------------------------------------------------------*
*&      Module  READ_DATA  OUTPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE READ_DATA OUTPUT.
SELECT * INTO TABLE IT_EKKO FROM EKKO
   UP TO 15 ROWS.
ENDMODULE.                 " READ_DATA  OUTPUT

*&---------------------------------------------------------------------*
*&      Module  DISPLAY_ALV  OUTPUT
*&---------------------------------------------------------------------*
MODULE DISPLAY_ALV OUTPUT.

*CREATE CONTAINER OBJ
create object O_CONTAINER
  exporting

    CONTAINER_NAME              = 'CONTAINER'
          .
if SY-SUBRC = 0.
*CREATE GRID OBJ
create object O_GRID
  exporting
*    I_SHELLSTYLE      = 0
*    I_LIFETIME        =
    I_PARENT          = O_CONTAINER
*    I_APPL_EVENTS     = space
*    I_PARENTDBG       =
*    I_APPLOGPARENT    =
*    I_GRAPHICSPARENT  =
*    I_NAME            =
*    I_FCAT_COMPLETE   = SPACE
*  EXCEPTIONS
*    ERROR_CNTL_CREATE = 1
*    ERROR_CNTL_INIT   = 2
*    ERROR_CNTL_LINK   = 3
*    ERROR_DP_CREATE   = 4
*    others            = 5
    .
if SY-SUBRC = 0.

*REGISTER EVENT & HANDLER METHOD
DATA O_HANDLER TYPE REF TO LCL_EVENT_HANDLER.
CREATE OBJECT O_HANDLER.

SET HANDLER : O_HANDLER->HANDLE_PRINT_TOP_OF_PAGE
                                FOR O_GRID,
              O_HANDLER->HANDLE_PRINT_TOP_OF_LIST
                                FOR O_GRID,
              O_HANDLER->HANDLE_PRINT_END_OF_LIST
                                FOR O_GRID,
              O_HANDLER->HANDLE_DOUBLE_CLICK FOR O_GRID,
              O_HANDLER->HANDLE_TOOLBAR FOR O_GRID,
              O_HANDLER->HANDLE_USER_COMMAND FOR O_GRID.


*DISPLAY
call method O_GRID->SET_TABLE_FOR_FIRST_DISPLAY
  EXPORTING
*    I_BUFFER_ACTIVE               =
*    I_BYPASSING_BUFFER            =
*    I_CONSISTENCY_CHECK           =
    I_STRUCTURE_NAME              = 'EKKO'
*    IS_VARIANT                    =
*    I_SAVE                        =
*    I_DEFAULT                     = 'X'
*    IS_LAYOUT                     =
*    IS_PRINT                      =
*    IT_SPECIAL_GROUPS             =
*    IT_TOOLBAR_EXCLUDING          =
*    IT_HYPERLINK                  =
*    IT_ALV_GRAPHICS               =
*    IT_EXCEPT_QINFO               =
*    IR_SALV_ADAPTER               =
  changing
    IT_OUTTAB                     = IT_EKKO
*    IT_FIELDCATALOG               =
*    IT_SORT                       =
*    IT_FILTER                     =
*  EXCEPTIONS
*    INVALID_PARAMETER_COMBINATION = 1
*    PROGRAM_ERROR                 = 2
*    TOO_MANY_LINES                = 3
*    others                        = 4
        .
if SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
endif.



endif.

endif.

ENDMODULE.                 " DISPLAY_ALV  OUTPUT

*&---------------------------------------------------------------------*
*&      Module  STATUS_0100  OUTPUT
*&---------------------------------------------------------------------*
MODULE STATUS_0100 OUTPUT.
  SET PF-STATUS 'ZSTATUS'.
*  SET TITLEBAR 'xxx'.

ENDMODULE.                 " STATUS_0100  OUTPUT

*&---------------------------------------------------------------------*
*&      Module  USER_COMMAND_0100  INPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE USER_COMMAND_0100 INPUT.

CASE SY-UCOMM.
      WHEN 'BACK'.
            LEAVE TO SCREEN 0.
ENDCASE.

ENDMODULE.                 " USER_COMMAND_0100  INPUT

ZGDEMO_HIER_SEQ_ALV_7AM

*&---------------------------------------------------------------------*
*& Report  ZGDEMO_HIER_SEQ_ALV_7AM
*&
*&---------------------------------------------------------------------*

REPORT  ZGDEMO_HIER_SEQ_ALV_7AM.
TYPE-POOLS SLIS.
DATA : IT_EKKO TYPE TABLE OF EKKO,
       IT_EKPO TYPE TABLE OF EKPO.
DATA WA_KEYINFO TYPE slis_keyinfo_alv.
*********************************************
*        START-OF-SELECTION.                *
*********************************************
START-OF-SELECTION.
SELECT * INTO TABLE IT_EKKO FROM EKKO UP TO 15 ROWS.
SELECT * INTO TABLE IT_EKPO FROM EKPO
                            FOR ALL ENTRIES IN IT_EKKO
                            WHERE EBELN = IT_EKKO-EBELN.

*FILL KEY INO
WA_KEYINFO-HEADER01 = 'EBELN'.
WA_KEYINFO-ITEM01   = 'EBELN'.
WA_KEYINFO-ITEM02   = 'EBELP'.

call function 'REUSE_ALV_HIERSEQ_LIST_DISPLAY'
  exporting
*   I_INTERFACE_CHECK              = ' '
   I_CALLBACK_PROGRAM             = SY-REPID
*   I_CALLBACK_PF_STATUS_SET       = ' '
*   I_CALLBACK_USER_COMMAND        = ' '
*   IS_LAYOUT                      =
*   IT_FIELDCAT                    =
*   IT_EXCLUDING                   =
*   IT_SPECIAL_GROUPS              =
*   IT_SORT                        =
*   IT_FILTER                      =
*   IS_SEL_HIDE                    =
*   I_SCREEN_START_COLUMN          = 0
*   I_SCREEN_START_LINE            = 0
*   I_SCREEN_END_COLUMN            = 0
*   I_SCREEN_END_LINE              = 0
*   I_DEFAULT                      = 'X'
*   I_SAVE                         = ' '
*   IS_VARIANT                     =
*   IT_EVENTS                      =
*   IT_EVENT_EXIT                  =
    I_TABNAME_HEADER               = 'IT_EKKO'
    I_TABNAME_ITEM                 = 'IT_EKPO'
   I_STRUCTURE_NAME_HEADER        = 'EKKO'
   I_STRUCTURE_NAME_ITEM          = 'EKPO'
    IS_KEYINFO                     = WA_KEYINFO
*   IS_PRINT                       =
*   IS_REPREP_ID                   =
*   I_BYPASSING_BUFFER             =
*   I_BUFFER_ACTIVE                =
*   IR_SALV_HIERSEQ_ADAPTER        =
*   IT_EXCEPT_QINFO                =
*   I_SUPPRESS_EMPTY_DATA          = ABAP_FALSE
* IMPORTING
*   E_EXIT_CAUSED_BY_CALLER        =
*   ES_EXIT_CAUSED_BY_USER         =
  TABLES
    T_OUTTAB_HEADER                = IT_EKKO
    T_OUTTAB_ITEM                  = IT_EKPO
* EXCEPTIONS
*   PROGRAM_ERROR                  = 1
*   OTHERS                         = 2
          .
if SY-SUBRC = 0.
endif.

ZRDEMO_COLORING_ALV_ROWS_7AM

*&---------------------------------------------------------------------*
*& Module pool       ZRDEMO_COLORING_ALV_ROWS_7AM
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*

PROGRAM  ZGDEMO_EXCPS_ALV_ROWS_7AM.

DATA : O_CONTAINER TYPE REF TO CL_GUI_CUSTOM_CONTAINER,
       O_GRID      TYPE REF TO CL_GUI_ALV_GRID.

TYPES  BEGIN OF TY_T001.
          INCLUDE STRUCTURE T001.
TYPES : excp(1) TYPE C,
       END OF TY_T001.
DATA : WA_T001 TYPE TY_T001,
       IT_T001 TYPE TABLE OF TY_T001.

*&---------------------------------------------------------------------*
*&      Module  STATUS_0100  OUTPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE STATUS_0100 OUTPUT.
  SET PF-STATUS 'ZSTATUS'.
*  SET TITLEBAR 'xxx'.

ENDMODULE.                 " STATUS_0100  OUTPUT

*&---------------------------------------------------------------------*
*&      Module  USER_COMMAND_0100  INPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE USER_COMMAND_0100 INPUT.
IF SY-UCOMM = 'BACK'.
    LEAVE TO SCREEN 0.
ENDIF.
ENDMODULE.                 " USER_COMMAND_0100  INPUT

*&---------------------------------------------------------------------*
*&      Module  READ_DATA  OUTPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE READ_DATA OUTPUT.

SELECT * INTO TABLE IT_T001 FROM T001 UP TO 20 ROWS.
ENDMODULE.                 " READ_DATA  OUTPUT

*&-0--------------------------------------------------------------------
*
*&      Module  DISPLAY_DATA  OUTPUT
*&---------------------------------------------------------------------*
MODULE DISPLAY_DATA OUTPUT.
data WA_LAYOUT TYPE LVC_S_LAYO.

*CREATE CONTAINER OBJ
create object O_CONTAINER
  exporting

    CONTAINER_NAME              = 'CONTAINER'
    .
if SY-SUBRC = 0.
*CREATE GRID OBJ
create object O_GRID
  exporting

    I_PARENT          = O_CONTAINER

    .
if SY-SUBRC = 0.
WA_LAYOUT-EXCP_FNAME = 'EXCP'.

LOOP AT IT_T001 INTO WA_T001.
    CASE WA_T001-LAND1.
        WHEN 'IN'.
              WA_T001-EXCP = '3'.
        WHEN 'DE'.
              WA_T001-EXCP = '2'.
        WHEN 'US'.
              WA_T001-EXCP = '1'.
     ENDCASE.
     MODIFY  IT_T001 FROM WA_T001 TRANSPORTING EXCP.
     CLEAR WA_T001.
ENDLOOP.

call method O_GRID->SET_TABLE_FOR_FIRST_DISPLAY
  EXPORTING
*    I_BUFFER_ACTIVE               =
*    I_BYPASSING_BUFFER            =
*    I_CONSISTENCY_CHECK           =
    I_STRUCTURE_NAME              = 'T001'
*    IS_VARIANT                    =
*    I_SAVE                        =
*    I_DEFAULT                     = 'X'
    IS_LAYOUT                     = wa_layout
*    IS_PRINT                      =
*    IT_SPECIAL_GROUPS             =
*    IT_TOOLBAR_EXCLUDING          =
*    IT_HYPERLINK                  =
*    IT_ALV_GRAPHICS               =
*    IT_EXCEPT_QINFO               =
*    IR_SALV_ADAPTER               =
  changing
    IT_OUTTAB                     = IT_T001
*    IT_FIELDCATALOG               =
*    IT_SORT                       =
*    IT_FILTER                     =
*  EXCEPTIONS
*    INVALID_PARAMETER_COMBINATION = 1
*    PROGRAM_ERROR                 = 2
*    TOO_MANY_LINES                = 3
*    others                        = 4
        .
if SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
endif.

endif.


endif.


ENDMODULE.                 " DISPLAY_DATA  OUTPUT

ZGDEMO_ALV_IR_EVENTS_7AM

*&---------------------------------------------------------------------*
*& Report  ZGDEMO_ALV_IR_EVENTS_7AM
*&
*&---------------------------------------------------------------------*


REPORT  ZGDEMO_ALV_IR_EVENTS_7AM.
TYPE-POOLS SLIS.

types: begin of TY_eventS,
        name(30),
        form(30),
      end of TY_eventS.

DATA   : WA_EVENTS TYPE TY_EVENTS,
         IT_EVENTS TYPE TABLE OF TY_EVENTS.

DATA IT_EKKO TYPE TABLE OF EKKO.

*********************************
*        START-OF-SELECTION.    *
*********************************
START-OF-SELECTION.
  PERFORM READ_DATA.
  PERFORM FILL_EVENTS.
  PERFORM DISPLAY_ALV.

*&---------------------------------------------------------------------*
*&      Form  READ_DATA
*&---------------------------------------------------------------------*
FORM READ_DATA .
      SELECT * INTO TABLE IT_EKKO FROM EKKO UP TO 100 ROWS.
ENDFORM.                    " READ_DATA

*&---------------------------------------------------------------------*
*&      Form  DISPLAY_ALV
*&---------------------------------------------------------------------*
FORM DISPLAY_ALV .
DATA WA_PRINT TYPE SLIS_PRINT_ALV.
     WA_PRINT-reserve_lines = 2.

    call function 'REUSE_ALV_GRID_DISPLAY'
     EXPORTING
*       I_INTERFACE_CHECK                 = ' '
*       I_BYPASSING_BUFFER                = ' '
*       I_BUFFER_ACTIVE                   = ' '
       I_CALLBACK_PROGRAM                = SY-REPID
*       I_CALLBACK_PF_STATUS_SET          = ' '
*       I_CALLBACK_USER_COMMAND           = ' '
*       I_CALLBACK_TOP_OF_PAGE            = ' '
*       I_CALLBACK_HTML_TOP_OF_PAGE       = ' '
*       I_CALLBACK_HTML_END_OF_LIST       = ' '
       I_STRUCTURE_NAME                  = 'EKKO'
*       I_BACKGROUND_ID                   = ' '
*       I_GRID_TITLE                      =
*       I_GRID_SETTINGS                   =
*       IS_LAYOUT                         =
*       IT_FIELDCAT                       =
*       IT_EXCLUDING                      =
*       IT_SPECIAL_GROUPS                 =
*       IT_SORT                           =
*       IT_FILTER                         =
*       IS_SEL_HIDE                       =
*       I_DEFAULT                         = 'X'
*       I_SAVE                            = ' '
*       IS_VARIANT                        =
       IT_EVENTS                         = IT_EVENTS
*       IT_EVENT_EXIT                     =
       IS_PRINT                          = WA_PRINT
*       IS_REPREP_ID                      =
*       I_SCREEN_START_COLUMN             = 0
*       I_SCREEN_START_LINE               = 0
*       I_SCREEN_END_COLUMN               = 0
*       I_SCREEN_END_LINE                 = 0
*       I_HTML_HEIGHT_TOP                 = 0
*       I_HTML_HEIGHT_END                 = 0
*       IT_ALV_GRAPHICS                   =
*       IT_HYPERLINK                      =
*       IT_ADD_FIELDCAT                   =
*       IT_EXCEPT_QINFO                   =
*       IR_SALV_FULLSCREEN_ADAPTER        =
*     IMPORTING
*       E_EXIT_CAUSED_BY_CALLER           =
*       ES_EXIT_CAUSED_BY_USER            =
      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.                    " DISPLAY_ALV

*&---------------------------------------------------------------------*
*&      Form  FILL_EVENTS
*&---------------------------------------------------------------------*
FORM FILL_EVENTS .

*TOP_OF_PAGE
CLEAR WA_EVENTS      .
      WA_EVENTS-NAME = 'TOP_OF_PAGE'.
      WA_EVENTS-FORM = 'PRINT_DATA'.
APPEND WA_EVENTS TO IT_EVENTS.

*END_OF_PAGE
CLEAR WA_EVENTS      .
      WA_EVENTS-NAME = 'END_OF_PAGE'.
      WA_EVENTS-FORM = 'PRINT_DATA'.
APPEND WA_EVENTS TO IT_EVENTS.

*USER_COMMAND
CLEAR WA_EVENTS      .
      WA_EVENTS-NAME = 'USER_COMMAND'.
      WA_EVENTS-FORM = 'VALIDATE_COMMANDS'.
APPEND WA_EVENTS TO IT_EVENTS.

ENDFORM.                    " FILL_EVENTS


************************************************************
*   FORM PRINT_DATA.
************************************************************
FORM PRINT_DATA.

types: begin of TY_LIST,
         typ(1) type c,   " H = Header, S = Selection, A = Action
         key(20) type c,
         info(60) TYPE C,
       end of TY_LIST.

DATA : WA_LIST TYPE TY_LIST,
       IT_LIST TYPE TABLE OF TY_LIST.

*1ST LINE
    CLEAR WA_LIST.
          WA_LIST-TYP = 'H'.
          WA_LIST-INFO = 'DEMO ON ALV EVENTS'.
    APPEND WA_LIST TO IT_LIST.

*2ND LINE
    CLEAR WA_LIST.
          WA_LIST-TYP = 'A'.
          WA_LIST-INFO = 'DEMO ON ALV EVENTS'.
    APPEND WA_LIST TO IT_LIST.

call function 'REUSE_ALV_COMMENTARY_WRITE'
  exporting
    IT_LIST_COMMENTARY       = IT_LIST
   I_LOGO                   = 'EMAX_LOGO'
*   I_END_OF_LIST_GRID       =
*   I_ALV_FORM               =
          .

ENDFORM.

*********************************************
*          FORM VALIDATE_COMMANDS           *
*********************************************
FORM VALIDATE_COMMANDS USING  V_UCOMM    TYPE SY-UCOMM
                              SEL_DET    TYPE SLIS_SELFIELD.
DATA WA_EKKO TYPE EKKO.
DATA IT_EKPO TYPE TABLE OF EKPO.

CASE V_UCOMM.
     WHEN '&IC1'. "DC
           READ TABLE IT_EKKO INTO WA_EKKO INDEX SEL_DET-TABINDEX.
           SELECT * INTO TABLE IT_EKPO FROM EKPO
                                     WHERE EBELN = WA_EKKO-EBELN.
           call function 'REUSE_ALV_GRID_DISPLAY'
            EXPORTING
*              I_INTERFACE_CHECK                 = ' '
*              I_BYPASSING_BUFFER                = ' '
*              I_BUFFER_ACTIVE                   = ' '
              I_CALLBACK_PROGRAM                = SY-REPID
*              I_CALLBACK_PF_STATUS_SET          = ' '
*              I_CALLBACK_USER_COMMAND           = ' '
*              I_CALLBACK_TOP_OF_PAGE            = ' '
*              I_CALLBACK_HTML_TOP_OF_PAGE       = ' '
*              I_CALLBACK_HTML_END_OF_LIST       = ' '
              I_STRUCTURE_NAME                  = 'EKPO'
*              I_BACKGROUND_ID                   = ' '
*              I_GRID_TITLE                      =
*              I_GRID_SETTINGS                   =
*              IS_LAYOUT                         =
*              IT_FIELDCAT                       =
*              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
*              I_HTML_HEIGHT_TOP                 = 0
*              I_HTML_HEIGHT_END                 = 0
*              IT_ALV_GRAPHICS                   =
*              IT_HYPERLINK                      =
*              IT_ADD_FIELDCAT                   =
*              IT_EXCEPT_QINFO                   =
*              IR_SALV_FULLSCREEN_ADAPTER        =
*            IMPORTING
*              E_EXIT_CAUSED_BY_CALLER           =
*              ES_EXIT_CAUSED_BY_USER            =
             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.

ZGDEMO_ALV_IR_EVENTS_7AM

*&---------------------------------------------------------------------*
*& Report  ZGDEMO_ALV_IR_EVENTS_7AM
*&
*&---------------------------------------------------------------------*


REPORT  ZGDEMO_ALV_IR3_EVENTS_7AM.
TYPE-POOLS SLIS.

types: begin of TY_eventS,
        name(30),
        form(30),
      end of TY_eventS.

DATA   : WA_EVENTS TYPE TY_EVENTS,
         IT_EVENTS TYPE TABLE OF TY_EVENTS.

DATA IT_EKKO TYPE TABLE OF EKKO.

*********************************
*        START-OF-SELECTION.    *
*********************************
START-OF-SELECTION.
  PERFORM READ_DATA.
  PERFORM FILL_EVENTS.
  PERFORM DISPLAY_ALV.

*&---------------------------------------------------------------------*
*&      Form  READ_DATA
*&---------------------------------------------------------------------*
FORM READ_DATA .
      SELECT * INTO TABLE IT_EKKO FROM EKKO UP TO 100 ROWS.
ENDFORM.                    " READ_DATA

*&---------------------------------------------------------------------*
*&      Form  DISPLAY_ALV
*&---------------------------------------------------------------------*
FORM DISPLAY_ALV .
DATA WA_PRINT TYPE SLIS_PRINT_ALV.
     WA_PRINT-reserve_lines = 2.

    call function 'REUSE_ALV_GRID_DISPLAY'
     EXPORTING
*       I_INTERFACE_CHECK                 = ' '
*       I_BYPASSING_BUFFER                = ' '
*       I_BUFFER_ACTIVE                   = ' '
       I_CALLBACK_PROGRAM                = SY-REPID
*       I_CALLBACK_PF_STATUS_SET          = ' '
*       I_CALLBACK_USER_COMMAND           = ' '
*       I_CALLBACK_TOP_OF_PAGE            = ' '
*       I_CALLBACK_HTML_TOP_OF_PAGE       = ' '
*       I_CALLBACK_HTML_END_OF_LIST       = ' '
       I_STRUCTURE_NAME                  = 'EKKO'
*       I_BACKGROUND_ID                   = ' '
*       I_GRID_TITLE                      =
*       I_GRID_SETTINGS                   =
*       IS_LAYOUT                         =
*       IT_FIELDCAT                       =
*       IT_EXCLUDING                      =
*       IT_SPECIAL_GROUPS                 =
*       IT_SORT                           =
*       IT_FILTER                         =
*       IS_SEL_HIDE                       =
*       I_DEFAULT                         = 'X'
*       I_SAVE                            = ' '
*       IS_VARIANT                        =
       IT_EVENTS                         = IT_EVENTS
*       IT_EVENT_EXIT                     =
       IS_PRINT                          = WA_PRINT
*       IS_REPREP_ID                      =
*       I_SCREEN_START_COLUMN             = 0
*       I_SCREEN_START_LINE               = 0
*       I_SCREEN_END_COLUMN               = 0
*       I_SCREEN_END_LINE                 = 0
*       I_HTML_HEIGHT_TOP                 = 0
*       I_HTML_HEIGHT_END                 = 0
*       IT_ALV_GRAPHICS                   =
*       IT_HYPERLINK                      =
*       IT_ADD_FIELDCAT                   =
*       IT_EXCEPT_QINFO                   =
*       IR_SALV_FULLSCREEN_ADAPTER        =
*     IMPORTING
*       E_EXIT_CAUSED_BY_CALLER           =
*       ES_EXIT_CAUSED_BY_USER            =
      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.                    " DISPLAY_ALV

*&---------------------------------------------------------------------*
*&      Form  FILL_EVENTS
*&---------------------------------------------------------------------*
FORM FILL_EVENTS .

*TOP_OF_PAGE
CLEAR WA_EVENTS      .
      WA_EVENTS-NAME = 'TOP_OF_PAGE'.
      WA_EVENTS-FORM = 'PRINT_DATA'.
APPEND WA_EVENTS TO IT_EVENTS.

*END_OF_PAGE
CLEAR WA_EVENTS      .
      WA_EVENTS-NAME = 'END_OF_PAGE'.
      WA_EVENTS-FORM = 'PRINT_DATA'.
APPEND WA_EVENTS TO IT_EVENTS.

*USER_COMMAND DOUBLE CLICK
CLEAR WA_EVENTS      .
      WA_EVENTS-NAME = 'USER_COMMAND'.
      WA_EVENTS-FORM = 'VALIDATE_COMMANDS'.
APPEND WA_EVENTS TO IT_EVENTS.

*USER_COMMAND BUTTON
CLEAR WA_EVENTS      .
      WA_EVENTS-NAME = 'PF_STATUS_SET'.
      WA_EVENTS-FORM = 'SET_GUI_STATUS'.
APPEND WA_EVENTS TO IT_EVENTS.

ENDFORM.                    " FILL_EVENTS


************************************************************
*   FORM PRINT_DATA.
************************************************************
FORM PRINT_DATA.

types: begin of TY_LIST,
         typ(1) type c,   " H = Header, S = Selection, A = Action
         key(20) type c,
         info(60) TYPE C,
       end of TY_LIST.

DATA : WA_LIST TYPE TY_LIST,
       IT_LIST TYPE TABLE OF TY_LIST.

*1ST LINE
    CLEAR WA_LIST.
          WA_LIST-TYP = 'H'.
          WA_LIST-INFO = 'DEMO ON ALV EVENTS'.
    APPEND WA_LIST TO IT_LIST.

*2ND LINE
    CLEAR WA_LIST.
          WA_LIST-TYP = 'A'.
          WA_LIST-INFO = 'DEMO ON ALV EVENTS'.
    APPEND WA_LIST TO IT_LIST.

call function 'REUSE_ALV_COMMENTARY_WRITE'
  exporting
    IT_LIST_COMMENTARY       = IT_LIST
   I_LOGO                   = 'EMAX_LOGO'
*   I_END_OF_LIST_GRID       =
*   I_ALV_FORM               =
          .

ENDFORM.

*********************************************
*          FORM VALIDATE_COMMANDS           *
*********************************************
FORM VALIDATE_COMMANDS USING  V_UCOMM    TYPE SY-UCOMM
                              SEL_DET    TYPE SLIS_SELFIELD.
DATA WA_EKKO TYPE EKKO.
DATA IT_EKPO TYPE TABLE OF EKPO.

CASE V_UCOMM.
     WHEN '&IC1'. "DC
           READ TABLE IT_EKKO INTO WA_EKKO INDEX SEL_DET-TABINDEX.
           SELECT * INTO TABLE IT_EKPO FROM EKPO
                                     WHERE EBELN = WA_EKKO-EBELN.
           call function 'REUSE_ALV_GRID_DISPLAY'
            EXPORTING
*              I_INTERFACE_CHECK                 = ' '
*              I_BYPASSING_BUFFER                = ' '
*              I_BUFFER_ACTIVE                   = ' '
              I_CALLBACK_PROGRAM                = SY-REPID
*              I_CALLBACK_PF_STATUS_SET          = ' '
*              I_CALLBACK_USER_COMMAND           = ' '
*              I_CALLBACK_TOP_OF_PAGE            = ' '
*              I_CALLBACK_HTML_TOP_OF_PAGE       = ' '
*              I_CALLBACK_HTML_END_OF_LIST       = ' '
              I_STRUCTURE_NAME                  = 'EKPO'
*              I_BACKGROUND_ID                   = ' '
*              I_GRID_TITLE                      =
*              I_GRID_SETTINGS                   =
*              IS_LAYOUT                         =
*              IT_FIELDCAT                       =
*              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
*              I_HTML_HEIGHT_TOP                 = 0
*              I_HTML_HEIGHT_END                 = 0
*              IT_ALV_GRAPHICS                   =
*              IT_HYPERLINK                      =
*              IT_ADD_FIELDCAT                   =
*              IT_EXCEPT_QINFO                   =
*              IR_SALV_FULLSCREEN_ADAPTER        =
*            IMPORTING
*              E_EXIT_CAUSED_BY_CALLER           =
*              ES_EXIT_CAUSED_BY_USER            =
             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.
    WHEN 'ALL_ITEMS'.

          SELECT * INTO TABLE IT_EKPO FROM EKPO
                              FOR ALL ENTRIES IN IT_EKKO
                              WHERE EBELN = IT_EKKO-EBELN.
          call function 'REUSE_ALV_GRID_DISPLAY'
           EXPORTING
*             I_INTERFACE_CHECK                 = ' '
*             I_BYPASSING_BUFFER                = ' '
*             I_BUFFER_ACTIVE                   = ' '
             I_CALLBACK_PROGRAM                = SY-REPID
*             I_CALLBACK_PF_STATUS_SET          = ' '
*             I_CALLBACK_USER_COMMAND           = ' '
*             I_CALLBACK_TOP_OF_PAGE            = ' '
*             I_CALLBACK_HTML_TOP_OF_PAGE       = ' '
*             I_CALLBACK_HTML_END_OF_LIST       = ' '
             I_STRUCTURE_NAME                  = 'EKPO'
*             I_BACKGROUND_ID                   = ' '
*             I_GRID_TITLE                      =
*             I_GRID_SETTINGS                   =
*             IS_LAYOUT                         =
*             IT_FIELDCAT                       =
*             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
*             I_HTML_HEIGHT_TOP                 = 0
*             I_HTML_HEIGHT_END                 = 0
*             IT_ALV_GRAPHICS                   =
*             IT_HYPERLINK                      =
*             IT_ADD_FIELDCAT                   =
*             IT_EXCEPT_QINFO                   =
*             IR_SALV_FULLSCREEN_ADAPTER        =
*           IMPORTING
*             E_EXIT_CAUSED_BY_CALLER           =
*             ES_EXIT_CAUSED_BY_USER            =
            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.

***************************************************
*                FORM SET_GUI_STATUS              *
***************************************************
FORM SET_GUI_STATUS USING EX_TAB TYPE slis_t_extab.
*DATA WA_EXTAB TYPE SLIS_EXTAB.
*        WA_EXTAB-FCODE = 'ALL_ITEMS'.
*     APPEND WA_EXTAB TO EX_TAB.

*      SET PF-STATUS 'ZSTATUS' EXCLUDING EX_TAB.
      SET PF-STATUS 'ZSTATUS' .

ENDFORM.

ZGDEMO_ALV_FIELD_CAT_MANUAL

*&---------------------------------------------------------------------*
*& Report  ZGDEMO_ALV_FIELD_CAT_MANUAL
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*

REPORT  ZGDEMO_ALV_FIELD_CAT_MANUAL.

TYPE-POOLS SLIS.

TYPES : BEGIN OF TY_T001,
          BUKRS TYPE BUKRS,
          BUTXT TYPE BUTXT,
          LAND1 TYPE LAND1,
        END   OF TY_T001.

DATA : IT_T001 TYPE TABLE OF TY_T001.
DATA : IT_FIELDCATALOG TYPE SLIS_T_FIELDCAT_ALV,
       WA_FIELDCATALOG TYPE LINE OF SLIS_T_FIELDCAT_ALV.


START-OF-SELECTION.
    PERFORM  READ_DATA.
    PERFORM  FILL_FIELD_CATALOG.
    PERFORM  DISPLAY_ALV.
*&---------------------------------------------------------------------*
*&      Form  READ_DATA
*&---------------------------------------------------------------------*
FORM READ_DATA .
        SELECT BUKRS BUTXT LAND1 INTO TABLE IT_T001 FROM T001
                                      UP TO 15 ROWS.
ENDFORM.                    " READ_DATA

*&---------------------------------------------------------------------*
*&      Form  FILL_FIELD_CATALOG
*&---------------------------------------------------------------------*
FORM FILL_FIELD_CATALOG .

*LAND1
      CLEAR WA_FIELDCATALOG.
            WA_FIELDCATALOG-col_pos     = 3.
            WA_FIELDCATALOG-fieldname   = 'LAND1'.
            WA_FIELDCATALOG-REPTEXT_DDIC  = 'LAND1'.

      APPEND WA_FIELDCATALOG TO IT_FIELDCATALOG.

*BUKRS
      CLEAR WA_FIELDCATALOG.
            WA_FIELDCATALOG-col_pos     = 1.
            WA_FIELDCATALOG-fieldname   = 'BUKRS'.
            WA_FIELDCATALOG-REPTEXT_DDIC  = 'BUKRS'.
      APPEND WA_FIELDCATALOG TO IT_FIELDCATALOG.

*BUTXT
      CLEAR WA_FIELDCATALOG.
            WA_FIELDCATALOG-col_pos     = 2.
            WA_FIELDCATALOG-fieldname   = 'BUTXT'.
            WA_FIELDCATALOG-REPTEXT_DDIC  = 'BUTXT'.
            WA_FIELDCATALOG-EDIT    = 'X'.
      APPEND WA_FIELDCATALOG TO IT_FIELDCATALOG.


ENDFORM.                    " FILL_FIELD_CATALOG

*&---------------------------------------------------------------------*
*&      Form  DISPLAY_ALV
*&---------------------------------------------------------------------*
FORM DISPLAY_ALV .
      call function 'REUSE_ALV_GRID_DISPLAY'
       EXPORTING
*         I_INTERFACE_CHECK                 = ' '
*         I_BYPASSING_BUFFER                = ' '
*         I_BUFFER_ACTIVE                   = ' '
         I_CALLBACK_PROGRAM                = SY-REPID
*         I_CALLBACK_PF_STATUS_SET          = ' '
*         I_CALLBACK_USER_COMMAND           = ' '
*         I_CALLBACK_TOP_OF_PAGE            = ' '
*         I_CALLBACK_HTML_TOP_OF_PAGE       = ' '
*         I_CALLBACK_HTML_END_OF_LIST       = ' '
*         I_STRUCTURE_NAME                  =
*         I_BACKGROUND_ID                   = ' '
*         I_GRID_TITLE                      =
*         I_GRID_SETTINGS                   =
*         IS_LAYOUT                         =
         IT_FIELDCAT                       = IT_FIELDCATALOG
*         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
*         I_HTML_HEIGHT_TOP                 = 0
*         I_HTML_HEIGHT_END                 = 0
*         IT_ALV_GRAPHICS                   =
*         IT_HYPERLINK                      =
*         IT_ADD_FIELDCAT                   =
*         IT_EXCEPT_QINFO                   =
*         IR_SALV_FULLSCREEN_ADAPTER        =
*       IMPORTING
*         E_EXIT_CAUSED_BY_CALLER           =
*         ES_EXIT_CAUSED_BY_USER            =
        tables
          T_OUTTAB                          = IT_T001
*       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.                    " DISPLAY_ALV