Thursday, November 21, 2024

Simple ALV Grid Display - REUSE_ALV_GRID_DISPLAY

    The function module REUSE_ALV_GRID_DISPLAY is used in SAP (Systems, Applications, and Products in Data Processing) to display data in an ALV (ABAP List Viewer) grid. This function module is part of the ALV framework and allows you to display data in a user-friendly grid format with various options for interaction, sorting, and formatting.

Key Features of REUSE_ALV_GRID_DISPLAY:

  • Display Data in Grid: It displays the data passed to it in a grid format (ALV).
  • Interactive Features: Users can sort, filter, and perform various interactive actions on the grid.
  • Customizable: You can customize the grid’s appearance, columns, and actions by passing specific parameters.
  • Event Handling: The function module supports event handling for user actions (e.g., button clicks or selection events).

Typical Usage:

  1. Preparing Data: Prepare the data you want to display in an internal table.
  2. Field Catalog: Define a field catalog that specifies the columns of the grid and their properties (like header text, column width, data types).
  3. Calling the Function Module: Use REUSE_ALV_GRID_DISPLAY to display the grid with the prepared data and field catalog.

Example Code :
  • Step 1 : Collect Data From Table or Internal Table
    FORM GET_DATA.
      CLEAR GT_DATA[].
      SELECT MATNR MTART MATKL FROM MARA INTO TABLE GT_DATA UP TO 10 ROWS.
    ENDFORM.
  • Step 2 : Declaration Variable ALV
    DATA : GT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,
           GS_FIELDCAT TYPE SLIS_FIELDCAT_ALV.
    
    DATA : GS_LAYOUT   TYPE SLIS_LAYOUT_ALV.
    
  • Step 3 : Build Fieldcat
    FORM BUILD_FIELDCAT.
      CLEAR GT_FIELDCAT[].
    
      CLEAR GS_FIELDCAT.
      GS_FIELDCAT-FIELDNAME  = 'MATNR'.
      GS_FIELDCAT-SELTEXT_L  = 'Material'.
      APPEND GS_FIELDCAT TO GT_FIELDCAT.
    
      CLEAR GS_FIELDCAT.
      GS_FIELDCAT-FIELDNAME  = 'MTART'.
      GS_FIELDCAT-SELTEXT_L  = 'Material Type'.
      APPEND GS_FIELDCAT TO GT_FIELDCAT.
    
      CLEAR GS_FIELDCAT.
      GS_FIELDCAT-FIELDNAME  = 'MATKL'.
      GS_FIELDCAT-SELTEXT_L  = 'Material Group'.
      APPEND GS_FIELDCAT TO GT_FIELDCAT.
    ENDFORM.
    
  • Step 4 : Build Layout
    FORM BUILD_LAYOUT.
      CLEAR GS_LAYOUT.
      GS_LAYOUT-ZEBRA             = 'X'.
      GS_LAYOUT-COLWIDTH_OPTIMIZE = 'X'.
    ENDFORM.
  • Step 5 : Copy Gui Status
    Go to tcode SE41, input Program Name = SAPLSALV and Status = STANDARD.
    Press button Status in toolbar.



    and then enter your Program Name and Status Name (Any String), Press button Copy.



    you can change the name or description in each GUI Status details.and then press button Copy.



    after that, back to your program. Press button Display Object List and you can see on the right of the ABAP Editor, the GUI Status is there.



    for activate GUI Status or all object inside the main program you need change to display mode and than can right click on the main program and choose Activate.



  • Step 6 : Set PF Status
    enter your GUI Status that you copied previously.
    FORM SET_PF_STATUS USING RT_EXTAB TYPE SLIS_T_EXTAB.
      SET PF-STATUS 'ZSTANDARD'.
    ENDFORM.
  • Step 7 : FM ALV Grid Display
    FORM DISPLAY_ALV.
      CLEAR : GT_FIELDCAT[].
      CLEAR : GS_FIELDCAT, GS_LAYOUT.
    
      PERFORM BUILD_FIELDCAT.
      PERFORM BUILD_LAYOUT.
    
      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
        EXPORTING
          I_SAVE                   = 'A'
          I_CALLBACK_PROGRAM       = SY-REPID
          I_CALLBACK_PF_STATUS_SET = 'SET_PF_STATUS'
          IT_FIELDCAT              = GT_FIELDCAT
          IS_LAYOUT                = GS_LAYOUT
        TABLES
          T_OUTTAB                 = GT_DATA
        EXCEPTIONS
          PROGRAM_ERROR            = 1
          OTHERS                   = 2.
    
      IF SY-SUBRC NE 0.
        MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
    
    ENDFORM.
    
    
Full Code :
REPORT ZANISSA_SAPABAP_ALV_GRID_VIEW.

TYPES : BEGIN OF TY_DATA,
          MATNR TYPE MARA-MATNR,
          MTART TYPE MARA-MTART,
          MATKL TYPE MARA-MATKL,
        END OF TY_DATA.

DATA : GT_DATA TYPE TABLE OF TY_DATA.

DATA : GT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,
       GS_FIELDCAT TYPE SLIS_FIELDCAT_ALV.

DATA : GS_LAYOUT   TYPE SLIS_LAYOUT_ALV.

START-OF-SELECTION.

  PERFORM GET_DATA.
  IF GT_DATA[] IS NOT INITIAL.
    PERFORM DISPLAY_ALV.
  ELSE.
    MESSAGE 'Data not found!' TYPE 'S' DISPLAY LIKE 'E'.
  ENDIF.

END-OF-SELECTION.

FORM GET_DATA.
  CLEAR GT_DATA[].
  SELECT MATNR MTART MATKL FROM MARA INTO TABLE GT_DATA UP TO 10 ROWS.
ENDFORM.

FORM DISPLAY_ALV.
  CLEAR : GT_FIELDCAT[].
  CLEAR : GS_FIELDCAT, GS_LAYOUT.

  PERFORM BUILD_FIELDCAT.
  PERFORM BUILD_LAYOUT.

  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
      I_SAVE                   = 'A'
      I_CALLBACK_PROGRAM       = SY-REPID
      I_CALLBACK_PF_STATUS_SET = 'SET_PF_STATUS'
      IT_FIELDCAT              = GT_FIELDCAT
      IS_LAYOUT                = GS_LAYOUT
    TABLES
      T_OUTTAB                 = GT_DATA
    EXCEPTIONS
      PROGRAM_ERROR            = 1
      OTHERS                   = 2.

  IF SY-SUBRC NE 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.

ENDFORM.

FORM BUILD_FIELDCAT.
  CLEAR GT_FIELDCAT[].

  CLEAR GS_FIELDCAT.
  GS_FIELDCAT-FIELDNAME  = 'MATNR'.
  GS_FIELDCAT-SELTEXT_L  = 'Material'.
  APPEND GS_FIELDCAT TO GT_FIELDCAT.

  CLEAR GS_FIELDCAT.
  GS_FIELDCAT-FIELDNAME  = 'MTART'.
  GS_FIELDCAT-SELTEXT_L  = 'Material Type'.
  APPEND GS_FIELDCAT TO GT_FIELDCAT.

  CLEAR GS_FIELDCAT.
  GS_FIELDCAT-FIELDNAME  = 'MATKL'.
  GS_FIELDCAT-SELTEXT_L  = 'Material Group'.
  APPEND GS_FIELDCAT TO GT_FIELDCAT.
ENDFORM.

FORM BUILD_LAYOUT.
  CLEAR GS_LAYOUT.
  GS_LAYOUT-ZEBRA             = 'X'.
  GS_LAYOUT-COLWIDTH_OPTIMIZE = 'X'.
ENDFORM.

FORM SET_PF_STATUS USING RT_EXTAB TYPE SLIS_T_EXTAB.
  SET PF-STATUS 'ZSTANDARD'.
ENDFORM.

Result :







Simple ALV Grid Display - REUSE_ALV_GRID_DISPLAY

     The function module REUSE_ALV_GRID_DISPLAY is used in SAP (Systems, Applications, and Products in Data Processing) to display data in ...

Populer tessss