Mentor SAP
2017-02-08 Submitted by:- Admin
*&---------------------------------------------------------------------*
*& Report  ZGS_ALV_BLOCK
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*

REPORT  ZGS_ALV_BLOCK.

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,
      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: fieldcat1 TYPE slis_t_fieldcat_alv,
      fieldcat2 TYPE slis_t_fieldcat_alv,
      cat       TYPE slis_fieldcat_alv.

DATA: layout TYPE slis_layout_alv,
      events1 TYPE slis_t_event WITH HEADER LINE,
      events2 TYPE slis_t_event WITH HEADER LINE.

START-OF-SELECTION.

  PERFORM get_data.
  PERFORM append_data.

  layout-zebra = 'X'.

  CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_INIT'
    EXPORTING
      i_callback_program             = sy-cprog.

  CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'
    EXPORTING
      is_layout                        = layout
      it_fieldcat                      = fieldcat1
      i_tabname                        = 'I_EKKO'
      it_events                        = events1[]
        TABLES
          t_outtab                         = i_ekko.
  IF sy-subrc <> 0.
  ENDIF.

  CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'
    EXPORTING
      is_layout                        = layout
      it_fieldcat                      = fieldcat2
      i_tabname                        = 'I_EKPO'
      it_events                        = events2[]
      TABLES
        t_outtab                         = i_ekpo.
  IF sy-subrc <> 0.
  ENDIF.

  CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_DISPLAY'.
  IF sy-subrc <> 0.
  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 .

  CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
     EXPORTING
        i_program_name               = sy-cprog
        i_internal_tabname           = 'I_EKKO'
        i_inclname                   = sy-cprog
     CHANGING
        ct_fieldcat                  = fieldcat1[].
  IF sy-subrc <> 0.
  ENDIF.

  CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
    EXPORTING
      i_program_name               = sy-cprog
      i_internal_tabname           = 'I_EKPO'
      i_inclname                   = sy-cprog
    CHANGING
      ct_fieldcat                  = fieldcat2[].
  IF sy-subrc <> 0.
  ENDIF.

ENDFORM.                    " append_data

Selection Screen

 

Output