CALL FUNCTION 'REUSE_ALV_HIERSEQ_LIST_DISPLAY'
    EXPORTING
      i_interface_check              = 'I'
      i_callback_program             = gv_repid
*      i_callback_pf_status_set       = 'STATUS_DATA'
      i_callback_user_command        = 'COMMAND_DATA'
*      is_layout                      = gs_layout
      it_fieldcat                    = gt_fieldcat
     i_default                      = ' '
      i_save                         = 'A'
      i_tabname_header               = v_headers_itable
      i_tabname_item                 = v_items_itable
      i_structure_name_header        = v_headers_table
      i_structure_name_item          = v_items_table
      is_keyinfo                     = gs_keyinfo
      i_bypassing_buffer             = 'X'
    TABLES
      t_outtab_header                = i_headers
*      t_outtab_item                  = i_result
      t_outtab_item                  = i_report
    EXCEPTIONS
      program_error                  = 1
      OTHERS                         = 2.

The field cat creation worked like this : 
FORM fieldcat.

  DATA: ls_fieldcat TYPE slis_fieldcat_alv.

  CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
       EXPORTING
            i_internal_tabname = v_items_itable
            i_structure_name   = v_items_table
       CHANGING
            ct_fieldcat        = gt_fieldcat.

  CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
       EXPORTING
            i_internal_tabname = v_headers_itable
            i_structure_name   = v_headers_table
       CHANGING
            ct_fieldcat        = gt_fieldcat.

ENDFORM.


and of course you need to tell the thing what is key and item

  gs_keyinfo-header01 = 'PA'.
  gs_keyinfo-item01  = 'PA'.
  gs_keyinfo-item02 = 'SAPDOC'.
  PERFORM fieldcat.
 
 
Serkan AKKAVAK
Computer Engineer
ABAP Developer & SAP MM SD Consultant
Contact : serkurumsal@yandex.com