To display Heirarchical using alv { vbak, vbap tables}

 Take two table vbak and vbap

    REPORT ZAJAY_ALV3.
    TABLES:vbak,vbap.
    TYPE-POOLSslis.
    TypesBEGIN OF ty_vbap,
            vbeln TYPE vbap-vbeln,
            posnr TYPE vbap-posnr,
            matnr TYPE vbap-matnr,
          END OF ty_vbap.

    typesBEGIN OF ty_vbak,
            vbeln TYPE vbak-vbeln,
            erdat TYPE vbak-erdat,
            erzet TYPE vbak-erzet,
            expand,
          END OF ty_vbak.

    datait_vbak type TABLE OF ty_vbak,
          it_vbap type TABLE of ty_vbap,
    *      wa_vbak type ty_vbak,
    *      wa_vbap type ty_vbap,
          wa_fieldcat   TYPE slis_fieldcat_alv,
          it_fieldcat   TYPE slis_t_fieldcat_alv,
          wa_layout TYPE slis_layout_alv,
          wa_key    TYPE slis_keyinfo_alv.

    SELECTION-SCREEN begin of block b1 with frame TITLE text-001.
      SELECT-OPTIONS s_vbeln for vbak-vbeln.
    SELECTION-SCREEN end of block b1.

    START-OF-SELECTION.
    select vbeln
      erdat
      erzet
      from vbak
      into TABLE it_vbak
      where vbeln in s_vbeln.

      If it_vbak is not INITIAL.
        select vbeln
                posnr
                matnr
                from vbap
                into table it_vbap
                FOR ALL ENTRIES IN it_vbak
                WHERE vbeln it_vbak-vbeln.


      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_vbak is not INITIAL.
      CLEAR wa_fieldcat.

      wa_fieldcat-col_pos '1'.
      wa_fieldcat-fieldname  'vbeln'.
      wa_fieldcat-seltext_m  'Sale Doc'.
      wa_fieldcat-tabname 'it_vbak'.
      wa_fieldcat-outputlen '10'.
      APPEND wa_fieldcat TO it_fieldcat.
      clearwa_fieldcat.

      wa_fieldcat-col_pos '2'.
      wa_fieldcat-fieldname  'erdat'.
      wa_fieldcat-seltext_m  'Record created on'.
      wa_fieldcat-tabname 'it_vbak'.
      wa_fieldcat-outputlen '20'.
      APPEND wa_fieldcat TO it_fieldcat.
      clearwa_fieldcat.

      wa_fieldcat-col_pos '3'.
      wa_fieldcat-fieldname  'erzet'.
      wa_fieldcat-seltext_m  'Entry time'.
      wa_fieldcat-tabname 'it_vbak'.
      wa_fieldcat-outputlen '30'.
      APPEND wa_fieldcat TO it_fieldcat.
      clearwa_fieldcat.
    ENDIF.

    IF it_vbap is not INITIAL.
      CLEAR wa_fieldcat.

      wa_fieldcat-col_pos '4'.
      wa_fieldcat-fieldname  'vbeln'.
      wa_fieldcat-seltext_m  'Sale Doc'.
      wa_fieldcat-tabname 'it_vbap'.
      wa_fieldcat-outputlen '10'.
      APPEND wa_fieldcat TO it_fieldcat.
      clearwa_fieldcat.

      wa_fieldcat-col_pos '5'.
      wa_fieldcat-fieldname  'posnr'.
      wa_fieldcat-seltext_m  'Sale doc item'.
      wa_fieldcat-tabname 'it_vbap'.
      wa_fieldcat-outputlen '20'.
      APPEND wa_fieldcat TO it_fieldcat.
      clearwa_fieldcat.

      wa_fieldcat-col_pos '6'.
      wa_fieldcat-fieldname  'matnr'.
      wa_fieldcat-seltext_m  'Material Num'.
      wa_fieldcat-tabname 'it_vbap'.
      wa_fieldcat-outputlen '30'.
      APPEND wa_fieldcat TO it_fieldcat.
      clearwa_fieldcat.
    ENDIF.


      wa_key-header01 'VBELN'.
      wa_key-item01 'VBELN'.

      CALL FUNCTION 'REUSE_ALV_HIERSEQ_LIST_DISPLAY'
       EXPORTING
    *     I_INTERFACE_CHECK              = ' '
    *     I_CALLBACK_PROGRAM             =
    *     I_CALLBACK_PF_STATUS_SET       = ' '
    *     I_CALLBACK_USER_COMMAND        = ' '
         IS_LAYOUT                      wa_layout
         IT_FIELDCAT                    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_vbak'
          i_tabname_item                 'it_vbap'
    *     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_vbak
          t_outtab_item                  it_vbap
    *   EXCEPTIONS
    *     PROGRAM_ERROR                  = 1
    *     OTHERS                         = 2
            .
      IF sy-subrc <> 0.
    * Implement suitable error handling here
      ENDIF.


Output
        




Comments

Popular posts from this blog

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

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

Concatenation new syntax( 7.4+ ).