Friday, 17 October 2014

ALV With MERGE

*&---------------------------------------------------------------------*
*& Report  ZGP_ALV_MERGE
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*

REPORT  zgp_alv_merge1.

TYPE-POOLS: slis.
TABLES: zfms_rrhdr.
*
DATA: progname  LIKE sy-repid,
      gt_fcat0  TYPE slis_t_fieldcat_alv,
      gt_fcat1  TYPE slis_t_fieldcat_alv.
*
*DATA: IT_MARA0 TYPE TABLE OF MARA.

DATA: it TYPE TABLE OF zfms_rrhdr.
*
DATA: BEGIN OF it_mara1 OCCURS 0,
         matnr LIKE mara-matnr,
         matkl LIKE mara-matkl,
       END   OF it_mara1.
*
progname  = sy-repid.

TYPES:
      t_fieldcat         TYPE slis_fieldcat_alv,
      t_events           TYPE slis_alv_event,
      t_layout           TYPE slis_layout_alv.
* Workareas
DATA:
    w_fieldcat         TYPE t_fieldcat,
    w_events           TYPE t_events,
    w_layout           TYPE t_layout.
* Internal Tables
DATA:
    i_fieldcat         TYPE STANDARD TABLE OF t_fieldcat,
    i_fieldcat1        TYPE STANDARD TABLE OF t_fieldcat,
    i_events           TYPE STANDARD TABLE OF t_events.
* internal table definition with type of a structure

SELECT * FROM zfms_rrhdr INTO TABLE it.
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
  EXPORTING
    i_program_name         = progname
    i_internal_tabname     = 'IT'
    i_structure_name       = 'zfms_RRHDR'
    i_client_never_display = 'X'
  CHANGING
    ct_fieldcat            = gt_fcat0[]
  EXCEPTIONS
    inconsistent_interface = 1
    program_error          = 2
    OTHERS                 = 3.
* own internal table definition


PERFORM  display_data.

--------------------------------------

FORM display_data .

  DATA :program LIKE sy-repid VALUE sy-repid.

  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
      i_callback_program = program
      is_layout          = w_layout
      it_fieldcat        = gt_fcat0 "I_FIELDCAT
      it_events          = i_events
    TABLES
      t_outtab           = it.
  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_DATA

No comments:

Post a Comment