To display Heirarchical using alv { ekko, ekpo tables}

 

    REPORT zvb_hiera_alv.

    TABLES:ekko,ekpo.

    TYPE-POOLS: slis.

    TYPES: BEGIN OF ty_ekko,
             ebeln  TYPE ekko-ebeln,
             bukrs  TYPE ekko-bukrs,
             aedat  TYPE ekko-aedat,
             ernam  TYPE ekko-ernam,
             expand,
           END OF ty_ekko,
           BEGIN OF ty_ekpo,
             ebeln TYPE ekpo-ebeln,
             ebelp TYPE ekpo-ebelp,
             matkl TYPE ekpo-matkl,
             menge TYPE ekpo-menge,
             meins TYPE ekpo-meins,
           END OF ty_ekpo.

    DATA: it_ekko TYPE TABLE OF ty_ekko,
          it_ekpo TYPE TABLE OF ty_ekpo.

    DATA: wa_fcat   TYPE slis_fieldcat_alv,
          it_fact   TYPE slis_t_fieldcat_alv,
          wa_layout TYPE slis_layout_alv,
          wa_key    TYPE slis_keyinfo_alv.


    SELECTION-SCREEN BEGIN OF BLOCK b1.
      SELECT-OPTIONS s_ebeln FOR ekko-ebeln.
    SELECTION-SCREEN END OF BLOCK b1.

    START-OF-SELECTION.
      SELECT ebeln
             bukrs
             aedat
             ernam
        FROM ekko
        INTO TABLE it_ekko
        WHERE ebeln IN s_ebeln.
      IF it_ekko IS NOT INITIAL.
        SELECT ebeln
               ebelp
               matkl
               menge
               meins
          FROM ekpo
          INTO TABLE it_ekpo
          FOR ALL ENTRIES IN it_ekko
          WHERE ebeln = it_ekko-ebeln.

      ENDIF.

      wa_layout-zebra = 'X'.
      wa_layout-colwidth_optimize = 'X'.
      wa_layout-expand_fieldname = 'EXPAND'.
      wa_layout-expand_all = 'X'.
      wa_layout-window_titlebar = 'Hierarchical PO header & item display'.

    if it_ekko is not initial.
      CLEAR:wa_fcat.
      wa_fcat-col_pos = '1'.
      wa_fcat-fieldname = 'EBELN'.
      wa_fcat-tabname = 'IT_EKKO'.
      wa_fcat-outputlen = '15'.
      wa_fcat-seltext_l = 'PO Number'.
      APPEND wa_fcat TO it_fact.

      CLEAR:wa_fcat.
      wa_fcat-col_pos = '2'.
      wa_fcat-fieldname = 'BUKRS'.
      wa_fcat-tabname = 'IT_EKKO'.
      wa_fcat-outputlen = '30'.
      wa_fcat-seltext_l = 'Company code'.
      APPEND wa_fcat TO it_fact.

      CLEAR:wa_fcat.
      wa_fcat-col_pos = '3'.
      wa_fcat-fieldname = 'AEDAT'.
      wa_fcat-tabname = 'IT_EKKO'.
      wa_fcat-outputlen = '45'.
      wa_fcat-seltext_l = 'creation date'.
      APPEND wa_fcat TO it_fact.

      CLEAR:wa_fcat.
      wa_fcat-col_pos = '4'.
      wa_fcat-fieldname = 'ERNAM'.
      wa_fcat-tabname = 'IT_EKKO'.
      wa_fcat-outputlen = '55'.
      wa_fcat-seltext_l = 'User Name'.
      APPEND wa_fcat TO it_fact.

    ENDIF.
    if it_ekpo is not INITIAL.
      CLEAR:wa_fcat.
      wa_fcat-col_pos = '5'.
      wa_fcat-fieldname = 'EBELP'.
      wa_fcat-tabname = 'IT_EKPO'.
      wa_fcat-outputlen = '15'.
      wa_fcat-seltext_l = 'PO Item'.
      APPEND wa_fcat TO it_fact.

      CLEAR:wa_fcat.
      wa_fcat-col_pos = '6'.
      wa_fcat-fieldname = 'MATKL'.
      wa_fcat-tabname = 'IT_EKPO'.
      wa_fcat-outputlen = '40'.
      wa_fcat-seltext_l = 'Materail Type'.
      APPEND wa_fcat TO it_fact.

        CLEAR:wa_fcat.
      wa_fcat-col_pos = '7'.
      wa_fcat-fieldname = 'MENGE'.
      wa_fcat-tabname = 'IT_EKPO'.
      wa_fcat-outputlen = '50'.
      wa_fcat-seltext_l = 'Quantity'.
      APPEND wa_fcat TO it_fact.

        CLEAR:wa_fcat.
      wa_fcat-col_pos = '8'.
      wa_fcat-fieldname = 'MEINS'.
      wa_fcat-tabname = 'IT_EKPO'.
      wa_fcat-outputlen = '60'.
      wa_fcat-seltext_l = 'Units'.
      APPEND wa_fcat TO it_fact.


      ENDIF.

      wa_key-header01 = 'EBELN'.
      wa_key-item01 = 'EBELN'.

      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        = wa_layout
          it_fieldcat      = it_fact
    *     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        =
    *     I_STRUCTURE_NAME_ITEM          =
          is_keyinfo       = wa_key
    *     IS_PRINT         =
    *     IS_REPREP_ID     =
    *     I_BYPASSING_BUFFER             =
    *     I_BUFFER_ACTIVE  =
    *     IR_SALV_HIERSEQ_ADAPTER        =
    *     IT_EXCEPT_QINFO  =
    *     I_SUPPRESS_EMPTY_DATA          = ABAP_FALSE
    *     I_LIST_DISPLAY_ONLY            = 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.
    * Implement suitable error handling here
     ENDIF.


Output











Comments

Popular posts from this blog

Custom entity/Action dialog in RAP using Unmanaged scenario

New syntax for append- VALUE (new syntax 7.4+) in ABAP

Read statement new syntax in ABAP. (7.4+).