<?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 to create function code for field in GRID like list box in screen in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/how-to-create-function-code-for-field-in-grid-like-list-box-in-screen/m-p/4804573#M1124858</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;yes we can do that by &lt;STRONG&gt;registering edit events&lt;/STRONG&gt;..&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;check the below example.. has both the variants dropdown/f4 hlp...&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;screen flow logic&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;PROCESS BEFORE OUTPUT.
  MODULE pbo.
 
PROCESS AFTER INPUT.
  MODULE pai AT EXIT-COMMAND.&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;program&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;*----------------------------------------------------------------------*
*       CLASS lcl_event_responder DEFINITION                           *
*----------------------------------------------------------------------*
CLASS lcl_event_responder DEFINITION.
  PUBLIC SECTION.
    DATA  : ls_changed_cell TYPE  lvc_s_modi,
            lv_language     TYPE  spras..
    METHODS refresh_changed_data  FOR EVENT data_changed
                                  OF cl_gui_alv_grid
                                  IMPORTING er_data_changed
                                            e_ucomm.

ENDCLASS.                    "event_responder DEFINITION

DATA: go_handler         TYPE REF TO lcl_event_responder,
      go_container       TYPE REF TO cl_gui_custom_container,
      go_grid            TYPE REF TO cl_gui_alv_grid,
      gt_fieldcat        TYPE lvc_t_fcat,
      gv_language        TYPE spras VALUE 'E',
      gt_outtab          TYPE TABLE OF makt WITH HEADER LINE.

PARAMETERS : dropdown TYPE char01 RADIOBUTTON GROUP grp,
             f4help   TYPE char01 RADIOBUTTON GROUP grp.

START-OF-SELECTION.
  CALL SCREEN 100.

END-OF-SELECTION.

*---------------------------------------------------------------------*
*       MODULE PBO OUTPUT                                             *
*---------------------------------------------------------------------*
MODULE pbo OUTPUT.
  SET PF-STATUS 'BASIC'.
  PERFORM create_and_init_alv CHANGING gt_outtab[]
                                       gt_fieldcat.
ENDMODULE.                    "pbo OUTPUT
*---------------------------------------------------------------------*
*       MODULE PAI INPUT                                              *
*---------------------------------------------------------------------*
MODULE pai INPUT.
  SET SCREEN 0. LEAVE SCREEN.
ENDMODULE.                    "pai INPUT



*&amp;amp;---------------------------------------------------------------------*
FORM create_and_init_alv CHANGING pt_outtab LIKE gt_outtab[]
                                  pt_fieldcat TYPE lvc_t_fcat.

  CHECK go_container IS NOT BOUND.

  CREATE OBJECT go_container
    EXPORTING
      container_name = 'CUSTOM'.

  CREATE OBJECT go_grid
    EXPORTING
      i_parent = go_container.

  PERFORM build_display_table.

  PERFORM build_fieldcat CHANGING pt_fieldcat.

  IF dropdown EQ abap_true.
    PERFORM set_drdn_table.
  ENDIF.

  go_grid-&amp;gt;set_table_for_first_display( CHANGING  it_fieldcatalog      = pt_fieldcat
                                                  it_outtab            = pt_outtab ).

  go_grid-&amp;gt;set_ready_for_input( 1 ).

" raises the 'data_changed' event when we select another cell/any action after changing the data
  go_grid-&amp;gt;register_edit_event( EXPORTING i_event_id = cl_gui_alv_grid=&amp;gt;mc_evt_modified ).

  CREATE OBJECT go_handler.

  SET HANDLER go_handler-&amp;gt;refresh_changed_data FOR go_grid.

ENDFORM.                               "CREATE_AND_INIT_ALV
*&amp;amp;---------------------------------------------------------------------*
FORM build_display_table.
  FREE gt_outtab.
  SELECT * FROM makt UP TO 20 ROWS INTO TABLE gt_outtab WHERE spras EQ gv_language.
ENDFORM.                               "build_display_table
*&amp;amp;---------------------------------------------------------------------*
FORM build_fieldcat CHANGING pt_fieldcat TYPE lvc_t_fcat.

  DATA ls_fcat TYPE lvc_s_fcat.

  CALL FUNCTION 'LVC_FIELDCATALOG_MERGE'
    EXPORTING
      i_structure_name = 'MAKT'
    CHANGING
      ct_fieldcat      = pt_fieldcat.

  LOOP AT pt_fieldcat INTO ls_fcat.
    IF    ls_fcat-fieldname EQ 'SPRAS'.
      ls_fcat-edit       = abap_true..
      ls_fcat-outputlen  = 8.
      IF dropdown EQ abap_true.
        ls_fcat-drdn_hndl  = '1'.
        ls_fcat-checktable = '!'.        "do not check foreign keys
      ENDIF.
      MODIFY pt_fieldcat FROM ls_fcat.
    ENDIF.
  ENDLOOP.
ENDFORM.                               "build_fieldcat
*&amp;amp;---------------------------------------------------------------------*
FORM set_drdn_table.

  CHECK go_grid-&amp;gt;offline( ) IS INITIAL.

  DATA: lt_dropdown TYPE lvc_t_drop,
        ls_dropdown TYPE lvc_s_drop.

  ls_dropdown-handle = '1'.
  ls_dropdown-value  = 'EN'.
  APPEND ls_dropdown TO lt_dropdown.

  ls_dropdown-handle = '1'.
  ls_dropdown-value  = 'DE'.
  APPEND ls_dropdown TO lt_dropdown.

  CALL METHOD go_grid-&amp;gt;set_drop_down_table
    EXPORTING
      it_drop_down = lt_dropdown.

ENDFORM.                                " set_drdn_table
*&amp;amp;---------------------------------------------------------------------*
FORM change_display_table USING pv_language pv_rowno TYPE i.
  READ TABLE gt_outtab INDEX pv_rowno.
  SELECT SINGLE * FROM makt INTO gt_outtab WHERE matnr = gt_outtab-matnr AND spras = pv_language.
  IF sy-subrc EQ 0.
    DELETE gt_outtab INDEX pv_rowno.
    INSERT gt_outtab INDEX pv_rowno.
  ELSE.
    CLEAR : gt_outtab-maktx,
            gt_outtab-maktg.
    DELETE gt_outtab INDEX pv_rowno.
    INSERT gt_outtab INDEX pv_rowno.
  ENDIF.
ENDFORM.                    "change_display_table

*---------------------------------------------------------------------*
*       CLASS event_responder IMPLEMENTATION                          *
*---------------------------------------------------------------------*
CLASS lcl_event_responder IMPLEMENTATION.
  METHOD refresh_changed_data.
    READ TABLE er_data_changed-&amp;gt;mt_mod_cells INTO ls_changed_cell INDEX 1.
    CALL FUNCTION 'CONVERSION_EXIT_ISOLA_INPUT'
      EXPORTING
        input  = ls_changed_cell-value
      IMPORTING
        output = lv_language.
    PERFORM change_display_table USING lv_language ls_changed_cell-row_id.
    go_grid-&amp;gt;refresh_table_display( ).
  ENDMETHOD.                    "click
ENDCLASS.                    "event_responder IMPLEMENTATION&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Cheers,&lt;/P&gt;&lt;P&gt;Jose.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 02 Dec 2008 09:53:40 GMT</pubDate>
    <dc:creator>Former Member</dc:creator>
    <dc:date>2008-12-02T09:53:40Z</dc:date>
    <item>
      <title>how to create function code for field in GRID like list box in screen</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/how-to-create-function-code-for-field-in-grid-like-list-box-in-screen/m-p/4804572#M1124857</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 have requirement like drop down is created for field1 in GRID,&lt;/P&gt;&lt;P&gt;and have given f4 help for it, as soon as i change the data in the field&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;event has to trigger to update thevalues in other field.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;This scenario i worked on screens where field is created with listbox and assign function code to it&lt;/P&gt;&lt;P&gt;when the field value changes the event  triggers .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Is there is anything like that which will fire the event for field value changes.&lt;/P&gt;&lt;P&gt;can i update anything  through the  fieldcatalogue.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;anybody help me on this &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>Tue, 02 Dec 2008 08:56:19 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/how-to-create-function-code-for-field-in-grid-like-list-box-in-screen/m-p/4804572#M1124857</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-12-02T08:56:19Z</dc:date>
    </item>
    <item>
      <title>Re: how to create function code for field in GRID like list box in screen</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/how-to-create-function-code-for-field-in-grid-like-list-box-in-screen/m-p/4804573#M1124858</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;yes we can do that by &lt;STRONG&gt;registering edit events&lt;/STRONG&gt;..&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;check the below example.. has both the variants dropdown/f4 hlp...&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;screen flow logic&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;PROCESS BEFORE OUTPUT.
  MODULE pbo.
 
PROCESS AFTER INPUT.
  MODULE pai AT EXIT-COMMAND.&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;program&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;*----------------------------------------------------------------------*
*       CLASS lcl_event_responder DEFINITION                           *
*----------------------------------------------------------------------*
CLASS lcl_event_responder DEFINITION.
  PUBLIC SECTION.
    DATA  : ls_changed_cell TYPE  lvc_s_modi,
            lv_language     TYPE  spras..
    METHODS refresh_changed_data  FOR EVENT data_changed
                                  OF cl_gui_alv_grid
                                  IMPORTING er_data_changed
                                            e_ucomm.

ENDCLASS.                    "event_responder DEFINITION

DATA: go_handler         TYPE REF TO lcl_event_responder,
      go_container       TYPE REF TO cl_gui_custom_container,
      go_grid            TYPE REF TO cl_gui_alv_grid,
      gt_fieldcat        TYPE lvc_t_fcat,
      gv_language        TYPE spras VALUE 'E',
      gt_outtab          TYPE TABLE OF makt WITH HEADER LINE.

PARAMETERS : dropdown TYPE char01 RADIOBUTTON GROUP grp,
             f4help   TYPE char01 RADIOBUTTON GROUP grp.

START-OF-SELECTION.
  CALL SCREEN 100.

END-OF-SELECTION.

*---------------------------------------------------------------------*
*       MODULE PBO OUTPUT                                             *
*---------------------------------------------------------------------*
MODULE pbo OUTPUT.
  SET PF-STATUS 'BASIC'.
  PERFORM create_and_init_alv CHANGING gt_outtab[]
                                       gt_fieldcat.
ENDMODULE.                    "pbo OUTPUT
*---------------------------------------------------------------------*
*       MODULE PAI INPUT                                              *
*---------------------------------------------------------------------*
MODULE pai INPUT.
  SET SCREEN 0. LEAVE SCREEN.
ENDMODULE.                    "pai INPUT



*&amp;amp;---------------------------------------------------------------------*
FORM create_and_init_alv CHANGING pt_outtab LIKE gt_outtab[]
                                  pt_fieldcat TYPE lvc_t_fcat.

  CHECK go_container IS NOT BOUND.

  CREATE OBJECT go_container
    EXPORTING
      container_name = 'CUSTOM'.

  CREATE OBJECT go_grid
    EXPORTING
      i_parent = go_container.

  PERFORM build_display_table.

  PERFORM build_fieldcat CHANGING pt_fieldcat.

  IF dropdown EQ abap_true.
    PERFORM set_drdn_table.
  ENDIF.

  go_grid-&amp;gt;set_table_for_first_display( CHANGING  it_fieldcatalog      = pt_fieldcat
                                                  it_outtab            = pt_outtab ).

  go_grid-&amp;gt;set_ready_for_input( 1 ).

" raises the 'data_changed' event when we select another cell/any action after changing the data
  go_grid-&amp;gt;register_edit_event( EXPORTING i_event_id = cl_gui_alv_grid=&amp;gt;mc_evt_modified ).

  CREATE OBJECT go_handler.

  SET HANDLER go_handler-&amp;gt;refresh_changed_data FOR go_grid.

ENDFORM.                               "CREATE_AND_INIT_ALV
*&amp;amp;---------------------------------------------------------------------*
FORM build_display_table.
  FREE gt_outtab.
  SELECT * FROM makt UP TO 20 ROWS INTO TABLE gt_outtab WHERE spras EQ gv_language.
ENDFORM.                               "build_display_table
*&amp;amp;---------------------------------------------------------------------*
FORM build_fieldcat CHANGING pt_fieldcat TYPE lvc_t_fcat.

  DATA ls_fcat TYPE lvc_s_fcat.

  CALL FUNCTION 'LVC_FIELDCATALOG_MERGE'
    EXPORTING
      i_structure_name = 'MAKT'
    CHANGING
      ct_fieldcat      = pt_fieldcat.

  LOOP AT pt_fieldcat INTO ls_fcat.
    IF    ls_fcat-fieldname EQ 'SPRAS'.
      ls_fcat-edit       = abap_true..
      ls_fcat-outputlen  = 8.
      IF dropdown EQ abap_true.
        ls_fcat-drdn_hndl  = '1'.
        ls_fcat-checktable = '!'.        "do not check foreign keys
      ENDIF.
      MODIFY pt_fieldcat FROM ls_fcat.
    ENDIF.
  ENDLOOP.
ENDFORM.                               "build_fieldcat
*&amp;amp;---------------------------------------------------------------------*
FORM set_drdn_table.

  CHECK go_grid-&amp;gt;offline( ) IS INITIAL.

  DATA: lt_dropdown TYPE lvc_t_drop,
        ls_dropdown TYPE lvc_s_drop.

  ls_dropdown-handle = '1'.
  ls_dropdown-value  = 'EN'.
  APPEND ls_dropdown TO lt_dropdown.

  ls_dropdown-handle = '1'.
  ls_dropdown-value  = 'DE'.
  APPEND ls_dropdown TO lt_dropdown.

  CALL METHOD go_grid-&amp;gt;set_drop_down_table
    EXPORTING
      it_drop_down = lt_dropdown.

ENDFORM.                                " set_drdn_table
*&amp;amp;---------------------------------------------------------------------*
FORM change_display_table USING pv_language pv_rowno TYPE i.
  READ TABLE gt_outtab INDEX pv_rowno.
  SELECT SINGLE * FROM makt INTO gt_outtab WHERE matnr = gt_outtab-matnr AND spras = pv_language.
  IF sy-subrc EQ 0.
    DELETE gt_outtab INDEX pv_rowno.
    INSERT gt_outtab INDEX pv_rowno.
  ELSE.
    CLEAR : gt_outtab-maktx,
            gt_outtab-maktg.
    DELETE gt_outtab INDEX pv_rowno.
    INSERT gt_outtab INDEX pv_rowno.
  ENDIF.
ENDFORM.                    "change_display_table

*---------------------------------------------------------------------*
*       CLASS event_responder IMPLEMENTATION                          *
*---------------------------------------------------------------------*
CLASS lcl_event_responder IMPLEMENTATION.
  METHOD refresh_changed_data.
    READ TABLE er_data_changed-&amp;gt;mt_mod_cells INTO ls_changed_cell INDEX 1.
    CALL FUNCTION 'CONVERSION_EXIT_ISOLA_INPUT'
      EXPORTING
        input  = ls_changed_cell-value
      IMPORTING
        output = lv_language.
    PERFORM change_display_table USING lv_language ls_changed_cell-row_id.
    go_grid-&amp;gt;refresh_table_display( ).
  ENDMETHOD.                    "click
ENDCLASS.                    "event_responder IMPLEMENTATION&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Cheers,&lt;/P&gt;&lt;P&gt;Jose.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 02 Dec 2008 09:53:40 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/how-to-create-function-code-for-field-in-grid-like-list-box-in-screen/m-p/4804573#M1124858</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-12-02T09:53:40Z</dc:date>
    </item>
    <item>
      <title>Re: how to create function code for field in GRID like list box in screen</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/how-to-create-function-code-for-field-in-grid-like-list-box-in-screen/m-p/4804574#M1124859</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;thanks&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 19 Mar 2009 06:55:39 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/how-to-create-function-code-for-field-in-grid-like-list-box-in-screen/m-p/4804574#M1124859</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2009-03-19T06:55:39Z</dc:date>
    </item>
  </channel>
</rss>

