Quantcast
Channel: SCN: Message List
Viewing all articles
Browse latest Browse all 3548

Re: How to trigger PAI on pressing enter on set_table_for_first_display table ?

$
0
0

Hi,

you can this method handle data change,if the data has been changed in ALV, and you pressed enter,then this method should be called,

 

 

SET HANDLER g_event_receiver->handle_data_changed FOR o_grid_sob


try this code.

 

REPORT zibo_pg_test99.
DATA o_cont_sob TYPE REF TO cl_gui_custom_container.
DATA o_grid_sob TYPE REF TO cl_gui_alv_grid.
DATA gt_sob_1 TYPE TABLE OF sflight.

DATA gt_fieldcat_new TYPE lvc_t_fcat .

CLASS lcl_event_receiver DEFINITION.
 
PUBLIC SECTION.
   
METHODS:
      handle_data_changed
FOR EVENT data_changed OF cl_gui_alv_grid
       
IMPORTING
          er_data_changed
.



ENDCLASS.                    "lcl_event_receiver DEFINITION

CLASS lcl_event_receiver IMPLEMENTATION.
 
METHOD handle_data_changed.

   
MESSAGE 'you have pressed enter-event' TYPE 'I'.
 
ENDMETHOD.                    "handle_data_changed
ENDCLASS.

START-OF-SELECTION.
 
CALL SCREEN 100.

 
" IF SY-SUBRC NE 0






*&---------------------------------------------------------------------*
*&      Module  STATUS_0100  OUTPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE status_0100 OUTPUT.
*  SET PF-STATUS 'xxxxxxxx'.
*  SET TITLEBAR 'xxx'.

 
CALL FUNCTION 'LVC_FIELDCATALOG_MERGE'
   
EXPORTING
*     I_BUFFER_ACTIVE  =
      i_structure_name
= 'SFLIGHT'
*     I_CLIENT_NEVER_DISPLAY       = 'X'
*     I_BYPASSING_BUFFER           =
*     I_INTERNAL_TABNAME           =
   
CHANGING
      ct_fieldcat     
= gt_fieldcat_new
*   EXCEPTIONS
*     INCONSISTENT_INTERFACE       = 1
*     PROGRAM_ERROR    = 2
*     OTHERS           = 3
   
.
 
IF sy-subrc <> 0.
* Implement suitable error handling here
 
ENDIF.
 
FIELD-SYMBOLS <ls_f> like line of gt_fieldcat_new.

READ TABLE gt_fieldcat_new ASSIGNING  <ls_f>
with key fieldname = 'FLDATE'.
 
IF  sy-subrc = 0.
    <ls_f>
-edit = abap_true.
 
ENDIF.
 
SELECT * FROM sflight INTO TABLE gt_sob_1 UP TO 10 ROWS.
 
CREATE OBJECT o_cont_sob
   
EXPORTING
      container_name             
= 'SOB_ALV'
   
EXCEPTIONS
      cntl_error                 
= 1
      cntl_system_error          
= 2
      create_error               
= 3
      lifetime_error             
= 4
      lifetime_dynpro_dynpro_link
= 5
     
OTHERS                      = 6.


 
CREATE OBJECT o_grid_sob
   
EXPORTING
      i_parent         
= o_cont_sob
   
EXCEPTIONS
      error_cntl_create
= 1
      error_cntl_init  
= 2
      error_cntl_link  
= 3
      error_dp_create  
= 4
     
OTHERS            = 5.

 
CALL METHOD o_grid_sob->set_table_for_first_display

*       EXPORTING
*     it_toolbar_excluding          = pt_exclude
*     is_layout                     = wa_layout
   
CHANGING
      it_outtab                    
= gt_sob_1
     it_fieldcatalog              
= gt_fieldcat_new
   
EXCEPTIONS
      invalid_parameter_combination
= 1
      program_error                
= 2
      too_many_lines               
= 3
     
OTHERS                        = 4.

*  Registering the EDIT Event
  o_grid_sob
->register_edit_event( cl_gui_alv_grid=>mc_evt_enter ).

 
DATA g_event_receiver TYPE REF TO lcl_event_receiver.
 
CREATE OBJECT g_event_receiver.
 
SET HANDLER g_event_receiver->handle_data_changed FOR o_grid_sob.

call method cl_gui_cfw=>set_new_ok_code
 
exporting
  new_code
= 'REFR'.


ENDMODULE.                 " STATUS_0100  OUTPUT
*&---------------------------------------------------------------------*
*&      Module  USER_COMMAND_0100  INPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE user_command_0100 INPUT.
 
CALL METHOD o_grid_sob->register_edit_event
   
EXPORTING
      i_event_id
= cl_gui_alv_grid=>mc_evt_enter "trigger event after ENTER is pressed
   
EXCEPTIONS
      error     
= 1
     
OTHERS     = 2.
ENDMODULE.                 " USER_COMMAND_0100  INPUT


Regards

Ebrahim


Viewing all articles
Browse latest Browse all 3548

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>