<?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: how data_chnaged event will work in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/how-data-chnaged-event-will-work/m-p/2816962#M658826</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Perhaps the following sample report &amp;lt;b&amp;gt;ZUS_SDN_ALVGRID_EDITABLE_3&amp;lt;/b&amp;gt; may be useful.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp; Report  ZUS_SDN_ALVGRID_EDITABLE_3
*&amp;amp;
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;
*&amp;amp;
*&amp;amp;---------------------------------------------------------------------*

REPORT  zus_sdn_alvgrid_editable_3.


TYPE-POOLS: abap.

DATA:
  gd_repid         TYPE syrepid,
  gd_okcode        TYPE ui_func,
*
  gs_layout        TYPE lvc_s_layo,
  gt_fcat          TYPE lvc_t_fcat,
  go_docking       TYPE REF TO cl_gui_docking_container,
  go_grid          TYPE REF TO cl_gui_alv_grid.


TYPES: BEGIN OF ty_s_outtab.
INCLUDE TYPE makt  AS data.
TYPES:  celltab    TYPE lvc_t_styl.
TYPES: END OF ty_s_outtab.

DATA:
  gs_outtab        TYPE ty_s_outtab,
  gt_outtab        TYPE STANDARD TABLE OF ty_s_outtab
                   WITH DEFAULT KEY.



*---------------------------------------------------------------------*
*       CLASS lcl_eventhandler DEFINITION
*---------------------------------------------------------------------*
*
*---------------------------------------------------------------------*
CLASS lcl_eventhandler DEFINITION.

  PUBLIC SECTION.

    CLASS-METHODS:
      handle_data_changed
        FOR EVENT data_changed OF cl_gui_alv_grid
        IMPORTING
          er_data_changed
          e_onf4
          e_onf4_before
          e_onf4_after
          e_ucomm
          sender.


ENDCLASS.                    "lcl_eventhandler DEFINITION


*---------------------------------------------------------------------*
*       CLASS lcl_eventhandler IMPLEMENTATION
*---------------------------------------------------------------------*
*
*---------------------------------------------------------------------*
CLASS lcl_eventhandler IMPLEMENTATION.

  METHOD handle_data_changed.
*   define local data
    DATA:
      ld_idx             TYPE i,
      ls_outtab          LIKE LINE OF gt_outtab.

    "    perform REFRESH_LIST.  " update ALV list here or at PAI

*   Trigger PAI -&amp;gt; refresh ALV list
    CALL METHOD cl_gui_cfw=&amp;gt;set_new_ok_code('REFRESH' ).


  ENDMETHOD.                    "handle_data_changed

ENDCLASS.                    "lcl_eventhandler IMPLEMENTATION




START-OF-SELECTION.

  DO 10 TIMES.
    APPEND INITIAL LINE TO gt_outtab.
  ENDDO.





* 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.


* Create ALV grid
  CREATE OBJECT go_grid
    EXPORTING
      i_parent          = go_docking
    EXCEPTIONS
      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.




* Build fieldcatalog
  PERFORM build_fieldcatalog.

  PERFORM set_layout.

  SET HANDLER:
    lcl_eventhandler=&amp;gt;handle_data_changed FOR go_grid.


* Display data
  CALL METHOD go_grid-&amp;gt;set_table_for_first_display
    EXPORTING
      is_layout       = gs_layout
    CHANGING
      it_outtab       = gt_outtab
      it_fieldcatalog = gt_fcat
    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.



* Link the docking container to the target dynpro
  gd_repid = syst-repid.
  CALL METHOD go_docking-&amp;gt;link
    EXPORTING
      repid                       = gd_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.


* ok-code field = GD_OKCODE
  CALL SCREEN '0100'.
* Flow logic (no elements on screen):
*  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'.
*  SET TITLEBAR 'xxx'.

**      CALL METHOD go_grid1-&amp;gt;refresh_table_display
***        EXPORTING
***          IS_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.

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.

* Fetch changes on ALV grid
  go_grid-&amp;gt;check_changed_data( ).


  CASE gd_okcode.
    WHEN 'BACK' OR
         'END'  OR
         'CANC'.
      SET SCREEN 0. LEAVE SCREEN.


    WHEN OTHERS.
  ENDCASE.

  PERFORM refresh_list.
  CALL METHOD go_grid-&amp;gt;refresh_table_display
*      EXPORTING
*        IS_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.


  CLEAR: gd_okcode.

ENDMODULE.                 " USER_COMMAND_0100  INPUT


*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  BUILD_FIELDCATALOG_KNB1
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  --&amp;gt;  p1        text
*  &amp;lt;--  p2        text
*----------------------------------------------------------------------*
FORM build_fieldcatalog .
* define local data
  DATA:
    ls_fcat        TYPE lvc_s_fcat.



  CALL FUNCTION 'LVC_FIELDCATALOG_MERGE'
    EXPORTING
*     I_BUFFER_ACTIVE              =
      i_structure_name             = 'MAKT'
*     I_CLIENT_NEVER_DISPLAY       = 'X'
*     I_BYPASSING_BUFFER           =
*     I_INTERNAL_TABNAME           =
    CHANGING
      ct_fieldcat                  = gt_fcat
    EXCEPTIONS
      inconsistent_interface       = 1
      program_error                = 2
      OTHERS                       = 3.
  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.





  LOOP AT gt_fcat INTO ls_fcat
                  WHERE ( fieldname = 'MATNR' ).
    ls_fcat-edit    = abap_true.
    MODIFY gt_fcat FROM ls_fcat.
  ENDLOOP.


ENDFORM.                    " BUILD_FIELDCATALOG


*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  SET_LAYOUT
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  --&amp;gt;  p1        text
*  &amp;lt;--  p2        text
*----------------------------------------------------------------------*
FORM set_layout .

  CLEAR: gs_layout.

  gs_layout-cwidth_opt = abap_true.
  gs_layout-zebra      = abap_true.

  gs_layout-stylefname = 'CELLTAB'.

ENDFORM.                    " SET_LAYOUT
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  HANDLE_CHANGED_DATA
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  --&amp;gt;  p1        text
*  &amp;lt;--  p2        text
*----------------------------------------------------------------------*
FORM handle_changed_data .

  lcl_eventhandler=&amp;gt;handle_data_changed( sender = go_grid ).

ENDFORM.                    " HANDLE_CHANGED_DATA
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  REFRESH_LIST
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  --&amp;gt;  p1        text
*  &amp;lt;--  p2        text
*----------------------------------------------------------------------*
FORM refresh_list .
*   define local data
  DATA:
    ld_idx             TYPE i,
    ls_outtab          LIKE LINE OF gt_outtab.


  LOOP AT gt_outtab INTO ls_outtab.
    ld_idx = syst-tabix.

    IF ( ls_outtab-matnr IS INITIAL ).
      CLEAR: ls_outtab-spras,
             ls_outtab-maktx,
             ls_outtab-maktg.

    ELSE.
      SELECT SINGLE * FROM  makt INTO ls_outtab-data
             WHERE  matnr  = ls_outtab-matnr
             AND    spras  = syst-langu.
      IF ( syst-subrc NE 0 ).
        CLEAR: ls_outtab.
      ENDIF.

    ENDIF.

    MODIFY gt_outtab FROM ls_outtab INDEX ld_idx.
  ENDLOOP.

ENDFORM.                    " REFRESH_LIST&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&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;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 02 Oct 2007 03:38:08 GMT</pubDate>
    <dc:creator>uwe_schieferstein</dc:creator>
    <dc:date>2007-10-02T03:38:08Z</dc:date>
    <item>
      <title>how data_chnaged event will work</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/how-data-chnaged-event-will-work/m-p/2816960#M658824</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;hi all,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;i had requirement like when ever i give the material in input field,&lt;/P&gt;&lt;P&gt;dynamically i am calling event data_changed, where it  triggers&lt;/P&gt;&lt;P&gt;data_changed event.&lt;/P&gt;&lt;P&gt;By that the material details should display int other output fields .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;but it is not happening with this code , will anybody help me in this issue.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;REPORT zspot_test1 .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TABLES : makt.&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      CLASS :  LCL_EVENT_HAND&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      ........                                                      *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CLASS : lcl_event_handler DEFINITION.&lt;/P&gt;&lt;P&gt;  PUBLIC SECTION.&lt;/P&gt;&lt;P&gt;    METHODS : data_change FOR EVENT  data_changed&lt;/P&gt;&lt;P&gt;                  OF cl_gui_alv_grid IMPORTING er_data_changed.&lt;/P&gt;&lt;P&gt;ENDCLASS.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      CLASS :  LCL_EVENT_HAND&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      ........                                                      *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CLASS : lcl_event_handler IMPLEMENTATION.&lt;/P&gt;&lt;P&gt;  METHOD : data_change.&lt;/P&gt;&lt;P&gt;    DATA: ls_good TYPE lvc_s_modi, gv_matnr TYPE matnr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    LOOP AT er_data_changed-&amp;gt;mt_good_cells INTO ls_good.&lt;/P&gt;&lt;P&gt;      CASE ls_good-fieldname.&lt;/P&gt;&lt;P&gt;          WHEN'GV_MATNR'.&lt;/P&gt;&lt;P&gt;          IF NOT gv_matnr IS INITIAL.&lt;/P&gt;&lt;P&gt;            SELECT SINGLE * FROM makt INTO makt WHERE matnr = gv_matnr.&lt;/P&gt;&lt;P&gt;          ENDIF.&lt;/P&gt;&lt;P&gt;      ENDCASE.&lt;/P&gt;&lt;P&gt;    ENDLOOP..&lt;/P&gt;&lt;P&gt;  ENDMETHOD.&lt;/P&gt;&lt;P&gt;ENDCLASS.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA : ev1 TYPE REF TO lcl_event_handler.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;START-OF-SELECTION.&lt;/P&gt;&lt;P&gt;  CREATE OBJECT ev1.&lt;/P&gt;&lt;P&gt;  SET HANDLER ev1-&amp;gt;data_change  FOR ALL INSTANCES.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;END-OF-SELECTION.&lt;/P&gt;&lt;P&gt;  CALL SCREEN 100.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Module  USER_COMMAND_0100  INPUT&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;MODULE user_command_0100 INPUT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA : okcode TYPE syucomm, gv_matnr TYPE matnr.&lt;/P&gt;&lt;P&gt;*if not gv_matnr is initial.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CASE okcode.&lt;/P&gt;&lt;P&gt;    WHEN 'ENTE'.&lt;/P&gt;&lt;P&gt;      SELECT SINGLE * FROM makt .&lt;/P&gt;&lt;P&gt;    WHEN 'SAVE'.&lt;/P&gt;&lt;P&gt;      LEAVE TO SCREEN 0.&lt;/P&gt;&lt;P&gt;  ENDCASE.&lt;/P&gt;&lt;P&gt;*endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDMODULE.                 " USER_COMMAND_0100  INPU&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Module  STATUS_0100  OUTPUT&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;MODULE status_0100 OUTPUT.&lt;/P&gt;&lt;P&gt;  SET PF-STATUS 'MAIN100'.&lt;/P&gt;&lt;P&gt;  SET TITLEBAR 'Materials'&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;its urgent please.. let me know anyone&lt;/P&gt;&lt;P&gt;ENDMODULE.                 " STATUS_0100  OUTPUT&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 30 Sep 2007 19:48:10 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/how-data-chnaged-event-will-work/m-p/2816960#M658824</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-09-30T19:48:10Z</dc:date>
    </item>
    <item>
      <title>Re: how data_chnaged event will work</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/how-data-chnaged-event-will-work/m-p/2816961#M658825</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Madhavi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;You have to call the method CHECK_CHANGED_DATA of class CL_GUI_ALV_GRID for triggering the event  DATA_CHANGED.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Try calling the method.  This will help u in solving your problem.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 01 Oct 2007 06:42:44 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/how-data-chnaged-event-will-work/m-p/2816961#M658825</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-10-01T06:42:44Z</dc:date>
    </item>
    <item>
      <title>Re: how data_chnaged event will work</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/how-data-chnaged-event-will-work/m-p/2816962#M658826</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Perhaps the following sample report &amp;lt;b&amp;gt;ZUS_SDN_ALVGRID_EDITABLE_3&amp;lt;/b&amp;gt; may be useful.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp; Report  ZUS_SDN_ALVGRID_EDITABLE_3
*&amp;amp;
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;
*&amp;amp;
*&amp;amp;---------------------------------------------------------------------*

REPORT  zus_sdn_alvgrid_editable_3.


TYPE-POOLS: abap.

DATA:
  gd_repid         TYPE syrepid,
  gd_okcode        TYPE ui_func,
*
  gs_layout        TYPE lvc_s_layo,
  gt_fcat          TYPE lvc_t_fcat,
  go_docking       TYPE REF TO cl_gui_docking_container,
  go_grid          TYPE REF TO cl_gui_alv_grid.


TYPES: BEGIN OF ty_s_outtab.
INCLUDE TYPE makt  AS data.
TYPES:  celltab    TYPE lvc_t_styl.
TYPES: END OF ty_s_outtab.

DATA:
  gs_outtab        TYPE ty_s_outtab,
  gt_outtab        TYPE STANDARD TABLE OF ty_s_outtab
                   WITH DEFAULT KEY.



*---------------------------------------------------------------------*
*       CLASS lcl_eventhandler DEFINITION
*---------------------------------------------------------------------*
*
*---------------------------------------------------------------------*
CLASS lcl_eventhandler DEFINITION.

  PUBLIC SECTION.

    CLASS-METHODS:
      handle_data_changed
        FOR EVENT data_changed OF cl_gui_alv_grid
        IMPORTING
          er_data_changed
          e_onf4
          e_onf4_before
          e_onf4_after
          e_ucomm
          sender.


ENDCLASS.                    "lcl_eventhandler DEFINITION


*---------------------------------------------------------------------*
*       CLASS lcl_eventhandler IMPLEMENTATION
*---------------------------------------------------------------------*
*
*---------------------------------------------------------------------*
CLASS lcl_eventhandler IMPLEMENTATION.

  METHOD handle_data_changed.
*   define local data
    DATA:
      ld_idx             TYPE i,
      ls_outtab          LIKE LINE OF gt_outtab.

    "    perform REFRESH_LIST.  " update ALV list here or at PAI

*   Trigger PAI -&amp;gt; refresh ALV list
    CALL METHOD cl_gui_cfw=&amp;gt;set_new_ok_code('REFRESH' ).


  ENDMETHOD.                    "handle_data_changed

ENDCLASS.                    "lcl_eventhandler IMPLEMENTATION




START-OF-SELECTION.

  DO 10 TIMES.
    APPEND INITIAL LINE TO gt_outtab.
  ENDDO.





* 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.


* Create ALV grid
  CREATE OBJECT go_grid
    EXPORTING
      i_parent          = go_docking
    EXCEPTIONS
      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.




* Build fieldcatalog
  PERFORM build_fieldcatalog.

  PERFORM set_layout.

  SET HANDLER:
    lcl_eventhandler=&amp;gt;handle_data_changed FOR go_grid.


* Display data
  CALL METHOD go_grid-&amp;gt;set_table_for_first_display
    EXPORTING
      is_layout       = gs_layout
    CHANGING
      it_outtab       = gt_outtab
      it_fieldcatalog = gt_fcat
    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.



* Link the docking container to the target dynpro
  gd_repid = syst-repid.
  CALL METHOD go_docking-&amp;gt;link
    EXPORTING
      repid                       = gd_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.


* ok-code field = GD_OKCODE
  CALL SCREEN '0100'.
* Flow logic (no elements on screen):
*  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'.
*  SET TITLEBAR 'xxx'.

**      CALL METHOD go_grid1-&amp;gt;refresh_table_display
***        EXPORTING
***          IS_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.

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.

* Fetch changes on ALV grid
  go_grid-&amp;gt;check_changed_data( ).


  CASE gd_okcode.
    WHEN 'BACK' OR
         'END'  OR
         'CANC'.
      SET SCREEN 0. LEAVE SCREEN.


    WHEN OTHERS.
  ENDCASE.

  PERFORM refresh_list.
  CALL METHOD go_grid-&amp;gt;refresh_table_display
*      EXPORTING
*        IS_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.


  CLEAR: gd_okcode.

ENDMODULE.                 " USER_COMMAND_0100  INPUT


*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  BUILD_FIELDCATALOG_KNB1
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  --&amp;gt;  p1        text
*  &amp;lt;--  p2        text
*----------------------------------------------------------------------*
FORM build_fieldcatalog .
* define local data
  DATA:
    ls_fcat        TYPE lvc_s_fcat.



  CALL FUNCTION 'LVC_FIELDCATALOG_MERGE'
    EXPORTING
*     I_BUFFER_ACTIVE              =
      i_structure_name             = 'MAKT'
*     I_CLIENT_NEVER_DISPLAY       = 'X'
*     I_BYPASSING_BUFFER           =
*     I_INTERNAL_TABNAME           =
    CHANGING
      ct_fieldcat                  = gt_fcat
    EXCEPTIONS
      inconsistent_interface       = 1
      program_error                = 2
      OTHERS                       = 3.
  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.





  LOOP AT gt_fcat INTO ls_fcat
                  WHERE ( fieldname = 'MATNR' ).
    ls_fcat-edit    = abap_true.
    MODIFY gt_fcat FROM ls_fcat.
  ENDLOOP.


ENDFORM.                    " BUILD_FIELDCATALOG


*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  SET_LAYOUT
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  --&amp;gt;  p1        text
*  &amp;lt;--  p2        text
*----------------------------------------------------------------------*
FORM set_layout .

  CLEAR: gs_layout.

  gs_layout-cwidth_opt = abap_true.
  gs_layout-zebra      = abap_true.

  gs_layout-stylefname = 'CELLTAB'.

ENDFORM.                    " SET_LAYOUT
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  HANDLE_CHANGED_DATA
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  --&amp;gt;  p1        text
*  &amp;lt;--  p2        text
*----------------------------------------------------------------------*
FORM handle_changed_data .

  lcl_eventhandler=&amp;gt;handle_data_changed( sender = go_grid ).

ENDFORM.                    " HANDLE_CHANGED_DATA
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  REFRESH_LIST
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  --&amp;gt;  p1        text
*  &amp;lt;--  p2        text
*----------------------------------------------------------------------*
FORM refresh_list .
*   define local data
  DATA:
    ld_idx             TYPE i,
    ls_outtab          LIKE LINE OF gt_outtab.


  LOOP AT gt_outtab INTO ls_outtab.
    ld_idx = syst-tabix.

    IF ( ls_outtab-matnr IS INITIAL ).
      CLEAR: ls_outtab-spras,
             ls_outtab-maktx,
             ls_outtab-maktg.

    ELSE.
      SELECT SINGLE * FROM  makt INTO ls_outtab-data
             WHERE  matnr  = ls_outtab-matnr
             AND    spras  = syst-langu.
      IF ( syst-subrc NE 0 ).
        CLEAR: ls_outtab.
      ENDIF.

    ENDIF.

    MODIFY gt_outtab FROM ls_outtab INDEX ld_idx.
  ENDLOOP.

ENDFORM.                    " REFRESH_LIST&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&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;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 02 Oct 2007 03:38:08 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/how-data-chnaged-event-will-work/m-p/2816962#M658826</guid>
      <dc:creator>uwe_schieferstein</dc:creator>
      <dc:date>2007-10-02T03:38:08Z</dc:date>
    </item>
    <item>
      <title>Re: how data_chnaged event will work</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/how-data-chnaged-event-will-work/m-p/2816963#M658827</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;hi&lt;/P&gt;&lt;P&gt;good&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;go through this link,hope this ll help you to solve your problem&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://www.abap4.it/download/ALV.pdf" target="test_blank"&gt;http://www.abap4.it/download/ALV.pdf&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;thanks&lt;/P&gt;&lt;P&gt;mrutyun^&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 02 Oct 2007 14:48:00 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/how-data-chnaged-event-will-work/m-p/2816963#M658827</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-10-02T14:48:00Z</dc:date>
    </item>
    <item>
      <title>Re: how data_chnaged event will work</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/how-data-chnaged-event-will-work/m-p/2816964#M658828</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;hi mruthyun,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;you have  send me a document for Grid,&lt;/P&gt;&lt;P&gt;where as i need the data changed for a particular field in &lt;/P&gt;&lt;P&gt;screen ( not in Grid).  &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;regards,&lt;/P&gt;&lt;P&gt;Madhavi&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 03 Oct 2007 12:43:30 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/how-data-chnaged-event-will-work/m-p/2816964#M658828</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-10-03T12:43:30Z</dc:date>
    </item>
    <item>
      <title>Re: how data_chnaged event will work</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/how-data-chnaged-event-will-work/m-p/2816965#M658829</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;hi Uwe,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;you have  send me a program for Grid,&lt;/P&gt;&lt;P&gt;where as i need the data changed for a particular field in &lt;/P&gt;&lt;P&gt;screen ( not in Grid).  &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;regards,&lt;/P&gt;&lt;P&gt;Madhavi&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 03 Oct 2007 12:46:04 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/how-data-chnaged-event-will-work/m-p/2816965#M658829</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-10-03T12:46:04Z</dc:date>
    </item>
    <item>
      <title>Re: how data_chnaged event will work</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/how-data-chnaged-event-will-work/m-p/2816966#M658830</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Uwe,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Just i saw the answer which is related to my problem, where you have replied for someones question.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;But still i am not able to analyse it .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;will you please explain me detailed .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;how to check DATA_CHANGED for cells ( at cell level).&lt;/P&gt;&lt;P&gt;please its urgent&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 03 Oct 2007 13:13:11 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/how-data-chnaged-event-will-work/m-p/2816966#M658830</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-10-03T13:13:11Z</dc:date>
    </item>
    <item>
      <title>Re: how data_chnaged event will work</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/how-data-chnaged-event-will-work/m-p/2816967#M658831</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello Madhavi&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The sample report BCALV_EDIT_02 shows how to "Define ready-for-input status at cell level". For details please refer to the documentation at the beginning of the report coding.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The crucial points are shown below:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;*§1.Extend your output table for a field, e.g., CELLTAB, that holds
*   information about the edit status of each cell for the
*   corresponding row (the table type is SORTED!).
DATA: BEGIN OF gt_outtab occurs 0.  "with header line
        include structure sflight.
DATA: celltab type LVC_T_STYL.
DATA: END OF gt_outtab.&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;*§3.Provide the fieldname of the celltab field by using field
*   STYLEFNAME of the layout structure.
   gs_layout-stylefname = 'CELLTAB'.

* set substate of editable cells to deactivated
    CALL METHOD grid1-&amp;gt;set_ready_for_input
          EXPORTING i_ready_for_input = 0.

    CALL METHOD grid1-&amp;gt;set_table_for_first_display
         EXPORTING i_structure_name = 'SFLIGHT'
                   is_layout        = gs_layout
         CHANGING  it_outtab        = gt_outtab[].&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;*§2.After selecting data, set edit status for each row in a loop
*   according to field SEATSMAX.
  LOOP AT gt_outtab.
    l_index = sy-tabix.
    refresh lt_celltab.
    if gt_outtab-seatsmax ge 300.
        perform fill_celltab using 'RW'
                             changing lt_celltab.
    else.
        perform fill_celltab using 'RO'
                             changing lt_celltab.
    endif.
*§2c.Copy your celltab to the celltab of the current row of gt_outtab.
    INSERT LINES OF lt_celltab INTO TABLE gt_outtab-celltab.
    MODIFY gt_outtab INDEX l_index.
  ENDLOOP.&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  FILL_CELLTAB
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      &amp;lt;--P_PT_CELLTAB  text
*----------------------------------------------------------------------*
FORM fill_celltab using value(p_mode)
                  CHANGING pt_celltab TYPE lvc_t_styl.
  DATA: ls_celltab TYPE lvc_s_styl,
        l_mode type raw4.
* This forms sets the style of column 'PRICE' editable
* according to 'p_mode' and the rest to read only either way.

  IF p_mode EQ 'RW'.
*§2a.Use attribute CL_GUI_ALV_GRID=&amp;gt;MC_STYLE_ENABLED to set a cell
*    to status "editable".
    l_mode = cl_gui_alv_grid=&amp;gt;mc_style_enabled.
  ELSE. "p_mode eq 'RO'
*§2b.Use attribute CL_GUI_ALV_GRID=&amp;gt;MC_STYLE_DISABLED to set a cell
*    to status "non-editable".
    l_mode = cl_gui_alv_grid=&amp;gt;mc_style_disabled.
  ENDIF.

  ls_celltab-fieldname = 'CARRID'.
  ls_celltab-style = cl_gui_alv_grid=&amp;gt;mc_style_disabled.
  INSERT ls_celltab INTO TABLE pt_celltab.
  ls_celltab-fieldname = 'CONNID'.
  ls_celltab-style = cl_gui_alv_grid=&amp;gt;mc_style_disabled.
  INSERT ls_celltab INTO TABLE pt_celltab.
  ls_celltab-fieldname = 'FLDATE'.
  ls_celltab-style = cl_gui_alv_grid=&amp;gt;mc_style_disabled.
  INSERT ls_celltab INTO TABLE pt_celltab.
  ls_celltab-fieldname = 'PRICE'.
  ls_celltab-style = l_mode.
  INSERT ls_celltab INTO TABLE pt_celltab.
  ls_celltab-fieldname = 'CURRENCY'.
  ls_celltab-style = cl_gui_alv_grid=&amp;gt;mc_style_disabled.
  INSERT ls_celltab INTO TABLE pt_celltab.
  ls_celltab-fieldname = 'PLANETYPE'.
  ls_celltab-style = cl_gui_alv_grid=&amp;gt;mc_style_disabled.
  INSERT ls_celltab INTO TABLE pt_celltab.
  ls_celltab-fieldname = 'SEATSMAX'.
  ls_celltab-style = cl_gui_alv_grid=&amp;gt;mc_style_disabled.
  INSERT ls_celltab INTO TABLE pt_celltab.
  ls_celltab-fieldname = 'SEATSOCC'.
  ls_celltab-style = cl_gui_alv_grid=&amp;gt;mc_style_disabled.
  INSERT ls_celltab INTO TABLE pt_celltab.
  ls_celltab-fieldname = 'PAYMENTSUM'.
  ls_celltab-style = cl_gui_alv_grid=&amp;gt;mc_style_disabled.
  INSERT ls_celltab INTO TABLE pt_celltab.  " !!! LVC_T_STYL is SORTED table type

ENDFORM.                               " FILL_CELLTAB&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Please note that the field CELLTAB (of GT_OUTTAB) needs not to be known in the fieldcatalog. However, you have to "register" this as layout option (gs_layout-stylefname = 'CELLTAB').&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>Wed, 03 Oct 2007 13:20:05 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/how-data-chnaged-event-will-work/m-p/2816967#M658831</guid>
      <dc:creator>uwe_schieferstein</dc:creator>
      <dc:date>2007-10-03T13:20:05Z</dc:date>
    </item>
    <item>
      <title>Re: how data_chnaged event will work</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/how-data-chnaged-event-will-work/m-p/2816968#M658832</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Uwe,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;i am displaying the screen with material in edit mode with f4 help.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;i need to select the data from f4 and have to check the data have to be in f4 .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;just checking, as i am new to ABAP methods i understand the scenario for grid in  BCALV_GRID_03.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Here i need for only one input field .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;pls let me know it&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;regards,&lt;/P&gt;&lt;P&gt;Madhavi&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 03 Oct 2007 15:57:51 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/how-data-chnaged-event-will-work/m-p/2816968#M658832</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-10-03T15:57:51Z</dc:date>
    </item>
    <item>
      <title>Re: how data_chnaged event will work</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/how-data-chnaged-event-will-work/m-p/2816969#M658833</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello Madhavi&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Please excuse that I have misunderstood your question which is partly due to an incomplete problem description.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;To catch and validate F4 help values have a look at the following variant of my sample report &lt;B&gt;&lt;/B&gt;&lt;/P&gt;&lt;P&gt;ZUS_SDN_ALVGRID_EDITABLE_3&lt;/P&gt;.&lt;BR /&gt;&lt;BR /&gt;The SAP standard report &lt;B&gt;&lt;P&gt;BCALV_TEST_GRID_F4_HELP&lt;/P&gt;&lt;/B&gt; contains many samples dealing with F4 handling in ALV programming.&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_ALVGRID_EDITABLE_3
*&amp;amp;
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;
*&amp;amp;
*&amp;amp;---------------------------------------------------------------------*

REPORT  zus_sdn_alvgrid_editable_3.


TYPE-POOLS: abap.

DATA:
  gd_repid         TYPE syrepid,
  gd_okcode        TYPE ui_func,
*
  gs_layout        TYPE lvc_s_layo,
  gt_fcat          TYPE lvc_t_fcat,
  go_docking       TYPE REF TO cl_gui_docking_container,
  go_grid          TYPE REF TO cl_gui_alv_grid.


TYPES: BEGIN OF ty_s_outtab.
INCLUDE TYPE makt  AS data.
TYPES:  celltab    TYPE lvc_t_styl.
TYPES: END OF ty_s_outtab.

DATA:
  gs_outtab        TYPE ty_s_outtab,
  gt_outtab        TYPE STANDARD TABLE OF ty_s_outtab
                   WITH DEFAULT KEY.



*---------------------------------------------------------------------*
*       CLASS lcl_eventhandler DEFINITION
*---------------------------------------------------------------------*
*
*---------------------------------------------------------------------*
CLASS lcl_eventhandler DEFINITION.

  PUBLIC SECTION.

    CLASS-METHODS:
      handle_data_changed
        FOR EVENT data_changed OF cl_gui_alv_grid
        IMPORTING
          er_data_changed
          e_onf4
          e_onf4_before
          e_onf4_after
          e_ucomm
          sender,

      handle_onf4
        FOR EVENT onf4 OF cl_gui_alv_grid
          IMPORTING
            e_fieldname
            e_fieldvalue
            es_row_no
            er_event_data
            et_bad_cells
            e_display
            sender.



ENDCLASS.                    "lcl_eventhandler DEFINITION


*---------------------------------------------------------------------*
*       CLASS lcl_eventhandler IMPLEMENTATION
*---------------------------------------------------------------------*
*
*---------------------------------------------------------------------*
CLASS lcl_eventhandler IMPLEMENTATION.

  METHOD handle_onf4.

    BREAK-POINT.

  ENDMETHOD.                    "handle_onf4

  METHOD handle_data_changed.
*   define local data
    DATA:
      ld_idx             TYPE i,
      ls_outtab          LIKE LINE OF gt_outtab.

    IF ( e_onf4_after = abap_true ).
      BREAK-POINT.
      "     Do check, calculations, etc.

*     Trigger PAI -&amp;gt; refresh ALV list
      CALL METHOD cl_gui_cfw=&amp;gt;set_new_ok_code('REFRESH' ).
    ENDIF.


  ENDMETHOD.                    "handle_data_changed

ENDCLASS.                    "lcl_eventhandler IMPLEMENTATION




START-OF-SELECTION.

  DO 10 TIMES.
    APPEND INITIAL LINE TO gt_outtab.
  ENDDO.





* 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.


* Create ALV grid
  CREATE OBJECT go_grid
    EXPORTING
      i_parent          = go_docking
    EXCEPTIONS
      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.




* Build fieldcatalog
  PERFORM build_fieldcatalog.

  PERFORM set_layout.

  SET HANDLER:
    lcl_eventhandler=&amp;gt;handle_data_changed FOR go_grid,
    lcl_eventhandler=&amp;gt;handle_onf4         FOR go_grid.


  PERFORM register_f4help.

* Display data
  CALL METHOD go_grid-&amp;gt;set_table_for_first_display
    EXPORTING
      is_layout       = gs_layout
    CHANGING
      it_outtab       = gt_outtab
      it_fieldcatalog = gt_fcat
    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.



* Link the docking container to the target dynpro
  gd_repid = syst-repid.
  CALL METHOD go_docking-&amp;gt;link
    EXPORTING
      repid                       = gd_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.


* ok-code field = GD_OKCODE
  CALL SCREEN '0100'.
* Flow logic (no elements on screen):
*  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'.
*  SET TITLEBAR 'xxx'.

**      CALL METHOD go_grid1-&amp;gt;refresh_table_display
***        EXPORTING
***          IS_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.

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.

* Fetch changes on ALV grid
  go_grid-&amp;gt;check_changed_data( ).


  CASE gd_okcode.
    WHEN 'BACK' OR
         'END'  OR
         'CANC'.
      SET SCREEN 0. LEAVE SCREEN.


    WHEN 'REFRESH'.
      PERFORM refresh_list.
      CALL METHOD go_grid-&amp;gt;refresh_table_display
*      EXPORTING
*        IS_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.


    WHEN OTHERS.
  ENDCASE.




  CLEAR: gd_okcode.

ENDMODULE.                 " USER_COMMAND_0100  INPUT


*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  BUILD_FIELDCATALOG_KNB1
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  --&amp;gt;  p1        text
*  &amp;lt;--  p2        text
*----------------------------------------------------------------------*
FORM build_fieldcatalog .
* define local data
  DATA:
    ls_fcat        TYPE lvc_s_fcat.



  CALL FUNCTION 'LVC_FIELDCATALOG_MERGE'
    EXPORTING
*     I_BUFFER_ACTIVE              =
      i_structure_name             = 'MAKT'
*     I_CLIENT_NEVER_DISPLAY       = 'X'
*     I_BYPASSING_BUFFER           =
*     I_INTERNAL_TABNAME           =
    CHANGING
      ct_fieldcat                  = gt_fcat
    EXCEPTIONS
      inconsistent_interface       = 1
      program_error                = 2
      OTHERS                       = 3.
  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.





  LOOP AT gt_fcat INTO ls_fcat
                  WHERE ( fieldname = 'MATNR' ).
    ls_fcat-edit    = abap_true.
    MODIFY gt_fcat FROM ls_fcat.
  ENDLOOP.


ENDFORM.                    " BUILD_FIELDCATALOG


*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  SET_LAYOUT
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  --&amp;gt;  p1        text
*  &amp;lt;--  p2        text
*----------------------------------------------------------------------*
FORM set_layout .

  CLEAR: gs_layout.

  gs_layout-cwidth_opt = abap_true.
  gs_layout-zebra      = abap_true.

  gs_layout-stylefname = 'CELLTAB'.

ENDFORM.                    " SET_LAYOUT
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  HANDLE_CHANGED_DATA
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  --&amp;gt;  p1        text
*  &amp;lt;--  p2        text
*----------------------------------------------------------------------*
FORM handle_changed_data .

  lcl_eventhandler=&amp;gt;handle_data_changed( sender = go_grid ).

ENDFORM.                    " HANDLE_CHANGED_DATA
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  REFRESH_LIST
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  --&amp;gt;  p1        text
*  &amp;lt;--  p2        text
*----------------------------------------------------------------------*
FORM refresh_list .
*   define local data
  DATA:
    ld_idx             TYPE i,
    ls_outtab          LIKE LINE OF gt_outtab.


  LOOP AT gt_outtab INTO ls_outtab.
    ld_idx = syst-tabix.

    IF ( ls_outtab-matnr IS INITIAL ).
      CLEAR: ls_outtab-spras,
             ls_outtab-maktx,
             ls_outtab-maktg.

    ELSE.
      SELECT SINGLE * FROM  makt INTO ls_outtab-data
             WHERE  matnr  = ls_outtab-matnr
             AND    spras  = syst-langu.
      IF ( syst-subrc NE 0 ).
        CLEAR: ls_outtab.
      ENDIF.

    ENDIF.

    MODIFY gt_outtab FROM ls_outtab INDEX ld_idx.
  ENDLOOP.

ENDFORM.                    " REFRESH_LIST

*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  REGISTER_F4HELP
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  --&amp;gt;  p1        text
*  &amp;lt;--  p2        text
*----------------------------------------------------------------------*
FORM register_f4help .
* define local data
* data for event handling
  DATA:
    ls_f4 TYPE lvc_s_f4,
    lt_f4 TYPE lvc_t_f4.


*§1 register f4-help, if a user-defined one should be used.
*§7a set parameter getbefore if you want to use values entered
* before raising event on_f4.
*§7b set parameter chngeafter if you want to use the values entered via
* f4 to manipulate other values of your table.
  CLEAR:  ls_f4.

  ls_f4-fieldname  = 'MATNR'.
  ls_f4-register   = 'X'.
**      ls_f4-getbefore  = check_be.               "§7a
  ls_f4-chngeafter = abap_true.               "§7b
  APPEND ls_f4 TO lt_f4.
  CALL METHOD go_grid-&amp;gt;register_f4_for_fields
    EXPORTING
      it_f4 = lt_f4.
ENDFORM.                    " REGISTER_F4HELP&lt;/CODE&gt;&lt;/PRE&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>Wed, 03 Oct 2007 20:24:33 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/how-data-chnaged-event-will-work/m-p/2816969#M658833</guid>
      <dc:creator>uwe_schieferstein</dc:creator>
      <dc:date>2007-10-03T20:24:33Z</dc:date>
    </item>
    <item>
      <title>Re: how data_chnaged event will work</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/how-data-chnaged-event-will-work/m-p/2816970#M658834</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;you are explaning on Grid, &lt;/P&gt;&lt;P&gt;But where as i need for only one screen field.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;even for that i am defining and implmenting but where i need to set handler to trigger the event&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 04 Oct 2007 09:50:01 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/how-data-chnaged-event-will-work/m-p/2816970#M658834</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-10-04T09:50:01Z</dc:date>
    </item>
  </channel>
</rss>

