Mentor SAP
2017-03-05 Submitted by:- Admin

*&---------------------------------------------------------------------*
*& Report  ZGS_ALV_HIERSEQUENTIAL_REPORT
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*

REPORT  ZGS_ALV_HIERSEQUENTIAL_REPORT.

TYPE-POOLS: slis.

TABLES: ekko.

SELECT-OPTIONS: s_ebeln FOR ekko-ebeln.

DATA: BEGIN OF i_ekko OCCURS 0,
            ebeln LIKE ekko-ebeln,
            ernam LIKE ekko-ernam,
            bsart LIKE ekko-bsart,
            var1,
      END OF i_ekko.

DATA: BEGIN OF i_ekpo OCCURS 0,
            ebeln LIKE ekpo-ebeln,
            ebelp LIKE ekpo-ebelp,
            matnr LIKE ekpo-matnr,
            aedat LIKE ekpo-aedat,
      END OF i_ekpo.

DATA: fldcat TYPE slis_t_fieldcat_alv WITH HEADER LINE,
      layout TYPE slis_layout_alv,
      key    TYPE slis_keyinfo_alv,
      events TYPE slis_t_event.

PERFORM get_data.
PERFORM append_data.

layout-expand_fieldname = 'VAR1'.
layout-zebra            = 'X'.

key-header01  = 'EBELN'.
key-item01    = 'EBELN'.

CALL FUNCTION 'REUSE_ALV_HIERSEQ_LIST_DISPLAY'
  EXPORTING
*   I_INTERFACE_CHECK              = ' '
    i_callback_program             = sy-cprog
*   I_CALLBACK_PF_STATUS_SET       = ' '
*   I_CALLBACK_USER_COMMAND        = ' '
    is_layout                      = layout
    it_fieldcat                    = fldcat[]
*   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               = 'I_EKKO'
    i_tabname_item                 = 'I_EKPO'
*   I_STRUCTURE_NAME_HEADER        =
*   I_STRUCTURE_NAME_ITEM          =
    is_keyinfo                     = key
*   IS_PRINT                       =
*   IS_REPREP_ID                   =
*   I_BYPASSING_BUFFER             =
*   I_BUFFER_ACTIVE                =
* IMPORTING
*   E_EXIT_CAUSED_BY_CALLER        =
*   ES_EXIT_CAUSED_BY_USER         =
  TABLES
    t_outtab_header                = i_ekko
    t_outtab_item                  = i_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.

*&---------------------------------------------------------------------*
*&      Form  get_data
*&---------------------------------------------------------------------*
*          Getting Data into Internal Tables
*----------------------------------------------------------------------*
FORM get_data.

  SELECT ebeln
         ernam
         bsart
    FROM       ekko
    INTO TABLE i_ekko
    WHERE ebeln IN s_ebeln.

  SELECT ebeln
         ebelp
         matnr
         aedat
    INTO TABLE i_ekpo
    FROM       ekpo
    FOR ALL ENTRIES IN i_ekko
    WHERE ebeln EQ i_ekko-ebeln.


ENDFORM.                    " get_data

*&---------------------------------------------------------------------*
*&      Form  append_data
*&---------------------------------------------------------------------*
*       Getting Data into Field Catalog
*----------------------------------------------------------------------*
FORM append_data.
  fldcat-col_pos          = 1.
  fldcat-fieldname        = 'EBELN'.
  fldcat-tabname          = 'I_EKKO'.
  fldcat-ref_fieldname    = 'EBELN'.
  fldcat-ref_tabname      = 'EKKO'.
  fldcat-key              = 'X'.
  APPEND fldcat.
  CLEAR  fldcat.

  fldcat-col_pos          = 2.
  fldcat-fieldname        = 'ERNAM'.
  fldcat-tabname          = 'I_EKKO'.
  fldcat-ref_fieldname    = 'ERNAM'.
  fldcat-ref_tabname      = 'EKKO'.
  APPEND fldcat.
  CLEAR  fldcat.

  fldcat-col_pos          = 3.
  fldcat-fieldname        = 'BSART'.
  fldcat-tabname          = 'I_EKKO'.
  fldcat-ref_fieldname    = 'BSART'.
  fldcat-ref_tabname      = 'EKKO'.
  APPEND fldcat.
  CLEAR  fldcat.

  fldcat-col_pos          = 4.
  fldcat-fieldname        = 'EBELP'.
  fldcat-tabname          = 'I_EKPO'.
  fldcat-ref_fieldname    = 'EBELP'.
  fldcat-ref_tabname      = 'EKPO'.
  fldcat-key              = 'X'.
  APPEND fldcat.
  CLEAR  fldcat.