11
Editable ALV with save functionality uisng OOABAP Step1. The code : CLASS lcl_event_handle DEFINITION. PUBLIC SECTION. CLASS-METHODS : hndl_data_changed FOR EVENT data_changed OF cl_gui_alv_grid IMPORTING er_data_changed. ENDCLASS. CLASS lcl_event_handle IMPLEMENTATION. METHOD hndl_data_changed. DATA : lt_scarr TYPE TABLE OF scarr. FIELD-SYMBOLS : <fs> TYPE any . ASSIGN er_data_changed->mp_mod_rows->* TO <fs>. lt_scarr = <fs>. IF lt_scarr IS NOT INITIAL. MODIFY scarr FROM TABLE lt_scarr. IF sy-subrc = 0. COMMIT WORK. MESSAGE 'Database update successful' TYPE 'S'. ENDIF. ENDIF. ENDMETHOD. ENDCLASS. CLASS lcl_main DEFINITION. PUBLIC SECTION. CLASS-DATA : lo_grid TYPE REF TO cl_gui_alv_grid, lo_cust TYPE REF TO cl_gui_custom_container, lo_handle TYPE REF TO lcl_event_handle, lt_scarr TYPE TABLE OF scarr, ls_layout TYPE lvc_s_layo. CLASS-METHODS: run, get_data, prepare_layout, display_alv, user_command. ENDCLASS. CLASS lcl_main IMPLEMENTATION. METHOD run. CALL METHOD lcl_main=>get_data. CALL METHOD lcl_main=>prepare_layout. CALL METHOD lcl_main=>display_alv. ENDMETHOD.

fix-and-keep.comfix-and-keep.com/wp-content/uploads/2017/07/Editable-ALV... · Web viewabap_true. ENDMETHOD. METHOD display_alv. IF lo_cust IS NOT BOUND. CREATE OBJECT lo_cust EXPORTING

  • Upload
    others

  • View
    5

  • Download
    0

Embed Size (px)

Citation preview

Page 1: fix-and-keep.comfix-and-keep.com/wp-content/uploads/2017/07/Editable-ALV... · Web viewabap_true. ENDMETHOD. METHOD display_alv. IF lo_cust IS NOT BOUND. CREATE OBJECT lo_cust EXPORTING

Editable ALV with save functionality uisng OOABAPStep1.  The code :

CLASS lcl_event_handle DEFINITION.  PUBLIC SECTION.    CLASS-METHODS : hndl_data_changed                                FOR EVENT data_changed                                OF cl_gui_alv_grid                                IMPORTING er_data_changed.ENDCLASS.CLASS lcl_event_handle IMPLEMENTATION.  METHOD hndl_data_changed.    DATA : lt_scarr TYPE TABLE OF scarr.    FIELD-SYMBOLS : <fs> TYPE any .    ASSIGN er_data_changed->mp_mod_rows->* TO <fs>.    lt_scarr = <fs>.    IF lt_scarr IS NOT INITIAL.      MODIFY scarr FROM TABLE lt_scarr.      IF sy-subrc = 0.        COMMIT WORK.        MESSAGE 'Database update successful' TYPE 'S'.      ENDIF.    ENDIF.

  ENDMETHOD.ENDCLASS.

CLASS lcl_main DEFINITION.  PUBLIC SECTION.

    CLASS-DATA : lo_grid   TYPE REF TO cl_gui_alv_grid,                          lo_cust   TYPE REF TO cl_gui_custom_container,                          lo_handle TYPE REF TO lcl_event_handle,                          lt_scarr  TYPE TABLE OF scarr,                          ls_layout TYPE lvc_s_layo.

    CLASS-METHODS: run,                               get_data,                               prepare_layout,                               display_alv,                              user_command.

ENDCLASS.

CLASS lcl_main IMPLEMENTATION.  METHOD run.    CALL METHOD lcl_main=>get_data.    CALL METHOD lcl_main=>prepare_layout.    CALL METHOD lcl_main=>display_alv.  ENDMETHOD.

  METHOD get_data.    SELECT * FROM scarr INTO TABLE lt_scarr.  ENDMETHOD.

  METHOD prepare_layout.    ls_layout-edit = abap_true.  ENDMETHOD.

  METHOD display_alv.

Page 2: fix-and-keep.comfix-and-keep.com/wp-content/uploads/2017/07/Editable-ALV... · Web viewabap_true. ENDMETHOD. METHOD display_alv. IF lo_cust IS NOT BOUND. CREATE OBJECT lo_cust EXPORTING

    IF lo_cust IS NOT BOUND.      CREATE OBJECT lo_cust        EXPORTING          container_name = 'CONT'.

    ENDIF.

    IF lo_grid IS NOT BOUND.      CREATE OBJECT lo_grid        EXPORTING          i_parent = lo_cust.

    ENDIF.

    IF lo_handle IS NOT BOUND.      CREATE OBJECT lo_handle.    ENDIF.

    IF lo_handle IS BOUND.      SET HANDLER lo_handle->hndl_data_changed FOR lo_grid.    ENDIF.

    CALL METHOD lo_grid->set_table_for_first_display      EXPORTING        i_structure_name = 'SCARR'        is_layout        = ls_layout      CHANGING        it_outtab        = lt_scarr.

  ENDMETHOD.

  METHOD user_command.    CASE sy-ucomm.      WHEN 'BACK' OR 'EXIT' OR 'CANCEL'.        LEAVE TO SCREEN 0.      WHEN 'SAVE'.        DATA lv_valid.        DATA lv_refresh.        CALL METHOD lo_grid->check_changed_data          IMPORTING            e_valid = lv_valid.  " Entries are Consistent      WHEN OTHERS.    ENDCASE.  ENDMETHOD.

ENDCLASS.

START-OF-SELECTION.  CALL SCREEN 0001.*&---------------------------------------------------------------------**&      Module  STATUS_0001  OUTPUT*&---------------------------------------------------------------------*MODULE status_0001 OUTPUT.  SET PF-STATUS 'STATUS'.  SET TITLEBAR 'TITLE'.  CALL METHOD lcl_main=>run.ENDMODULE.*&---------------------------------------------------------------------**&      Module  USER_COMMAND_0001  INPUT*&---------------------------------------------------------------------*

MODULE user_command_0001 INPUT.  CALL METHOD lcl_main=>user_command.ENDMODULE.

Page 3: fix-and-keep.comfix-and-keep.com/wp-content/uploads/2017/07/Editable-ALV... · Web viewabap_true. ENDMETHOD. METHOD display_alv. IF lo_cust IS NOT BOUND. CREATE OBJECT lo_cust EXPORTING

--------------------------------------------------------------------------------------------Step2. Program code with screen shots.

Page 5: fix-and-keep.comfix-and-keep.com/wp-content/uploads/2017/07/Editable-ALV... · Web viewabap_true. ENDMETHOD. METHOD display_alv. IF lo_cust IS NOT BOUND. CREATE OBJECT lo_cust EXPORTING

Step2. Double click on the SET PF-STATUS 'STATUS' , and provide below function keys and activate it.

Step3. Double click on the line SET TITLEBAR 'TITLE' and define it.

Page 7: fix-and-keep.comfix-and-keep.com/wp-content/uploads/2017/07/Editable-ALV... · Web viewabap_true. ENDMETHOD. METHOD display_alv. IF lo_cust IS NOT BOUND. CREATE OBJECT lo_cust EXPORTING

Step6. Execute the program.

Step7.  The ALV displayed in editable mode.

Step8. The back end table records.