Home > ABAP, ALV > SAP ALV – Double Click Event

SAP ALV – Double Click Event

September 12th, 2009 Leave a comment Go to comments

Below code example is to display the purchase orders as per selection screen. This program also deals with the double click event. If user double click one line in purchase order number column, the screen will navigate to transaction code ME23N to display the selected PO.

************************************************************************
*  Program ID     : ZDOUBLE_CLICK_EVENT                                *
*  Program Title  : Handle double click event                          *
*  Created By     : kingsxiaoz                                         *
*  Creation Date  : 08.10.2009                                         *
************************************************************************
REPORT  zhaotest.
 
TABLES: ekko,ekpo.
 
* selection option
SELECT-OPTIONS s_ebeln FOR ekko-ebeln.
 
TYPE-POOLS:slis.
 
* define output table
 
DATA: BEGIN OF outputtab OCCURS 0,
ebeln LIKE ekpo-ebeln,
ebelp LIKE ekpo-ebelp,
matnr LIKE ekpo-matnr,
werks LIKE ekpo-werks,
menge LIKE ekpo-menge,
netpr LIKE ekpo-netpr,
peinh LIKE ekpo-peinh,
netwr LIKE ekpo-netwr,
END OF outputtab.
 
DATA: i_fieldcat TYPE slis_t_fieldcat_alv.
DATA: v_repid LIKE sy-repid.
 
INITIALIZATION.
v_repid = sy-repid.
 
START-OF-SELECTION.
 
  PERFORM get_data.
 
END-OF-SELECTION.
 
* get field catalog of output table
 
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
  EXPORTING
    i_program_name = sy-repid
    i_internal_tabname = 'OUTPUTTAB'
    i_inclname = v_repid
    i_bypassing_buffer = 'X'
    i_buffer_active = ''
  CHANGING
    ct_fieldcat = i_fieldcat
  EXCEPTIONS
    inconsistent_interface = 1
    program_error = 2
  OTHERS = 3.
 
  IF sy-subrc <;>; 0.
    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno WITH sy-msgv1
    sy-msgv2 sy-msgv3 sy-msgv4.
  ENDIF.
 
  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
      i_callback_program                = v_repid
      i_callback_user_command           = 'USER_COMMAND'
      it_fieldcat                       = i_fieldcat
      i_save                            = 'A'
    TABLES
      t_outtab                          = outputtab
    EXCEPTIONS
      program_error                     = 1
      OTHERS                            = 2.
 
IF sy-subrc <> 0.
  MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
  WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
 
* Form get_data
 
FORM get_data.
 
  SELECT ebeln ebelp matnr werks menge netpr peinh netwr
    INTO TABLE outputtab
    UP TO 300 ROWS
    FROM ekpo
    WHERE ebeln IN s_ebeln.
 
ENDFORM. "get_data
 
* Form user_command 
 
FORM user_command USING v_ucomm   LIKE sy-ucomm
                        wa_selrow TYPE slis_selfield.
 
  CASE v_ucomm.
    WHEN '&IC1'.
      READ TABLE outputtab INDEX wa_selrow-tabindex.
      CASE wa_selrow-fieldname.
        WHEN 'EBELN'.
          SET PARAMETER ID 'BES' FIELD outputtab-ebeln.
          CALL TRANSACTION 'ME23N'.
      ENDCASE.
  ENDCASE.
ENDFORM.
  1. SMRUTI RAnjAN BARIK
    April 16th, 2011 at 02:27 | #1

    This is a very good tutorial site for ERP.. I like it most.

  2. April 18th, 2011 at 09:32 | #2

    Thanks for your compliment:-)

  1. No trackbacks yet.