Application Development Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 

Problem with oops

Former Member
0 Kudos

HI GURU'S,

WHAT IS THE TYPE ASSOCIATED WITH SENDER. PLEASE CHECK THE FOLLOWING CODE FOR REFERRENCE.

CLASS lcl_event_handler IMPLEMENTATION .

*Handle Double Click

METHOD handle_double_click .

PERFORM handle_double_click USING e_row

e_column

es_row_no

sender.

ENDMETHOD.

ENDCLASS.

AND PLEASE LET ME KNOW WILL THIS CODE WORK?

FORM handle_double_click USING

i_row TYPE lvc_s_row

i_column TYPE lvc_s_col

is_row_no TYPE lvc_s_roid

sender.

OR I HAVE TO ASSIGN SOME TYPE TO THE SENDER IF YES, HOW TO FIND THAT?

THANKS & REGARDS,

TAPODIPTA KHAN.

1 ACCEPTED SOLUTION

raymond_giuseppi
Active Contributor
0 Kudos

Sender is a "formal parameter" an OBJECT reference like the object you used to create your Grid in CREATE OBJECT (TYPE REF TO class). It is the object which triggers the event - it is automatically defined as soon as it is defined as parameter

Look at [IMPORTING p1 p2 ... sender|http://help.sap.com/abapdocu_70/en/ABAPMETHODS_EVENT_HANDLER.htm#!ABAP_ADDITION_1@1@] in [METHODS - FOR EVENT |http://help.sap.com/abapdocu_70/en/ABAPMETHODS_EVENT_HANDLER.htm]

If the formal parameter sender is defined for an event handler, this is automatically supplied with the reference to the triggering object when instance events are triggered. It cannot be explicity specified after EXPORTING.

Example : suppose there are two alv grids at screen, created via CREATE OBJECT grid1 PARENT... and CREATE OBJECT grid2... each work on its own internal table, In a common method for Handle_double_click you may have a code like

  CLASS lcl_application DEFINITION.
    PUBLIC SECTION.
      METHODS:
        handle_node_double_click
          FOR EVENT node_double_click
            OF cl_gui_alv_grid
            IMPORTING e_column es_row_no sender,..

  CREATE OBJECT grid1 ...
  CALL METHOD grid1->set_table_for_first_display ...

  CREATE OBJECT grid2 ...
  CALL METHOD grid2->set_table_for_first_display ...

  CLASS lcl_application IMPLEMENTATION.
    METHOD handle_node_double_click.
      CASE SENDER.
      WHEN grid1.
"     read itab1
      WHEN grid2.
"     read itab2
    ENDCASE.
"   common part of code

Regards,

Raymond

3 REPLIES 3

Former Member
0 Kudos

Hi,

Handle_double_click event has only three parameters.i.e. row, column and row number.

Sendor is not a parameter of this event.

raymond_giuseppi
Active Contributor
0 Kudos

Sender is a "formal parameter" an OBJECT reference like the object you used to create your Grid in CREATE OBJECT (TYPE REF TO class). It is the object which triggers the event - it is automatically defined as soon as it is defined as parameter

Look at [IMPORTING p1 p2 ... sender|http://help.sap.com/abapdocu_70/en/ABAPMETHODS_EVENT_HANDLER.htm#!ABAP_ADDITION_1@1@] in [METHODS - FOR EVENT |http://help.sap.com/abapdocu_70/en/ABAPMETHODS_EVENT_HANDLER.htm]

If the formal parameter sender is defined for an event handler, this is automatically supplied with the reference to the triggering object when instance events are triggered. It cannot be explicity specified after EXPORTING.

Example : suppose there are two alv grids at screen, created via CREATE OBJECT grid1 PARENT... and CREATE OBJECT grid2... each work on its own internal table, In a common method for Handle_double_click you may have a code like

  CLASS lcl_application DEFINITION.
    PUBLIC SECTION.
      METHODS:
        handle_node_double_click
          FOR EVENT node_double_click
            OF cl_gui_alv_grid
            IMPORTING e_column es_row_no sender,..

  CREATE OBJECT grid1 ...
  CALL METHOD grid1->set_table_for_first_display ...

  CREATE OBJECT grid2 ...
  CALL METHOD grid2->set_table_for_first_display ...

  CLASS lcl_application IMPLEMENTATION.
    METHOD handle_node_double_click.
      CASE SENDER.
      WHEN grid1.
"     read itab1
      WHEN grid2.
"     read itab2
    ENDCASE.
"   common part of code

Regards,

Raymond

Former Member
0 Kudos

hii,

*&----


*& FORM USER_COMMAND

*&----


  • MOVING SCREEN TO TRANSACTION MM03 ON DOUBLE CLICK.

*----


  • P_UCOMM TEXT

  • PS_SELFIELD TEXT

*----


FORM user_command USING p_ucomm LIKE sy-ucomm

ps_selfield TYPE slis_selfield .

IF p_ucomm EQ '&IC1'. "DOUBLECLICK here u can give the value u have assigned

CASE ps_selfield-fieldname.

WHEN 'MATNR'. here u can give ur field.

IF NOT ps_selfield-value IS INITIAL.

SET PARAMETER ID 'MAT' FIELD ps_selfield-value.

CALL TRANSACTION 'MM03' AND SKIP FIRST SCREEN.

ENDIF.

ENDCASE.

ENDIF.

regards,

Shweta