Skip to content
Skip to content
Menu
SAP ABAP DWIMAN
  • About
SAP ABAP DWIMAN

SAP ABAP – ZTEMPLATE #2 with Class, ALV Factory, ALV Events, and Macro

By juananda.satria on December 1, 2023December 1, 2023

For you who want to working faster, just copy-paste and modified 🙂

Practically for display only report I just have to set data structure and add the get data logic.

* ==================================================================== *
* Program......:                                                       *
* Title........:                                                       *
* Author.......:                                                       *
* Date.........:                                                       *
* -------------------------------------------------------------------- *
* Description..:                                                       *
* -------------------------------------------------------------------- *
* Modification list.:                                                  *
* Date            Author            Description:                       *
* --/--/--        -------           ------------                       *
* ==================================================================== *
REPORT ZTEMPLATE.

* -------------------------------------------------------------------- *
*  M A C R O
* -------------------------------------------------------------------- *
DEFINE _set_text.
  TRY.
      lo_col ?= lo_columns->get_column( &1 ).
      lo_col->set_short_text( &2 ).
      lo_col->set_medium_text( &3 ).
      lo_col->set_long_text( &4 ).
    CATCH cx_salv_not_found.
  ENDTRY.
END-OF-DEFINITION.

* -------------------------------------------------------------------- *
*  G L O B A L   V A R I A B L E
* -------------------------------------------------------------------- *
CLASS lcl_main DEFINITION DEFERRED.
TYPES: BEGIN OF ty_data,
         field TYPE dummy,
       END OF ty_data,
       tt_data TYPE TABLE OF ty_data.

DATA: t_data  TYPE tt_data,
      go_main TYPE REF TO lcl_main.


* -------------------------------------------------------------------- *
*  S E L E C T I O N   S C R E E N
* -------------------------------------------------------------------- *
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE TEXT-001.
*  SELECT-OPTIONS: so_xxx FOR table-field.
*  PARAMETERS: p_xxx TYPE table-field.
SELECTION-SCREEN END OF BLOCK b1.


* -------------------------------------------------------------------- *
*  C L A S S
* -------------------------------------------------------------------- *
CLASS lcl_main DEFINITION.
  PUBLIC SECTION.
    METHODS:
      constructor,
      get_data,
      display_data.

  PRIVATE SECTION.
    DATA: lo_alv TYPE REF TO cl_salv_table.

    METHODS:
      set_columns,
      set_events.

    METHODS:
      on_user_command FOR EVENT added_function OF cl_salv_events
        IMPORTING e_salv_function.

*      on_before_salv_function FOR EVENT before_salv_function OF cl_salv_events
*        IMPORTING e_salv_function,
*
*      on_after_salv_function FOR EVENT after_salv_function OF cl_salv_events
*        IMPORTING e_salv_function,
*
*      on_double_click FOR EVENT double_click OF cl_salv_events_table
*        IMPORTING row column,
*
*      on_link_click FOR EVENT link_click OF cl_salv_events_table
*        IMPORTING row column.

ENDCLASS.

CLASS lcl_main IMPLEMENTATION.
  METHOD constructor.
    TRY.
        CALL METHOD cl_salv_table=>factory
          IMPORTING
            r_salv_table = lo_alv
          CHANGING
            t_table      = t_data.
      CATCH cx_salv_msg.
    ENDTRY.
  ENDMETHOD. " constructor

  METHOD get_data.
  ENDMETHOD. " get_data

  METHOD display_data.

    DATA(lo_functions) = lo_alv->get_functions( ).
    lo_functions->set_all( abap_true ).

    set_columns( ).
    set_events( ).

    lo_alv->display( ).
  ENDMETHOD. " display_data


  METHOD set_events.
    DATA(lo_events) = lo_alv->get_event( ).

    SET HANDLER me->on_user_command FOR lo_events.
*    SET HANDLER me->on_before_salv_function FOR lo_events.
*    SET HANDLER me->on_after_salv_function FOR lo_events.
*    SET HANDLER me->on_double_click FOR lo_events.
*    SET HANDLER me->on_link_click FOR lo_events.
  ENDMETHOD. " set_events

  METHOD set_columns.
    DATA: lo_col TYPE REF TO cl_salv_column_table.

    DATA(lo_columns) = lo_alv->get_columns( ).
    lo_columns->set_optimize( 'X' ).

    _set_text 'FIELD' 'Short' 'Medium' 'Long'.
  ENDMETHOD. " set_columns


  METHOD on_user_command.
  ENDMETHOD. " on_user_command
ENDCLASS.


* -------------------------------------------------------------------- *
*  S T A R T   O F    S E L E C T I O N
* -------------------------------------------------------------------- *
START-OF-SELECTION.
  PERFORM f_start.

* -------------------------------------------------------------------- *
*  E N D   O F   S E L E C T I O N
* -------------------------------------------------------------------- *
END-OF-SELECTION.
  PERFORM f_end.

* -------------------------------------------------------------------- *
*  S U B R O U T I N E S
* -------------------------------------------------------------------- *
*&---------------------------------------------------------------------*
*& Form f_start
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& -->  p1        text
*& <--  p2        text
*&---------------------------------------------------------------------*
FORM f_start .
  CREATE OBJECT go_main.
  go_main->get_data( ).
ENDFORM.


*&---------------------------------------------------------------------*
*& Form f_end
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& -->  p1        text
*& <--  p2        text
*&---------------------------------------------------------------------*
FORM f_end .
  go_main->display_data( ).
ENDFORM.

Thank you for come here and enjoy 🙂

Post navigation

SAP ABAP – Knapsack
Create SAP ABAP RESTFUL Web Service direct via SICF

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

Recent Posts

  • SAP ABAP – Generate Fiori URL
  • SAP ABAP – Workflow Agents CDS
  • SAP ABAP – Workflow Level with Table Function
  • SAP ABAP – Download ALV to Excel with Total and Subtotal
  • SAP ABAP – BDC Template

Recent Comments

  1. SAP ABAP – Simple Interface FTP Inbound (SAP Consume File From FTP) – SAP ABAP DWIMAN on SAP ABAP – String Encode & Decode BASE64
  2. Upload file – SAP ABAP DWIMAN on F4 Search Help File

Archives

  • May 2025
  • August 2024
  • June 2024
  • May 2024
  • March 2024
  • February 2024
  • January 2024
  • December 2023
  • November 2023
  • October 2023
  • May 2023
  • April 2023

Categories

  • Uncategorized
©2026 SAP ABAP DWIMAN | WordPress Theme by SuperbThemes.com