+ -

Pages

Saturday, July 26, 2014

ALV Grid Using Function Modules

This simple example shows how to create an ALV grid report using function modules.

REPORT zhfnk_alvtest.


TYPES:
  BEGIN OF t_makt,
    matnr LIKE makt-matnr,
    maktx LIKE makt-maktx,
 END OF t_makt.

DATA:
  it_makt TYPE STANDARD TABLE OF t_makt,
  wa_makt TYPE t_makt.

******************************************************************'
* Data declarations for the ALV grid
******************************************************************'
DATA:       r_grid      TYPE REF TO cl_gui_alv_grid.

DATA:      alv_fieldcat TYPE slis_t_fieldcat_alv,
           wa_alv_fieldcat TYPE slis_fieldcat_alv,
           alv_layout   TYPE slis_layout_alv,
           gd_repid     LIKE sy-repid.

******************************************************************'



START-OF-SELECTION.
  PERFORM alv_setup.
  PERFORM read_data.



END-OF-SELECTION.
  PERFORM display_alv.





*&---------------------------------------------------------------------*
*&      Form  read_data
*&---------------------------------------------------------------------*
FORM read_data.
  SELECT matnr maktx
    FROM makt
    INTO TABLE it_makt
    WHERE spras = 'E'.


ENDFORM.                    " read_data
*&---------------------------------------------------------------------*
*&      Form  alv_setup
*&---------------------------------------------------------------------*
*
*  Setup of the columns in the ALV grid
*
*----------------------------------------------------------------------*
FORM alv_setup.

  CLEAR wa_alv_fieldcat.
  REFRESH alv_fieldcat.

* Matnr field
  wa_alv_fieldcat-key = 'X'.                     "This is a key column
  wa_alv_fieldcat-fieldname = 'MATNR'.           "Name of the table field
  wa_alv_fieldcat-seltext_s = 'Matnr'.           "Short column heading
  wa_alv_fieldcat-seltext_m = 'Material nr.'.    "Medium column heading
  wa_alv_fieldcat-seltext_l = 'Material number'. "Long column heading
  APPEND wa_alv_fieldcat TO alv_fieldcat.

* Mat text field
  wa_alv_fieldcat-key = ''.                      "This is not a key column
  wa_alv_fieldcat-fieldname = 'MAKTX'.           
  wa_alv_fieldcat-seltext_s = 'Mat. txt'.        
  wa_alv_fieldcat-seltext_m = 'Material txt'.    
  wa_alv_fieldcat-seltext_l = 'Material text'.   
  APPEND wa_alv_fieldcat TO alv_fieldcat.




ENDFORM.                    " alv_setup
*&---------------------------------------------------------------------*
*&      Form  display_alv
*&---------------------------------------------------------------------*
*  Display data in the ALV grid
*
*----------------------------------------------------------------------*
FORM display_alv.

  gd_repid = sy-repid.

* Configure layout of screen
  alv_layout-colwidth_optimize = 'X'.
  alv_layout-zebra             = 'X'.
  alv_layout-no_min_linesize   = 'X'.

* Now call display function
  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
      EXPORTING
           i_callback_program       = gd_repid
           i_callback_top_of_page   = 'TOP_OF_PAGE_SETUP' "Ref to form
           is_layout                = alv_layout
           it_fieldcat              = alv_fieldcat
*           i_grid_title             = text-005
      TABLES
            t_outtab                = it_makt
     EXCEPTIONS
         program_error            = 1
         OTHERS                   = 2.

  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_alv
*&---------------------------------------------------------------------*
*&      Form  top_of_page_setup
*&---------------------------------------------------------------------*
*
*  Set-up what to display at the top of the ALV pages
*  Note that the link to this form is in the
*  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY' parameter
*  i_callback_top_of_page   = 'TOP_OF_PAGE' in form display_alv
*----------------------------------------------------------------------*
FORM top_of_page_setup.

  DATA: t_header TYPE slis_t_listheader,
        wa_header TYPE slis_listheader.


  wa_header-typ  = 'H'.
  wa_header-info = 'This is a test of the ALV grid'.
  APPEND wa_header TO t_header.

  CLEAR wa_header.

  CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
       EXPORTING
            it_list_commentary = t_header.



ENDFORM.                    " top_of_page_setup

5 ABAP Tips: ALV Grid Using Function Modules This simple example shows how to create an ALV grid report using function modules. REPORT zhfnk_alvtest. TYPES: BEGIN OF t_makt, ...

No comments:

Post a Comment

< >