<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: ENTER   KEY in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/enter-key/m-p/2753145#M640460</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello Madhusmita&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The following sample report ZUS_SDN_ALV_GRID_EDITABLE_1 shows how to realise your requirement using event DATA_CHANGED_FINISHED.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Run the report and change the values of the blue colum ZUAWA (sort key) to either '001', 002' or '003' and then push ENTER. The values of the green columns are adjusted.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Please note that I have not coded any &lt;B&gt;&lt;/B&gt;&lt;/P&gt;&lt;P&gt;validation&lt;/P&gt;logic. This, of course, should be mandatory for editable ALV grids.&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;*&amp;amp;---------------------------------------------------------------------*
*&amp;amp; Report  ZUS_SDN_ALV_GRID_EDITABLE_1
*&amp;amp;
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp; Screen '0100' contains no elements.
*&amp;amp; ok_code -&amp;gt; assigned to GD_OKCODE
*&amp;amp;
*&amp;amp; Flow logic:
*  PROCESS BEFORE OUTPUT.
*    MODULE STATUS_0100.
**
*  PROCESS AFTER INPUT.
*    MODULE USER_COMMAND_0100.
*&amp;amp;
*&amp;amp;---------------------------------------------------------------------*

REPORT  zus_sdn_alv_grid_editable_1.


TYPE-POOLS: abap.

DATA:
  gd_okcode        TYPE ui_func,
*
  go_docking       TYPE REF TO cl_gui_docking_container,
  go_grid          TYPE REF TO cl_gui_alv_grid,
  gs_layout        TYPE lvc_s_layo,
  gs_variant       TYPE disvariant.


DATA:
  gt_outtab        TYPE STANDARD TABLE OF knb1,
  gs_outtab        LIKE LINE OF gt_outtab.


INCLUDE zus_sdn_alv_grid_editable_1_c1.  " local class
" eventhandler ==&amp;gt; static methods of lcl_eventhandler



START-OF-SELECTION.

  SELECT        * FROM  knb1 INTO TABLE gt_outtab UP TO 40 ROWS
         WHERE  bukrs  = '1000'.

  " set default values
  gs_outtab-zuawa = '000'.
  gs_outtab-busab = '  '.
  gs_outtab-akont = '0000140000'.
  MODIFY gt_outtab FROM gs_outtab
      TRANSPORTING zuawa busab akont
    WHERE ( bukrs IS NOT INITIAL ).  " modify all entries


  PERFORM init_controls.




* Display data
  gs_layout-grid_title = 'Customers'.
  CALL METHOD go_grid-&amp;gt;set_table_for_first_display
    EXPORTING
      i_structure_name = 'KNB1'
      is_layout        = gs_layout
    CHANGING
      it_outtab        = gt_outtab
    EXCEPTIONS
      OTHERS           = 4.
  IF sy-subrc &amp;lt;&amp;gt; 0.
*   MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*              WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.

  PERFORM modify_fieldcatalog.

*§3.Optionally register ENTER to raise event DATA_CHANGED.
*   (Per default the user may check data by using the check icon).
  CALL METHOD go_grid-&amp;gt;register_edit_event
    EXPORTING
      i_event_id = cl_gui_alv_grid=&amp;gt;mc_evt_enter.

  SET HANDLER:
    lcl_eventhandler=&amp;gt;handle_data_changed_finished FOR go_grid.


* Link the docking container to the target dynpro
  CALL METHOD go_docking-&amp;gt;link
    EXPORTING
      repid                       = syst-repid
      dynnr                       = '0100'
*      CONTAINER                   =
    EXCEPTIONS
      OTHERS                      = 4.
  IF sy-subrc &amp;lt;&amp;gt; 0.
*   MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*              WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.


* NOTE: dynpro does not contain any elements
  CALL SCREEN '0100'.
* Flow logic of dynpro (does not contain any dynpro elements):
*
*PROCESS BEFORE OUTPUT.
*  MODULE STATUS_0100.
**
*PROCESS AFTER INPUT.
*  MODULE USER_COMMAND_0100.



END-OF-SELECTION.

*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Module  STATUS_0100  OUTPUT
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE status_0100 OUTPUT.
  SET PF-STATUS 'STATUS_0100'.  " contains push button "DETAIL"
*  SET TITLEBAR 'xxx'.


*** Refresh display of detail ALV list
**  CALL METHOD go_grid2-&amp;gt;refresh_table_display
***    EXPORTING
***      IS_STABLE      =
***      I_SOFT_REFRESH =
**    EXCEPTIONS
**      OTHERS         = 2.
**  IF sy-subrc &amp;lt;&amp;gt; 0.
***   MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
***              WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
**  ENDIF.


ENDMODULE.                 " STATUS_0100  OUTPUT

*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Module  USER_COMMAND_0100  INPUT
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE user_command_0100 INPUT.

  TRANSLATE gd_okcode TO UPPER CASE.
  CASE gd_okcode.
    WHEN 'BACK' OR
         'END'  OR
         'CANC'.
      SET SCREEN 0. LEAVE SCREEN.

*   User has pushed button "Display/Change"
    WHEN 'EDIT'.
      PERFORM toggle_display_edit.

    WHEN OTHERS.
      IF ( go_grid-&amp;gt;is_ready_for_input( ) = 1 ).  " editable
        go_grid-&amp;gt;check_changed_data( ).     " retrieve changed data
      ENDIF.
  ENDCASE.

  CLEAR: gd_okcode.

ENDMODULE.                 " USER_COMMAND_0100  INPUT

*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  TOGGLE_DISPLAY_EDIT
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  --&amp;gt;  p1        text
*  &amp;lt;--  p2        text
*----------------------------------------------------------------------*
FORM toggle_display_edit .

  IF ( go_grid-&amp;gt;is_ready_for_input( ) = 0 ).  " not editable
    go_grid-&amp;gt;set_ready_for_input( 1 ).  " editable

  ELSE.
    go_grid-&amp;gt;check_changed_data( ).     " retrieve changed data
    go_grid-&amp;gt;set_ready_for_input( 0 ).  " not editable
  ENDIF.

  go_grid-&amp;gt;refresh_table_display( ).

ENDFORM.                    " TOGGLE_DISPLAY_EDIT



*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  INIT_CONTROLS
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  --&amp;gt;  p1        text
*  &amp;lt;--  p2        text
*----------------------------------------------------------------------*
FORM init_controls .

* Create docking container
  CREATE OBJECT go_docking
    EXPORTING
      parent                      = cl_gui_container=&amp;gt;screen0
      ratio                       = 90
    EXCEPTIONS
      OTHERS                      = 6.
  IF sy-subrc &amp;lt;&amp;gt; 0.
*   MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*              WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.


  CALL METHOD go_docking-&amp;gt;set_extension
    EXPORTING
      extension  = 9999  " fill entire dynpro
    EXCEPTIONS
      cntl_error = 1
      OTHERS     = 2.
  IF sy-subrc &amp;lt;&amp;gt; 0.
*   MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*              WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.


  CREATE OBJECT go_grid
    EXPORTING
*      I_SHELLSTYLE      = 0
*      I_LIFETIME        =
      i_parent          = go_docking
*      I_APPL_EVENTS     = space
*      I_PARENTDBG       =
*      I_APPLOGPARENT    =
*      I_GRAPHICSPARENT  =
*      I_NAME            =
*      I_FCAT_COMPLETE   = SPACE
    EXCEPTIONS
      error_cntl_create = 1
      error_cntl_init   = 2
      error_cntl_link   = 3
      error_dp_create   = 4
      OTHERS            = 5.
  IF sy-subrc &amp;lt;&amp;gt; 0.
*   MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*              WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.


ENDFORM.                    " INIT_CONTROLS


*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  MODIFY_FIELDCATALOG
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  --&amp;gt;  p1        text
*  &amp;lt;--  p2        text
*----------------------------------------------------------------------*
FORM modify_fieldcatalog .
* define local data
  DATA:
    ls_fcat    TYPE lvc_s_fcat,
    lt_fcat    TYPE lvc_t_fcat.


  CALL METHOD go_grid-&amp;gt;get_frontend_fieldcatalog
    IMPORTING
      et_fieldcatalog = lt_fcat.


  " set non-key fields editable
  ls_fcat-edit = 'X'.
  MODIFY lt_fcat FROM ls_fcat
    TRANSPORTING edit
    WHERE ( key NE 'X' ).

  LOOP AT lt_fcat INTO ls_fcat.
    CASE ls_fcat-fieldname.
      WHEN 'ZUAWA'.
        ls_fcat-emphasize = 'C410'.

      WHEN 'BUSAB'  OR
           'AKONT'.
        ls_fcat-emphasize = 'C500'.

      WHEN OTHERS.
        CONTINUE.
    ENDCASE.

    MODIFY lt_fcat FROM ls_fcat.
  ENDLOOP.

  go_grid-&amp;gt;set_frontend_fieldcatalog( lt_fcat ).

  go_grid-&amp;gt;set_ready_for_input( 1 ).  " default = editable

  go_grid-&amp;gt;refresh_table_display( ).

ENDFORM.                    " MODIFY_FIELDCATALOG
&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;B&gt;&lt;/B&gt;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;Coding for include ZUS_SDN_ALV_GRID_EDITABLE_1_C1 (local class):&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;  Include           ZUS_SDN_ALV_GRID_EDITABLE_1_C1
*&amp;amp;---------------------------------------------------------------------*



*---------------------------------------------------------------------*
*       CLASS lcl_eventhandler DEFINITION
*---------------------------------------------------------------------*
*
*---------------------------------------------------------------------*
CLASS lcl_eventhandler DEFINITION.
  PUBLIC SECTION.

    CLASS-METHODS:
      handle_data_changed_finished FOR EVENT data_changed_finished
              OF cl_gui_alv_grid
        IMPORTING
          e_modified
          et_good_cells
          sender.  " grid instance that raised the event



ENDCLASS.                    "lcl_eventhandler DEFINITION




*---------------------------------------------------------------------*
*       CLASS lcl_eventhandler IMPLEMENTATION
*---------------------------------------------------------------------*
*
*---------------------------------------------------------------------*
CLASS lcl_eventhandler IMPLEMENTATION.

  METHOD handle_data_changed_finished.
*   define local data
    DATA:
      ls_stable    type lvc_s_stbl,
      ls_outtab    LIKE LINE OF gt_outtab.

    LOOP AT gt_outtab INTO ls_outtab.
      CASE ls_outtab-zuawa.
        WHEN '001'.
          ls_outtab-busab = 'K1'.
          ls_outtab-akont = '0000140010'.

        WHEN '002'.
          ls_outtab-busab = 'K2'.
          ls_outtab-akont = '0000140020'.

        WHEN '003'.
          ls_outtab-busab = 'K3'.
          ls_outtab-akont = '0000140030'.

        WHEN OTHERS.
          CONTINUE.
      ENDCASE.

      MODIFY gt_outtab FROM ls_outtab.
    ENDLOOP.

    ls_stable-row = abap_true.
    ls_stable-col = abap_true.
    CALL METHOD go_grid-&amp;gt;refresh_table_display
      EXPORTING
        IS_STABLE      = ls_stable
*        I_SOFT_REFRESH =
      EXCEPTIONS
        FINISHED       = 1
        others         = 2.
    IF sy-subrc &amp;lt;&amp;gt; 0.
*     MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*                WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.


  ENDMETHOD.                    "handle_data_changed_finished



ENDCLASS.                    "lcl_eventhandler IMPLEMENTATION&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;P&gt;  Uwe&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 04 Sep 2007 00:47:52 GMT</pubDate>
    <dc:creator>uwe_schieferstein</dc:creator>
    <dc:date>2007-09-04T00:47:52Z</dc:date>
    <item>
      <title>ENTER   KEY</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/enter-key/m-p/2753142#M640457</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi expert gurus,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;i have a ALV grid display.In the output there are 5 columns , 3  out of them are blank columns  like BATCH,QTY &amp;amp; DATE. output fields r like below.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;material prod_order &amp;lt;b&amp;gt;batch&amp;lt;/b&amp;gt; &amp;lt;b&amp;gt;qty&amp;lt;/b&amp;gt; &amp;lt;b&amp;gt;date&amp;lt;/b&amp;gt;&lt;/P&gt;&lt;P&gt;mat1      prod1&lt;/P&gt;&lt;P&gt;mat2      prod1&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The above is my ALV grid display.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      &lt;/P&gt;&lt;P&gt;        For first record, for mat1, if i  fill the BATCH column &amp;amp; press 'ENTER' then other two fields ( qty &amp;amp; date ) should be filled.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;       i want to know , which method will trigger when i press 'ENTER' key so that i can go inside my program &amp;amp; can come back to output with QTY &amp;amp; DATE for that batch.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;          i am very new to OO concept. can someone give clear  idea ??&lt;/P&gt;&lt;P&gt;     it's better if someone provides some code relating to METHOD for ENTER key.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ur answers will be rewarded.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks &amp;amp; Regards&lt;/P&gt;&lt;P&gt;madhusmita&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 03 Sep 2007 12:27:01 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/enter-key/m-p/2753142#M640457</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-09-03T12:27:01Z</dc:date>
    </item>
    <item>
      <title>Re: ENTER   KEY</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/enter-key/m-p/2753143#M640458</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;When u press enter the follwoing code gets fired: &lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;
 METHOD handle_item_changed_finished.
   DATA: wal_out_tab  TYPE types_out_tab.
   PERFORM item_data_changed_finished USING e_modified c_stable.

-- Reset green/warning simulated rows in data_changed---------------*
   CLEAR wal_out_tab.
   MODIFY t_outtab FROM wal_out_tab TRANSPORTING ins_check
   WHERE ins_check = c_simulate AND
         mesg_status &amp;lt;&amp;gt; icon_locked.
&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Hope That Helps&lt;/P&gt;&lt;P&gt;Anirban M.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 03 Sep 2007 12:41:10 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/enter-key/m-p/2753143#M640458</guid>
      <dc:creator>former_member480923</dc:creator>
      <dc:date>2007-09-03T12:41:10Z</dc:date>
    </item>
    <item>
      <title>Re: ENTER   KEY</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/enter-key/m-p/2753144#M640459</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi ,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;can u give me some detail coding for that enter key to be triggered???&lt;/P&gt;&lt;P&gt;i m very new to OO ABAP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 03 Sep 2007 16:01:27 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/enter-key/m-p/2753144#M640459</guid>
      <dc:creator>former_member190312</dc:creator>
      <dc:date>2007-09-03T16:01:27Z</dc:date>
    </item>
    <item>
      <title>Re: ENTER   KEY</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/enter-key/m-p/2753145#M640460</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello Madhusmita&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The following sample report ZUS_SDN_ALV_GRID_EDITABLE_1 shows how to realise your requirement using event DATA_CHANGED_FINISHED.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Run the report and change the values of the blue colum ZUAWA (sort key) to either '001', 002' or '003' and then push ENTER. The values of the green columns are adjusted.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Please note that I have not coded any &lt;B&gt;&lt;/B&gt;&lt;/P&gt;&lt;P&gt;validation&lt;/P&gt;logic. This, of course, should be mandatory for editable ALV grids.&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;*&amp;amp;---------------------------------------------------------------------*
*&amp;amp; Report  ZUS_SDN_ALV_GRID_EDITABLE_1
*&amp;amp;
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp; Screen '0100' contains no elements.
*&amp;amp; ok_code -&amp;gt; assigned to GD_OKCODE
*&amp;amp;
*&amp;amp; Flow logic:
*  PROCESS BEFORE OUTPUT.
*    MODULE STATUS_0100.
**
*  PROCESS AFTER INPUT.
*    MODULE USER_COMMAND_0100.
*&amp;amp;
*&amp;amp;---------------------------------------------------------------------*

REPORT  zus_sdn_alv_grid_editable_1.


TYPE-POOLS: abap.

DATA:
  gd_okcode        TYPE ui_func,
*
  go_docking       TYPE REF TO cl_gui_docking_container,
  go_grid          TYPE REF TO cl_gui_alv_grid,
  gs_layout        TYPE lvc_s_layo,
  gs_variant       TYPE disvariant.


DATA:
  gt_outtab        TYPE STANDARD TABLE OF knb1,
  gs_outtab        LIKE LINE OF gt_outtab.


INCLUDE zus_sdn_alv_grid_editable_1_c1.  " local class
" eventhandler ==&amp;gt; static methods of lcl_eventhandler



START-OF-SELECTION.

  SELECT        * FROM  knb1 INTO TABLE gt_outtab UP TO 40 ROWS
         WHERE  bukrs  = '1000'.

  " set default values
  gs_outtab-zuawa = '000'.
  gs_outtab-busab = '  '.
  gs_outtab-akont = '0000140000'.
  MODIFY gt_outtab FROM gs_outtab
      TRANSPORTING zuawa busab akont
    WHERE ( bukrs IS NOT INITIAL ).  " modify all entries


  PERFORM init_controls.




* Display data
  gs_layout-grid_title = 'Customers'.
  CALL METHOD go_grid-&amp;gt;set_table_for_first_display
    EXPORTING
      i_structure_name = 'KNB1'
      is_layout        = gs_layout
    CHANGING
      it_outtab        = gt_outtab
    EXCEPTIONS
      OTHERS           = 4.
  IF sy-subrc &amp;lt;&amp;gt; 0.
*   MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*              WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.

  PERFORM modify_fieldcatalog.

*§3.Optionally register ENTER to raise event DATA_CHANGED.
*   (Per default the user may check data by using the check icon).
  CALL METHOD go_grid-&amp;gt;register_edit_event
    EXPORTING
      i_event_id = cl_gui_alv_grid=&amp;gt;mc_evt_enter.

  SET HANDLER:
    lcl_eventhandler=&amp;gt;handle_data_changed_finished FOR go_grid.


* Link the docking container to the target dynpro
  CALL METHOD go_docking-&amp;gt;link
    EXPORTING
      repid                       = syst-repid
      dynnr                       = '0100'
*      CONTAINER                   =
    EXCEPTIONS
      OTHERS                      = 4.
  IF sy-subrc &amp;lt;&amp;gt; 0.
*   MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*              WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.


* NOTE: dynpro does not contain any elements
  CALL SCREEN '0100'.
* Flow logic of dynpro (does not contain any dynpro elements):
*
*PROCESS BEFORE OUTPUT.
*  MODULE STATUS_0100.
**
*PROCESS AFTER INPUT.
*  MODULE USER_COMMAND_0100.



END-OF-SELECTION.

*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Module  STATUS_0100  OUTPUT
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE status_0100 OUTPUT.
  SET PF-STATUS 'STATUS_0100'.  " contains push button "DETAIL"
*  SET TITLEBAR 'xxx'.


*** Refresh display of detail ALV list
**  CALL METHOD go_grid2-&amp;gt;refresh_table_display
***    EXPORTING
***      IS_STABLE      =
***      I_SOFT_REFRESH =
**    EXCEPTIONS
**      OTHERS         = 2.
**  IF sy-subrc &amp;lt;&amp;gt; 0.
***   MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
***              WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
**  ENDIF.


ENDMODULE.                 " STATUS_0100  OUTPUT

*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Module  USER_COMMAND_0100  INPUT
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE user_command_0100 INPUT.

  TRANSLATE gd_okcode TO UPPER CASE.
  CASE gd_okcode.
    WHEN 'BACK' OR
         'END'  OR
         'CANC'.
      SET SCREEN 0. LEAVE SCREEN.

*   User has pushed button "Display/Change"
    WHEN 'EDIT'.
      PERFORM toggle_display_edit.

    WHEN OTHERS.
      IF ( go_grid-&amp;gt;is_ready_for_input( ) = 1 ).  " editable
        go_grid-&amp;gt;check_changed_data( ).     " retrieve changed data
      ENDIF.
  ENDCASE.

  CLEAR: gd_okcode.

ENDMODULE.                 " USER_COMMAND_0100  INPUT

*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  TOGGLE_DISPLAY_EDIT
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  --&amp;gt;  p1        text
*  &amp;lt;--  p2        text
*----------------------------------------------------------------------*
FORM toggle_display_edit .

  IF ( go_grid-&amp;gt;is_ready_for_input( ) = 0 ).  " not editable
    go_grid-&amp;gt;set_ready_for_input( 1 ).  " editable

  ELSE.
    go_grid-&amp;gt;check_changed_data( ).     " retrieve changed data
    go_grid-&amp;gt;set_ready_for_input( 0 ).  " not editable
  ENDIF.

  go_grid-&amp;gt;refresh_table_display( ).

ENDFORM.                    " TOGGLE_DISPLAY_EDIT



*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  INIT_CONTROLS
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  --&amp;gt;  p1        text
*  &amp;lt;--  p2        text
*----------------------------------------------------------------------*
FORM init_controls .

* Create docking container
  CREATE OBJECT go_docking
    EXPORTING
      parent                      = cl_gui_container=&amp;gt;screen0
      ratio                       = 90
    EXCEPTIONS
      OTHERS                      = 6.
  IF sy-subrc &amp;lt;&amp;gt; 0.
*   MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*              WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.


  CALL METHOD go_docking-&amp;gt;set_extension
    EXPORTING
      extension  = 9999  " fill entire dynpro
    EXCEPTIONS
      cntl_error = 1
      OTHERS     = 2.
  IF sy-subrc &amp;lt;&amp;gt; 0.
*   MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*              WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.


  CREATE OBJECT go_grid
    EXPORTING
*      I_SHELLSTYLE      = 0
*      I_LIFETIME        =
      i_parent          = go_docking
*      I_APPL_EVENTS     = space
*      I_PARENTDBG       =
*      I_APPLOGPARENT    =
*      I_GRAPHICSPARENT  =
*      I_NAME            =
*      I_FCAT_COMPLETE   = SPACE
    EXCEPTIONS
      error_cntl_create = 1
      error_cntl_init   = 2
      error_cntl_link   = 3
      error_dp_create   = 4
      OTHERS            = 5.
  IF sy-subrc &amp;lt;&amp;gt; 0.
*   MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*              WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.


ENDFORM.                    " INIT_CONTROLS


*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  MODIFY_FIELDCATALOG
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  --&amp;gt;  p1        text
*  &amp;lt;--  p2        text
*----------------------------------------------------------------------*
FORM modify_fieldcatalog .
* define local data
  DATA:
    ls_fcat    TYPE lvc_s_fcat,
    lt_fcat    TYPE lvc_t_fcat.


  CALL METHOD go_grid-&amp;gt;get_frontend_fieldcatalog
    IMPORTING
      et_fieldcatalog = lt_fcat.


  " set non-key fields editable
  ls_fcat-edit = 'X'.
  MODIFY lt_fcat FROM ls_fcat
    TRANSPORTING edit
    WHERE ( key NE 'X' ).

  LOOP AT lt_fcat INTO ls_fcat.
    CASE ls_fcat-fieldname.
      WHEN 'ZUAWA'.
        ls_fcat-emphasize = 'C410'.

      WHEN 'BUSAB'  OR
           'AKONT'.
        ls_fcat-emphasize = 'C500'.

      WHEN OTHERS.
        CONTINUE.
    ENDCASE.

    MODIFY lt_fcat FROM ls_fcat.
  ENDLOOP.

  go_grid-&amp;gt;set_frontend_fieldcatalog( lt_fcat ).

  go_grid-&amp;gt;set_ready_for_input( 1 ).  " default = editable

  go_grid-&amp;gt;refresh_table_display( ).

ENDFORM.                    " MODIFY_FIELDCATALOG
&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;B&gt;&lt;/B&gt;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;Coding for include ZUS_SDN_ALV_GRID_EDITABLE_1_C1 (local class):&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;  Include           ZUS_SDN_ALV_GRID_EDITABLE_1_C1
*&amp;amp;---------------------------------------------------------------------*



*---------------------------------------------------------------------*
*       CLASS lcl_eventhandler DEFINITION
*---------------------------------------------------------------------*
*
*---------------------------------------------------------------------*
CLASS lcl_eventhandler DEFINITION.
  PUBLIC SECTION.

    CLASS-METHODS:
      handle_data_changed_finished FOR EVENT data_changed_finished
              OF cl_gui_alv_grid
        IMPORTING
          e_modified
          et_good_cells
          sender.  " grid instance that raised the event



ENDCLASS.                    "lcl_eventhandler DEFINITION




*---------------------------------------------------------------------*
*       CLASS lcl_eventhandler IMPLEMENTATION
*---------------------------------------------------------------------*
*
*---------------------------------------------------------------------*
CLASS lcl_eventhandler IMPLEMENTATION.

  METHOD handle_data_changed_finished.
*   define local data
    DATA:
      ls_stable    type lvc_s_stbl,
      ls_outtab    LIKE LINE OF gt_outtab.

    LOOP AT gt_outtab INTO ls_outtab.
      CASE ls_outtab-zuawa.
        WHEN '001'.
          ls_outtab-busab = 'K1'.
          ls_outtab-akont = '0000140010'.

        WHEN '002'.
          ls_outtab-busab = 'K2'.
          ls_outtab-akont = '0000140020'.

        WHEN '003'.
          ls_outtab-busab = 'K3'.
          ls_outtab-akont = '0000140030'.

        WHEN OTHERS.
          CONTINUE.
      ENDCASE.

      MODIFY gt_outtab FROM ls_outtab.
    ENDLOOP.

    ls_stable-row = abap_true.
    ls_stable-col = abap_true.
    CALL METHOD go_grid-&amp;gt;refresh_table_display
      EXPORTING
        IS_STABLE      = ls_stable
*        I_SOFT_REFRESH =
      EXCEPTIONS
        FINISHED       = 1
        others         = 2.
    IF sy-subrc &amp;lt;&amp;gt; 0.
*     MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*                WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.


  ENDMETHOD.                    "handle_data_changed_finished



ENDCLASS.                    "lcl_eventhandler IMPLEMENTATION&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;P&gt;  Uwe&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 04 Sep 2007 00:47:52 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/enter-key/m-p/2753145#M640460</guid>
      <dc:creator>uwe_schieferstein</dc:creator>
      <dc:date>2007-09-04T00:47:52Z</dc:date>
    </item>
    <item>
      <title>Re: ENTER   KEY</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/enter-key/m-p/2753146#M640461</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;To know when user presses 'ENTER' key, first we have to register this key as below&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Set cell modified to trigger data_changed&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    CALL METHOD go_alv_grid-&amp;gt;register_edit_event&lt;/P&gt;&lt;P&gt;                EXPORTING&lt;/P&gt;&lt;P&gt;                   i_event_id = cl_gui_alv_grid=&amp;gt;MC_EVT_ENTER.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Here go_alv_grid is an instance of Class CL_GUI_ALV_GRID&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;You have to handle the event DATA_CHANGED of Class CL_GUI_ALV_GRID to do validation etc.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;For e.g&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LOOP AT er_data_changed-&amp;gt;mt_mod_cells INTO wa_mod_cell.&lt;/P&gt;&lt;P&gt;    ASSIGN er_data_changed-&amp;gt;mp_mod_rows-&amp;gt;* TO &amp;lt;fs&amp;gt;.&lt;/P&gt;&lt;P&gt;    READ TABLE &amp;lt;fs&amp;gt; INTO wa_output INDEX wa_mod_cell-tabix.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Update the output table with new values&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    MODIFY i_output FROM wa_output INDEX wa_mod_cell-row_id.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Do validations.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    IF i_output-field1 IS INITIAL.&lt;/P&gt;&lt;P&gt;       MESSAGE e000(e1).&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;P&gt;Kesava&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 04 Sep 2007 14:13:23 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/enter-key/m-p/2753146#M640461</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-09-04T14:13:23Z</dc:date>
    </item>
  </channel>
</rss>

