ToolBar Buttons Using CL_GUI_TOOLBAR & Handling it


DATA lr_toolbar TYPE REF TO cl_gui_toolbar,

           lr_cust_cont TYPE REF TO cl_gui_custom_container,

           lt_event TYPE cntl_simple_events,

           ls_event LIKE LINE OF lt_event.

*———————————————————————-*

*       CLASS LCL_HANDLE_TOOLBAR DEFINITION

*———————————————————————-*

CLASS lcl_handle_toolbar DEFINITION.

  PUBLIC SECTION.

    METHODS handle_button FOR EVENT function_selected

                            OF cl_gui_toolbar IMPORTING fcode .

ENDCLASS.                    “LCL_HANDLE_TOOLBAR DEFINITION


*———————————————————————-*

*       CLASS lcl_handle_toolbar IMPLEMENTATION

*———————————————————————-*


CLASS lcl_handle_toolbar IMPLEMENTATION.

  METHOD handle_button .

  CASE fcode.

    WHEN ‘TSAVE’.

     MESSAGE ‘Save button clicked’ TYPE ‘I’.

  ENDCASE.

  ENDMETHOD.                    “handle_button

ENDCLASS.                    “lcl_handle_toolbar IMPLEMENTATION


START-OF-SELECTION.

  DATA lr_handle TYPE REF TO lcl_handle_toolbar.

  CREATE OBJECT lr_handle.


  CALL SCREEN 0001.

*&———————————————————————*

*&      Module  CREATE_PFSTATUS  OUTPUT

*&———————————————————————*

MODULE create_pfstatus OUTPUT.

  SET PF-STATUS ‘STATUS’.

ENDMODULE.                 ” CREATE_PFSTATUS  OUTPUT

*&———————————————————————*

*&      Module  CREATE_TOOLBAR  OUTPUT

*&———————————————————————*

MODULE create_toolbar OUTPUT.

  IF lr_cust_cont IS NOT BOUND.

    CREATE OBJECT lr_cust_cont

      EXPORTING

        container_name ‘TOOLBAR’

        repid          syrepid

        dynnr          sydynnr.


  ENDIF.


  IF lr_toolbar IS NOT BOUND.

    CREATE OBJECT lr_toolbar

      EXPORTING

        parent             lr_cust_cont

        display_mode       cl_gui_toolbar=>m_mode_horizontal ” Display mode

        name               ‘Demo Toolbar’

      EXCEPTIONS

        cntl_install_error 1

        cntl_error         2

        cntb_wrong_version 3

        OTHERS             4.


  ENDIF.


  CALL METHOD lr_toolbar->add_button

    EXPORTING

      fcode            ‘TSAVE’  ” Function Code of Button

      icon             ‘@2L@’    ” Icon Name

*     is_disabled      =     ” Button Status

      butn_type        0   ” Button Types Defined in CNTB

      text             ‘Save’  ” Text Shown to the Right of the Image

      quickinfo        ‘Click to update the database’

*     is_checked       =     ” Button Selected

    EXCEPTIONS

      cntl_error       1

      cntb_btype_error 2

      cntb_error_fcode 3

      OTHERS           4.


  ls_eventeventid cl_gui_toolbar=>m_id_function_selected.

  ls_eventappl_event .

  APPEND ls_event TO lt_event.

  CALL METHOD lr_toolbar->set_registered_events

    EXPORTING

      events lt_event.


  SET HANDLER lr_handle->handle_button FOR lr_toolbar.

ENDMODULE.                 ” CREATE_TOOLBAR  OUTPUT

*&———————————————————————*

*&      Module  HANDLE_USERACTION  INPUT

*&———————————————————————*

MODULE handle_useraction INPUT.

  CASE syucomm.

    WHEN ‘BACK’ OR ‘EXIT’ OR ‘CANCEL’.

      LEAVE TO SCREEN 0.

    WHEN OTHERS.

  ENDCASE.

ENDMODULE.                 ” HANDLE_USERACTION  INPUT



 

 

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s