0% found this document useful (0 votes)
328 views3 pages

ALV With User Defined Menu On Toolbar

This document describes how to create an ALV grid with a user-defined menu on the toolbar in ABAP. It defines event handler classes to handle toolbar, menu button, and user command events. On initialization, it selects data from internal table DD02L, creates the ALV grid and custom container, sets event handlers, and displays the interactive toolbar. When the user clicks the "DISPLAY" menu button, a message is displayed.

Uploaded by

mdwaris
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
328 views3 pages

ALV With User Defined Menu On Toolbar

This document describes how to create an ALV grid with a user-defined menu on the toolbar in ABAP. It defines event handler classes to handle toolbar, menu button, and user command events. On initialization, it selects data from internal table DD02L, creates the ALV grid and custom container, sets event handlers, and displays the interactive toolbar. When the user clicks the "DISPLAY" menu button, a message is displayed.

Uploaded by

mdwaris
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
You are on page 1/ 3

ALV with user defined menu on toolbar

By Swarna S, Tata Consultancy Services


REPORT ZALV_INTMENUTOOL.
*Author : Swarna.S.
*AS : Simple ALV with user defined menu in toolbar
* Published at SAPTechnical.COM
*Class declarations
CLASS lcl_event_receiver DEFINITION DEFERRED.
*type pool declarations
TYPE-POOLS : icon.
*Internal table and work area declarations for dd02l
DATA: it_dd02l
TYPE TABLE OF dd02l,
wa_dd02l TYPE dd02l.
*Data declaration for alv.
DATA :it_layout
TYPE lvc_s_layo,
it_toolbar TYPE stb_button,
c_alv TYPE REF TO cl_gui_alv_grid,
custom_container TYPE REF TO cl_gui_custom_container,
event_receiver TYPE REF TO lcl_event_receiver.
*Select options multiple values no ranges
SELECT-OPTIONS : s_table FOR wa_dd02l-tabname NO INTERVALS.
*Initialization event
INITIALIZATION.
*Start of selection event
START-OF-SELECTION.
*sUBROUTINE FOR ALV DISPLAY
PERFORM alvdisplay.
*Class definition
CLASS lcl_event_receiver DEFINITION.
PUBLIC SECTION.
CLASS-METHODS:
*handling toolbar for interactive
handle_toolbar
FOR EVENT toolbar OF cl_gui_alv_grid
IMPORTING e_object e_interactive,
*handling menu button
handle_menu_button
FOR EVENT menu_button OF cl_gui_alv_grid
IMPORTING e_object e_ucomm,
*On click of the menu button
handle_user_command
FOR EVENT user_command OF cl_gui_alv_grid
IMPORTING e_ucomm.
PRIVATE SECTION.
ENDCLASS.
"lcl_event_receiver DEFINITION
*Class implementation
CLASS lcl_event_receiver IMPLEMENTATION.
METHOD handle_toolbar.
* handle toolbar
CLEAR it_toolbar.
MOVE 'DETAIL' TO it_toolbar-function.
MOVE icon_detail TO it_toolbar-icon.
MOVE 2 TO it_toolbar-butn_type.
APPEND it_toolbar TO e_object->mt_toolbar.
ENDMETHOD.
"handle_toolbar
METHOD handle_menu_button.
* handle own menubuttons
IF e_ucomm = 'DETAIL'.
CALL METHOD e_object->add_function
EXPORTING
fcode = 'DISPLAY'
text = 'DISPLAY'.
ENDIF.
ENDMETHOD.
"handle_menu_button

METHOD handle_user_command.
*On click
CASE e_ucomm.
WHEN 'DISPLAY'.
MESSAGE 'Menu Clicked' TYPE 'I'.
ENDCASE.
ENDMETHOD.
"handle_user_command
ENDCLASS.
"lcl_event_receiver IMPLEMENTATION
*&-----------------------------------------------------------------*
*&
Module PBO OUTPUT
*&-----------------------------------------------------------------*
*
text
*------------------------------------------------------------------*
MODULE pbo OUTPUT.
IF custom_container IS INITIAL.
* select data from table dd02l
PERFORM fetch_dd02l.
* create a custom container control for our ALV Control
CREATE OBJECT custom_container
EXPORTING
container_name = 'CCONT'.
* create an instance of alv control
CREATE OBJECT c_alv
EXPORTING i_parent = custom_container.
* Set a titlebar for the grid control
it_layout-grid_title = 'TABLE DETAILS'.
*ALV display
CALL METHOD c_alv->set_table_for_first_display
EXPORTING
i_structure_name = 'dd02l'
is_layout
= it_layout
CHANGING
it_outtab
= it_dd02l.
*Handlers for the events
CREATE OBJECT event_receiver.
SET HANDLER event_receiver->handle_user_command
event_receiver->handle_menu_button
event_receiver->handle_toolbar FOR ALL INSTANCES.
*Calling the interactive toolbar method of ALV
CALL METHOD c_alv->set_toolbar_interactive.
ENDIF.
ENDMODULE.
" PBO OUTPUT
*&-----------------------------------------------------------------*
*&
Module PAI INPUT
*&-----------------------------------------------------------------*
*
text
*-----------------------------------------------------------------*
MODULE pai INPUT.
ENDMODULE.
" PAI INPUT
*&----------------------------------------------------------------*
*&
form fetch_dd02l
*&----------------------------------------------------------------*
*
text
*-----------------------------------------------------------------*
*Subroutine to fetch data
FORM fetch_dd02l.
SELECT * FROM dd02l INTO CORRESPONDING FIELDS OF TABLE it_dd02l
WHERE tabname IN s_table.
ENDFORM.
" SELECT_TABLE_dd02l
*&-----------------------------------------------------------------*
*&
Form ALVDISPLAY
*&-----------------------------------------------------------------*
*
text
*------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*------------------------------------------------------------------*

FORM alvdisplay .
* ALV output
SET SCREEN 600.
ENDFORM.
Selection screen

On F8,

On clicking the DISPLAY

" ALVDISPLAY

You might also like