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-OPTIONSs_ebeln FOR ekko-ebeln.

CLASS DEFINITION.
  PUBLIC SECTION.
    METHODS handler FOR EVENT double_click OF cl_salv_events_table IMPORTING row column.
ENDCLASS.

CLASS 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

***********************Thank You************************

Comments

Popular posts from this blog

New syntax for append- VALUE (new syntax 7.4+) in ABAP

Read statement new syntax in ABAP. (7.4+).

Concatenation new syntax( 7.4+ ).