SAP R/3 форум ABAP консультантов
Russian ABAP Developer's Club

Home - FAQ - Search - Memberlist - Usergroups - Profile - Log in to check your private messages - Register - Log in - English
Blogs - Weblogs News

Simple ALV with user defined menu in toolbar



 
Post new topic   Reply to topic    Russian ABAP Developer's Club Forum Index -> ALV Grid / ALV Tree / ALV List
View previous topic :: View next topic  
Author Message
admin
Администратор
Администратор



Joined: 01 Sep 2007
Posts: 1639

PostPosted: Tue Nov 18, 2008 10:02 pm    Post subject: Simple ALV with user defined menu in toolbar Reply with quote

ALV with user defined menu in Toolbar

Sample code with screen shots of a very simple ALV with a user defined menu in the toolbar. On clicking the Menu item they become interactive and display a message.

Code:
REPORT zalv_intmenutool.
*Author : Swarna.S.
*AS : Simple ALV with user defined menu in toolbar
*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. " ALVDISPLAY
[/code]


zalv_intmenutool.gif
 Description:
 Filesize:  39.26 KB
 Viewed:  10864 Time(s)

zalv_intmenutool.gif


Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Russian ABAP Developer's Club Forum Index -> ALV Grid / ALV Tree / ALV List All times are GMT + 4 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You can download files in this forum


All product names are trademarks of their respective companies. SAPNET.RU websites are in no way affiliated with SAP AG.
SAP, SAP R/3, R/3 software, mySAP, ABAP, BAPI, xApps, SAP NetWeaver and any other are registered trademarks of SAP AG.
Every effort is made to ensure content integrity. Use information on this site at your own risk.