Double click event in factory method using OOPS ALV in ABAP
1. Goto SE38.
2. Give program name and click on create.
3. Give title and click on save.
4. Write code.
REPORT zab_rp_oops_facto_double_click.
TABLES: ekko,ekpo.
TYPES: BEGIN OF ty_ekko,
ebeln TYPE ekko-ebeln,
bukrs TYPE ekko-bukrs,
bstyp TYPE ekko-bstyp,
bsart TYPE ekko-bsart,
END OF ty_ekko.
TYPES: BEGIN OF ty_ekpo,
ebeln TYPE ekpo-ebeln,
ebelp TYPE ekpo-ebelp,
matnr TYPE ekpo-matnr,
werks TYPE ekpo-werks,
END OF ty_ekpo.
DATA: lt_ekko TYPE TABLE OF ty_ekko,
lr_ekko TYPE ty_ekko,
lt_ekpo TYPE TABLE OF ty_ekpo,
lr_ekpo TYPE ty_ekpo.
DATA: lo_salv1 TYPE REF TO cl_salv_table.
DATA: lo_salv2 TYPE REF TO cl_salv_table.
DATA: lo_events TYPE REF TO cl_salv_events_table.
SELECT-OPTIONS: s_ebeln FOR ekko-ebeln.
CLASS a DEFINITION.
PUBLIC SECTION.
METHODS handler FOR EVENT double_click OF cl_salv_events_table IMPORTING row column.
ENDCLASS.
CLASS a IMPLEMENTATION.
METHOD handler.
READ TABLE lt_ekko INTO lr_ekko INDEX row.
IF sy-subrc = 0.
SELECT ebeln ebelp matnr werks
FROM ekpo
INTO TABLE lt_ekpo
WHERE ebeln = lr_ekko-ebeln.
TRY.
CALL METHOD cl_salv_table=>factory
* EXPORTING
* list_display = IF_SALV_C_BOOL_SAP=>FALSE
* r_container =
* container_name =
IMPORTING
r_salv_table = lo_salv2
CHANGING
t_table = lt_ekpo.
CATCH cx_salv_msg.
ENDTRY.
CALL METHOD lo_salv2->if_salv_gui_om_table_action~display.
ENDIF.
ENDMETHOD.
ENDCLASS.
START-OF-SELECTION.
IF s_ebeln IS INITIAL.
MESSAGE 'Pls enter purchasing doc number' TYPE 'E'.
ELSE.
SELECT ebeln
bukrs
bstyp
bsart
FROM ekko
INTO TABLE lt_ekko
WHERE ebeln IN s_ebeln.
ENDIF.
TRY.
CALL METHOD cl_salv_table=>factory
* EXPORTING
* list_display = IF_SALV_C_BOOL_SAP=>FALSE
* r_container =
* container_name =
IMPORTING
r_salv_table = lo_salv1
CHANGING
t_table = lt_ekko.
CATCH cx_salv_msg.
ENDTRY.
CALL METHOD lo_salv1->if_salv_gui_om_table_info~get_event
RECEIVING
value = lo_events.
DATA: lo_object TYPE REF TO a.
CREATE OBJECT lo_object.
SET HANDLER lo_object->handler FOR lo_events.
CALL METHOD lo_salv1->if_salv_gui_om_table_action~display.
Input
Output
After double click
Comments
Post a Comment