<?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 alv oops in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/alv-oops/m-p/2384970#M529926</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Can anyone send me a simple coding using OOPS alv  with the top-of-page event . &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Vighnesh .&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 07 Jun 2007 13:25:21 GMT</pubDate>
    <dc:creator>Former Member</dc:creator>
    <dc:date>2007-06-07T13:25:21Z</dc:date>
    <item>
      <title>alv oops</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/alv-oops/m-p/2384970#M529926</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Can anyone send me a simple coding using OOPS alv  with the top-of-page event . &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Vighnesh .&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 07 Jun 2007 13:25:21 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/alv-oops/m-p/2384970#M529926</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-06-07T13:25:21Z</dc:date>
    </item>
    <item>
      <title>Re: alv oops</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/alv-oops/m-p/2384971#M529927</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;Check out the following link for top_of_page event in OOPs ALV.&lt;/P&gt;&lt;P&gt;&lt;A href="https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/e8a1d690-0201-0010-b7ad-d9719a415907" target="test_blank"&gt;https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/e8a1d690-0201-0010-b7ad-d9719a415907&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;You can also check out the following program.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: save_ok LIKE sy-ucomm,&lt;/P&gt;&lt;P&gt;g_container TYPE scrfname VALUE 'CC1',&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;g_grid TYPE REF TO cl_gui_alv_grid,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;g_custom_container TYPE REF TO cl_gui_custom_container,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;gt_fieldcat TYPE lvc_t_fcat,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;g_max TYPE i VALUE 100.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;declarations for top of page event&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;Data: gv_c_split type ref to cl_gui_splitter_container,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;gv_c_ptv type ref to cl_gui_container,&lt;/P&gt;&lt;P&gt;gv_alv_ptv type ref to cl_gui_alv_grid,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;o_dd_doc TYPE REF TO cl_dd_document,&lt;/P&gt;&lt;P&gt;text TYPE sdydo_text_element,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;o_split type ref to cl_gui_easy_splitter_container,&lt;/P&gt;&lt;P&gt;o_top type ref to cl_gui_container,&lt;/P&gt;&lt;P&gt;o_bot type ref to cl_gui_container,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;gv_c_vp type ref to cl_gui_container.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;end of declaration for top of page.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CLASS lcl_event_receiver DEFINITION DEFERRED.&lt;/P&gt;&lt;P&gt;*class lcl_application_dc definition deferred.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: o_event_receiver TYPE REF TO lcl_event_receiver.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;g_dc type ref to lcl_application_dc.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: gt_outtab TYPE TABLE OF sbook.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&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_receiver DEFINITION&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;CLASS lcl_event_receiver DEFINITION.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PUBLIC SECTION.&lt;/P&gt;&lt;P&gt;METHODS: handle_f4 FOR EVENT onf4 OF cl_gui_alv_grid&lt;/P&gt;&lt;P&gt;IMPORTING e_fieldname&lt;/P&gt;&lt;P&gt;es_row_no&lt;/P&gt;&lt;P&gt;er_event_data&lt;/P&gt;&lt;P&gt;et_bad_cells&lt;/P&gt;&lt;P&gt;e_display,&lt;/P&gt;&lt;P&gt;handle_top_of_page FOR EVENT top_of_page OF cl_gui_alv_grid&lt;/P&gt;&lt;P&gt;IMPORTING e_dyndoc_id.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;METHODS: reset.&lt;/P&gt;&lt;P&gt;METHODS: show_f4.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PRIVATE SECTION.&lt;/P&gt;&lt;P&gt;**&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;attributes for creating an own F4-Help&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;(using a second ALV Grid Control&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;**&lt;/P&gt;&lt;P&gt;DATA: f4_grid TYPE REF TO cl_gui_alv_grid,&lt;/P&gt;&lt;P&gt;f4_custom_container TYPE REF TO cl_gui_custom_container.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TYPES: BEGIN OF ty_f4.&lt;/P&gt;&lt;P&gt;TYPES: value TYPE s_class.&lt;/P&gt;&lt;P&gt;TYPES: descr(20) TYPE c.&lt;/P&gt;&lt;P&gt;TYPES: END OF ty_f4.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: f4_itab TYPE TABLE OF ty_f4.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: f4_fieldcatalog TYPE lvc_t_fcat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;**&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;attributes to store event parameters&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;(after the CALL SCREEN command, the event parameters&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;are not accessible)&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;**&lt;/P&gt;&lt;P&gt;TYPES: BEGIN OF onf4_event_parameters_type.&lt;/P&gt;&lt;P&gt;TYPES: c_fieldname TYPE lvc_fname.&lt;/P&gt;&lt;P&gt;TYPES: cs_row_no TYPE lvc_s_roid.&lt;/P&gt;&lt;P&gt;TYPES: cr_event_data TYPE REF TO cl_alv_event_data.&lt;/P&gt;&lt;P&gt;TYPES: ct_bad_cells TYPE lvc_t_modi.&lt;/P&gt;&lt;P&gt;TYPES: c_display TYPE char01.&lt;/P&gt;&lt;P&gt;TYPES: END OF onf4_event_parameters_type.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: f4_params TYPE onf4_event_parameters_type.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;**&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Methods to create own F4-Help&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;(This is done using a second ALV Grid Control)&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;**&lt;/P&gt;&lt;P&gt;METHODS: init_f4.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;METHODS: build_fieldcatalog.&lt;/P&gt;&lt;P&gt;METHODS: fill_f4_itab .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;METHODS: on_double_click FOR EVENT double_click OF cl_gui_alv_grid&lt;/P&gt;&lt;P&gt;IMPORTING es_row_no.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDCLASS. "lcl_application_f4 DEFINITION&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&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_receiver IMPLEMENTATION&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;CLASS lcl_event_receiver IMPLEMENTATION.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*§2. Implement an event handler method for event ONF4.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;METHOD handle_f4.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Save event parameter as global attributes of this class&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;(maybe solved differently if you use a function module!)&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;f4_params-c_fieldname = e_fieldname.&lt;/P&gt;&lt;P&gt;f4_params-cs_row_no = es_row_no.&lt;/P&gt;&lt;P&gt;f4_params-cr_event_data = er_event_data.&lt;/P&gt;&lt;P&gt;f4_params-ct_bad_cells = et_bad_cells.&lt;/P&gt;&lt;P&gt;f4_params-c_display = e_display.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*§3. Call your own f4 help. To customize your popup check&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;first if the cell is ready for input (event parameter E_DISPLAY).&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;(parameter E_DISPLAY is checked later in method on_double_click)&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;(Probably, you would call a function module at this point,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;pass the needed event parameter and call the popup screen&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;within that function module. This is not done in this example&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;to avoid scattering its code).&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CALL SCREEN 101 STARTING AT 10 10.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*§7. Inform the ALV Grid Control that an own f4 help has been processed&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;to suppress the standard f4 help.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;er_event_data-&amp;gt;m_event_handled = 'X'.&lt;/P&gt;&lt;P&gt;ENDMETHOD. "on_f4&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;METHOD show_f4.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;DATA: ls_outtab TYPE sbook.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;initialize own f4 help if needed&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;IF f4_custom_container IS INITIAL.&lt;/P&gt;&lt;P&gt;CALL METHOD init_f4.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CALL METHOD fill_f4_itab.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;refresh list of values in f4 help and show it&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;CALL METHOD f4_grid-&amp;gt;refresh_table_display.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;CAUTION: Do not use method REFRESH_TABLE_DISPLAY for&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;your editable ALV Grid instances while handling events&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;DATA_CHANGED or ONf4. You would overwrite intermediate&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;values of your output table on frontend.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;'f4_grid' is a non-editable ALV Grid Control for the&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;application specific F4-Help. Therefore, calling&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;REFRESH_TABLE_DISPLAY for this instance has no&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;negative effect.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CALL METHOD cl_gui_cfw=&amp;gt;flush.&lt;/P&gt;&lt;P&gt;ENDMETHOD. "show_f4&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="--------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;METHOD init_f4.&lt;/P&gt;&lt;P&gt;DATA: ls_f4_layout TYPE lvc_s_layo.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;build fieldcatalog entries for f4&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;CALL METHOD build_fieldcatalog.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;create controls&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;CREATE OBJECT f4_custom_container&lt;/P&gt;&lt;P&gt;EXPORTING container_name = 'CC_ONF4'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CREATE OBJECT f4_grid&lt;/P&gt;&lt;P&gt;EXPORTING i_parent = f4_custom_container.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;hide toolbar&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;ls_f4_layout-no_toolbar = 'X'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CALL METHOD f4_grid-&amp;gt;set_table_for_first_display&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;is_layout = ls_f4_layout&lt;/P&gt;&lt;P&gt;CHANGING&lt;/P&gt;&lt;P&gt;it_fieldcatalog = f4_fieldcatalog&lt;/P&gt;&lt;P&gt;it_outtab = f4_itab.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;register event double click on backend&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;SET HANDLER me-&amp;gt;on_double_click FOR f4_grid.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;flush since 'ls_layout' is local!&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;CALL METHOD cl_gui_cfw=&amp;gt;flush.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDMETHOD. "init_f4&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;HR originaltext="-----------------------------------------------" /&gt;&lt;P&gt;METHOD fill_f4_itab.&lt;/P&gt;&lt;P&gt;DATA ls_f4_itab TYPE ty_f4.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Delete all entries in f4_itab to determine&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;offered values dynamically&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;CLEAR f4_itab[].&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ls_f4_itab-value = 'C'.&lt;/P&gt;&lt;P&gt;ls_f4_itab-descr = text-t03. "Business Class&lt;/P&gt;&lt;P&gt;APPEND ls_f4_itab TO f4_itab.&lt;/P&gt;&lt;P&gt;ls_f4_itab-value = 'Y'.&lt;/P&gt;&lt;P&gt;ls_f4_itab-descr = text-t04. "Economie Class&lt;/P&gt;&lt;P&gt;APPEND ls_f4_itab TO f4_itab.&lt;/P&gt;&lt;P&gt;ls_f4_itab-value = 'F'.&lt;/P&gt;&lt;P&gt;ls_f4_itab-descr = text-t05. "First Class&lt;/P&gt;&lt;P&gt;APPEND ls_f4_itab TO f4_itab.&lt;/P&gt;&lt;P&gt;ENDMETHOD. "fill_f4_itab&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="----------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;METHOD build_fieldcatalog.&lt;/P&gt;&lt;P&gt;DATA: ls_fcat TYPE lvc_s_fcat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CLEAR ls_fcat.&lt;/P&gt;&lt;P&gt;ls_fcat-fieldname = 'VALUE'.&lt;/P&gt;&lt;P&gt;ls_fcat-coltext = text-t02.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;ls_fcat-inttype = 'S_CLASS'.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;ls_fcat-outputlen = 5.&lt;/P&gt;&lt;P&gt;APPEND ls_fcat TO f4_fieldcatalog.&lt;/P&gt;&lt;P&gt;CLEAR ls_fcat.&lt;/P&gt;&lt;P&gt;ls_fcat-fieldname = 'DESCR'.&lt;/P&gt;&lt;P&gt;ls_fcat-coltext = text-t01.&lt;/P&gt;&lt;P&gt;ls_fcat-inttype = 'C'.&lt;/P&gt;&lt;P&gt;ls_fcat-outputlen = 20.&lt;/P&gt;&lt;P&gt;APPEND ls_fcat TO f4_fieldcatalog.&lt;/P&gt;&lt;P&gt;ENDMETHOD. "build_fieldcatalog&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------" /&gt;&lt;P&gt;METHOD on_double_click.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*§5. If not already caught by your own f4 help, check whether&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;the triggered cell was ready for input by using E_DISPLAY&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;and if not, exit.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;IF f4_params-c_display EQ 'X'.&lt;/P&gt;&lt;P&gt;LEAVE SCREEN.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*§6. After the user selected a value, pass it to the ALV Grid Control:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*§ 6a. Define a field symbol of type: LVC_T_MODI and a structure of&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;type LVC_S_MODI to pass the value later on.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;FIELD-SYMBOLS  TYPE lvc_t_modi.&lt;/P&gt;&lt;P&gt;DATA: ls_modi TYPE lvc_s_modi,&lt;/P&gt;&lt;P&gt;ls_f4_itab TYPE ty_f4.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*§ 6b. Dereference attribute M_DATA into your field symbol and add&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;the selected value to the table to which this symbol points to.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;ASSIGN f4_params-cr_event_data-&amp;gt;m_data-&amp;gt;* TO .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;LEAVE TO SCREEN 0.&lt;/P&gt;&lt;P&gt;ENDMETHOD. "on_double_click&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------" /&gt;&lt;P&gt;METHOD reset.&lt;/P&gt;&lt;P&gt;FIELD-SYMBOLS display_document&lt;/P&gt;&lt;P&gt;EXPORTING parent = o_top.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDMETHOD. "handle_top_of_page&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDCLASS. "lcl_application_f4 IMPLEMENTATION&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;END-OF-SELECTION.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CALL SCREEN 100.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&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;MODULE PBO OUTPUT *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;MODULE pbo OUTPUT.&lt;/P&gt;&lt;P&gt;SET PF-STATUS 'MAIN100'.&lt;/P&gt;&lt;P&gt;SET TITLEBAR 'MAIN100'.&lt;/P&gt;&lt;P&gt;IF g_custom_container IS INITIAL.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PERFORM create_and_init_alv CHANGING gt_outtab[]&lt;/P&gt;&lt;P&gt;gt_fieldcat.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDMODULE. "pbo OUTPUT&lt;/P&gt;&lt;P&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;MODULE PAI INPUT *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;MODULE pai INPUT.&lt;/P&gt;&lt;P&gt;save_ok = sy-ucomm.&lt;/P&gt;&lt;P&gt;CLEAR sy-ucomm.&lt;/P&gt;&lt;P&gt;CASE save_ok.&lt;/P&gt;&lt;P&gt;WHEN 'EXIT' OR 'BACK' OR 'CANCEL'.&lt;/P&gt;&lt;P&gt;PERFORM exit_program.&lt;/P&gt;&lt;P&gt;WHEN 'SWITCH'.&lt;/P&gt;&lt;P&gt;PERFORM switch_edit_mode.&lt;/P&gt;&lt;P&gt;WHEN OTHERS.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;do nothing&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;ENDCASE.&lt;/P&gt;&lt;P&gt;ENDMODULE. "pai INPUT&lt;/P&gt;&lt;P&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;FORM EXIT_PROGRAM *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;FORM exit_program.&lt;/P&gt;&lt;P&gt;LEAVE PROGRAM.&lt;/P&gt;&lt;P&gt;ENDFORM. "exit_program&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*&amp;amp; Form build_fieldcat&lt;/P&gt;&lt;P&gt;*&amp;amp;----&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;/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;--&amp;gt;PT_FIELDCAT text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;FORM build_fieldcat CHANGING pt_fieldcat TYPE lvc_t_fcat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA ls_fcat TYPE lvc_s_fcat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'LVC_FIELDCATALOG_MERGE'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;i_structure_name = 'SBOOK'&lt;/P&gt;&lt;P&gt;CHANGING&lt;/P&gt;&lt;P&gt;ct_fieldcat = pt_fieldcat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;LOOP AT pt_fieldcat INTO ls_fcat.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Exchange smoker field with invoice field - just to&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;make the dependance between SMOKER and CLASS more transparent&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;(Smoking is only allowed in the first class).&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;IF ls_fcat-fieldname EQ 'SMOKER'.&lt;/P&gt;&lt;P&gt;ls_fcat-col_pos = 11.&lt;/P&gt;&lt;P&gt;ls_fcat-outputlen = 10.&lt;/P&gt;&lt;P&gt;ls_fcat-edit = 'X'.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Field 'checktable' is set to avoid shortdumps that are caused&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;by inconsistend data in check tables. You may comment this out&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;when the test data of the flight model is consistent in your system.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;ls_fcat-checktable = '!'. "do not check foreign keys&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;MODIFY pt_fieldcat FROM ls_fcat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ELSEIF ls_fcat-fieldname EQ 'INVOICE'.&lt;/P&gt;&lt;P&gt;ls_fcat-col_pos = 7.&lt;/P&gt;&lt;P&gt;MODIFY pt_fieldcat FROM ls_fcat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ELSEIF ls_fcat-fieldname EQ 'CLASS'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ls_fcat-edit = 'X'.&lt;/P&gt;&lt;P&gt;ls_fcat-outputlen = 5.&lt;/P&gt;&lt;P&gt;ls_fcat-checktable = '!'. "do not check foreign keys&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;MODIFY pt_fieldcat FROM ls_fcat.&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;ENDFORM. "build_fieldcat&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*&amp;amp; Form create_and_init_alv&lt;/P&gt;&lt;P&gt;*&amp;amp;----&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;/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;--&amp;gt;PT_OUTTAB text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;--&amp;gt;PT_FIELDCAT text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;FORM create_and_init_alv CHANGING pt_outtab TYPE STANDARD TABLE&lt;/P&gt;&lt;P&gt;pt_fieldcat TYPE lvc_t_fcat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: lt_exclude TYPE ui_functions,&lt;/P&gt;&lt;P&gt;ls_layout TYPE lvc_s_layo.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CREATE OBJECT g_custom_container&lt;/P&gt;&lt;P&gt;EXPORTING container_name = g_container.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;CREATE OBJECT g_grid&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;EXPORTING i_parent = g_custom_container.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CREATE OBJECT gv_c_split&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;link_dynnr = lv_dynnr&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;link_repid = lv_repid&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;parent = g_custom_container&lt;/P&gt;&lt;P&gt;rows = 2&lt;/P&gt;&lt;P&gt;columns = 1&lt;/P&gt;&lt;P&gt;EXCEPTIONS&lt;/P&gt;&lt;P&gt;cntl_error = 1&lt;/P&gt;&lt;P&gt;cntl_system_error = 2&lt;/P&gt;&lt;P&gt;others = 3 .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CALL METHOD gv_c_split-&amp;gt;set_border&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;border = space.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CALL METHOD gv_c_split-&amp;gt;get_container&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;row = 1&lt;/P&gt;&lt;P&gt;column = 1&lt;/P&gt;&lt;P&gt;RECEIVING&lt;/P&gt;&lt;P&gt;container = gv_c_ptv.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CALL METHOD gv_c_split-&amp;gt;set_row_height&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;id = 1&lt;/P&gt;&lt;P&gt;height = 20&lt;/P&gt;&lt;P&gt;EXCEPTIONS&lt;/P&gt;&lt;P&gt;cntl_error = 1&lt;/P&gt;&lt;P&gt;cntl_system_error = 2&lt;/P&gt;&lt;P&gt;OTHERS = 6 .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CALL METHOD gv_c_split-&amp;gt;get_container&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;row = 2&lt;/P&gt;&lt;P&gt;column = 1&lt;/P&gt;&lt;P&gt;RECEIVING&lt;/P&gt;&lt;P&gt;container = gv_c_vp .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CALL METHOD gv_c_split-&amp;gt;set_row_height&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;id = 2&lt;/P&gt;&lt;P&gt;height = 10&lt;/P&gt;&lt;P&gt;EXCEPTIONS&lt;/P&gt;&lt;P&gt;cntl_error = 1&lt;/P&gt;&lt;P&gt;cntl_system_error = 2&lt;/P&gt;&lt;P&gt;OTHERS = 3 .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CREATE OBJECT o_split&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;parent = gv_c_ptv&lt;/P&gt;&lt;P&gt;with_border = 1&lt;/P&gt;&lt;P&gt;EXCEPTIONS&lt;/P&gt;&lt;P&gt;cntl_error = 1&lt;/P&gt;&lt;P&gt;cntl_system_error = 2&lt;/P&gt;&lt;P&gt;others = 3.&lt;/P&gt;&lt;P&gt;IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno&lt;/P&gt;&lt;P&gt;WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;o_top = o_split-&amp;gt;top_left_container.&lt;/P&gt;&lt;P&gt;o_bot = o_split-&amp;gt;bottom_right_container.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CREATE OBJECT gv_alv_ptv&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;i_parent = o_bot&lt;/P&gt;&lt;P&gt;EXCEPTIONS&lt;/P&gt;&lt;P&gt;error_cntl_create = 1&lt;/P&gt;&lt;P&gt;error_cntl_init = 2&lt;/P&gt;&lt;P&gt;error_cntl_link = 3&lt;/P&gt;&lt;P&gt;error_dp_create = 4&lt;/P&gt;&lt;P&gt;others = 5 .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CREATE OBJECT g_grid&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;i_parent = gv_c_vp&lt;/P&gt;&lt;P&gt;EXCEPTIONS&lt;/P&gt;&lt;P&gt;error_cntl_create = 1&lt;/P&gt;&lt;P&gt;error_cntl_init = 2&lt;/P&gt;&lt;P&gt;error_cntl_link = 3&lt;/P&gt;&lt;P&gt;error_dp_create = 4&lt;/P&gt;&lt;P&gt;others = 5 .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PERFORM build_fieldcat CHANGING pt_fieldcat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Optionally restrict generic functions to 'change only'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;(The user shall not be able to add new lines).&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;PERFORM exclude_tb_functions CHANGING lt_exclude.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PERFORM build_data CHANGING pt_outtab.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ls_layout-grid_title = 'F4 help implemented for field CLASS'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CREATE OBJECT o_event_receiver.&lt;/P&gt;&lt;P&gt;SET HANDLER o_event_receiver-&amp;gt;handle_top_of_page FOR gv_alv_ptv.&lt;/P&gt;&lt;P&gt;SET HANDLER o_event_receiver-&amp;gt;handle_top_of_page FOR g_grid.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CREATE OBJECT o_dd_doc EXPORTING style = 'ALV_GRID'&lt;/P&gt;&lt;P&gt;no_margins = 'X'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CALL METHOD gv_alv_ptv-&amp;gt;set_table_for_first_display&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;is_layout = ls_layout&lt;/P&gt;&lt;P&gt;CHANGING&lt;/P&gt;&lt;P&gt;it_outtab = pt_outtab[]&lt;/P&gt;&lt;P&gt;it_fieldcatalog = pt_fieldcat&lt;/P&gt;&lt;P&gt;EXCEPTIONS&lt;/P&gt;&lt;P&gt;invalid_parameter_combination = 1&lt;/P&gt;&lt;P&gt;program_error = 2&lt;/P&gt;&lt;P&gt;too_many_lines = 3&lt;/P&gt;&lt;P&gt;OTHERS = 4.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CALL METHOD g_grid-&amp;gt;set_table_for_first_display&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;it_toolbar_excluding = lt_exclude&lt;/P&gt;&lt;P&gt;is_layout = ls_layout&lt;/P&gt;&lt;P&gt;CHANGING&lt;/P&gt;&lt;P&gt;it_fieldcatalog = pt_fieldcat&lt;/P&gt;&lt;P&gt;it_outtab = pt_outtab[].&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CALL METHOD gv_alv_ptv-&amp;gt;list_processing_events&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;i_event_name = 'TOP_OF_PAGE'&lt;/P&gt;&lt;P&gt;i_dyndoc_id = o_dd_doc.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;register f4 for field CLASS&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;PERFORM register_events.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Set editable cells to ready for input initially&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;CALL METHOD g_grid-&amp;gt;set_ready_for_input&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;i_ready_for_input = 1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM. "CREATE_AND_INIT_ALV&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*&amp;amp; Form exclude_tb_functions&lt;/P&gt;&lt;P&gt;*&amp;amp;----&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;/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;--&amp;gt;PT_EXCLUDE text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;FORM exclude_tb_functions CHANGING pt_exclude TYPE ui_functions.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Only allow to change data not to create new entries (exclude&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;generic functions).&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA ls_exclude TYPE ui_func.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ls_exclude = cl_gui_alv_grid=&amp;gt;mc_fc_loc_copy_row.&lt;/P&gt;&lt;P&gt;APPEND ls_exclude TO pt_exclude.&lt;/P&gt;&lt;P&gt;ls_exclude = cl_gui_alv_grid=&amp;gt;mc_fc_loc_delete_row.&lt;/P&gt;&lt;P&gt;APPEND ls_exclude TO pt_exclude.&lt;/P&gt;&lt;P&gt;ls_exclude = cl_gui_alv_grid=&amp;gt;mc_fc_loc_append_row.&lt;/P&gt;&lt;P&gt;APPEND ls_exclude TO pt_exclude.&lt;/P&gt;&lt;P&gt;ls_exclude = cl_gui_alv_grid=&amp;gt;mc_fc_loc_insert_row.&lt;/P&gt;&lt;P&gt;APPEND ls_exclude TO pt_exclude.&lt;/P&gt;&lt;P&gt;ls_exclude = cl_gui_alv_grid=&amp;gt;mc_fc_loc_move_row.&lt;/P&gt;&lt;P&gt;APPEND ls_exclude TO pt_exclude.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM. " EXCLUDE_TB_FUNCTIONS&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*&amp;amp; Form build_data&lt;/P&gt;&lt;P&gt;*&amp;amp;----&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;/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;--&amp;gt; p1 text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;&amp;lt;-- p2 text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;FORM build_data CHANGING pt_outtab TYPE STANDARD TABLE.&lt;/P&gt;&lt;P&gt;DATA: ls_sbook TYPE sbook,&lt;/P&gt;&lt;P&gt;l_index TYPE i.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECT * FROM sbook INTO TABLE gt_outtab UP TO g_max ROWS.&lt;/P&gt;&lt;P&gt;IF sy-subrc NE 0.&lt;/P&gt;&lt;P&gt;PERFORM generate_entries CHANGING pt_outtab.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;LOOP AT pt_outtab INTO ls_sbook.&lt;/P&gt;&lt;P&gt;l_index = sy-tabix.&lt;/P&gt;&lt;P&gt;CLEAR ls_sbook-class.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Alternate between smoker and non smoker to make&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;it more obvious what this example is about&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;l_index = l_index MOD 2.&lt;/P&gt;&lt;P&gt;IF l_index EQ 1.&lt;/P&gt;&lt;P&gt;ls_sbook-smoker = 'X'.&lt;/P&gt;&lt;P&gt;ELSE.&lt;/P&gt;&lt;P&gt;ls_sbook-smoker = ' '.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;MODIFY pt_outtab FROM ls_sbook.&lt;/P&gt;&lt;P&gt;ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM. " build_data&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*&amp;amp; Form generate_entries&lt;/P&gt;&lt;P&gt;*&amp;amp;----&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;/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;--&amp;gt;PT_SBOOK text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;FORM generate_entries CHANGING pt_sbook TYPE STANDARD TABLE.&lt;/P&gt;&lt;P&gt;DATA: ls_sbook TYPE sbook,&lt;/P&gt;&lt;P&gt;l_month(2) TYPE c,&lt;/P&gt;&lt;P&gt;l_day(2) TYPE c,&lt;/P&gt;&lt;P&gt;l_date(8) TYPE c,&lt;/P&gt;&lt;P&gt;l_prebookid TYPE i.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ls_sbook-carrid = 'LH'.&lt;/P&gt;&lt;P&gt;ls_sbook-connid = '0400'.&lt;/P&gt;&lt;P&gt;ls_sbook-forcurkey = 'DEM'.&lt;/P&gt;&lt;P&gt;ls_sbook-loccurkey = 'USD'.&lt;/P&gt;&lt;P&gt;ls_sbook-custtype = 'B'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DO 110 TIMES.&lt;/P&gt;&lt;P&gt;l_prebookid = sy-index.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ls_sbook-forcuram = sy-index * 10.&lt;/P&gt;&lt;P&gt;ls_sbook-loccuram = ls_sbook-loccuram * 2.&lt;/P&gt;&lt;P&gt;ls_sbook-customid = sy-index.&lt;/P&gt;&lt;P&gt;ls_sbook-counter = 18.&lt;/P&gt;&lt;P&gt;ls_sbook-agencynum = 11.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;l_month = sy-index / 10 + 1.&lt;/P&gt;&lt;P&gt;DO 2 TIMES.&lt;/P&gt;&lt;P&gt;l_day = 3 + l_month + sy-index * 2.&lt;/P&gt;&lt;P&gt;l_date+0(4) = '2000'.&lt;/P&gt;&lt;P&gt;l_date+4(2) = l_month.&lt;/P&gt;&lt;P&gt;l_date+6(2) = l_day.&lt;/P&gt;&lt;P&gt;ls_sbook-fldate = l_date.&lt;/P&gt;&lt;P&gt;SUBTRACT 3 FROM l_day.&lt;/P&gt;&lt;P&gt;ls_sbook-order_date+0(6) = l_date+0(6).&lt;/P&gt;&lt;P&gt;ls_sbook-order_date+6(2) = l_day.&lt;/P&gt;&lt;P&gt;ls_sbook-bookid = l_prebookid * 2 + sy-index.&lt;/P&gt;&lt;P&gt;IF sy-index EQ 1.&lt;/P&gt;&lt;P&gt;ls_sbook-smoker = 'X'.&lt;/P&gt;&lt;P&gt;ELSE.&lt;/P&gt;&lt;P&gt;ls_sbook-smoker = space.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ls_sbook-luggweight = l_prebookid * 10.&lt;/P&gt;&lt;P&gt;IF ls_sbook-luggweight GE 1000.&lt;/P&gt;&lt;P&gt;ls_sbook-wunit = 'G'.&lt;/P&gt;&lt;P&gt;ls_sbook-class = 'C'.&lt;/P&gt;&lt;P&gt;ELSE.&lt;/P&gt;&lt;P&gt;ls_sbook-wunit = 'KG'.&lt;/P&gt;&lt;P&gt;ls_sbook-class = 'Y'.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IF ls_sbook-bookid &amp;gt; 40 AND ls_sbook-wunit EQ 'KG'.&lt;/P&gt;&lt;P&gt;ls_sbook-invoice = 'X'.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;IF ls_sbook-bookid EQ 2.&lt;/P&gt;&lt;P&gt;ls_sbook-cancelled = 'X'.&lt;/P&gt;&lt;P&gt;ls_sbook-class = 'F'.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;APPEND ls_sbook TO pt_sbook.&lt;/P&gt;&lt;P&gt;ENDDO.&lt;/P&gt;&lt;P&gt;ENDDO.&lt;/P&gt;&lt;P&gt;ENDFORM. " generate_entries&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*&amp;amp; Form register_events&lt;/P&gt;&lt;P&gt;*&amp;amp;----&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;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;FORM register_events.&lt;/P&gt;&lt;P&gt;*§1. Register event ONF4 at frontend using method&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;register_f4_for_fields. For this purpose, you pass a table&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;with all fields, for which you want to implement your own&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;f4 help.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;remark: If you want to use an own f4 help for fields where&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;no standard f4 help exists set field F4AVAILABL for&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;this field in the fieldcatalog.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DATA: lt_f4 TYPE lvc_t_f4 WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CLEAR lt_f4.&lt;/P&gt;&lt;P&gt;lt_f4-fieldname = 'CLASS'.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;If you would like to deregister the field again,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;pass value SPACE with field 'register'.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;lt_f4-register = 'X'.&lt;/P&gt;&lt;P&gt;*§ 1b. If the value range in your f4 help depends on other&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;values of cells that are input enabled, set the&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;GETBEFORE parameter.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;The consequence is that the ALV Grid Control raises&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;event DATA_CHANGED before the f4 help is called to&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;check values that the f4 help depends on.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;lt_f4-getbefore = 'X'.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;The next parameter is used to change values after onf4 has&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;been processed. The ALV Grid Control will raise&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;event DATA_CHANGED afterwards, if you set it.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;lt_f4-chngeafter = space.&lt;/P&gt;&lt;P&gt;INSERT TABLE lt_f4.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CALL METHOD g_grid-&amp;gt;register_f4_for_fields&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;it_f4 = lt_f4[].&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;register events for abap objects (backend)&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SET HANDLER o_event_receiver-&amp;gt;handle_f4 FOR g_grid.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM. " register_events&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&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;MODULE status_0101 OUTPUT&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;MODULE status_0101 OUTPUT.&lt;/P&gt;&lt;P&gt;SET PF-STATUS 'POPUP'.&lt;/P&gt;&lt;P&gt;SET TITLEBAR 'POPUP'.&lt;/P&gt;&lt;P&gt;CALL METHOD o_event_receiver-&amp;gt;show_f4.&lt;/P&gt;&lt;P&gt;ENDMODULE. " STATUS_0101 OUTPUT&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*&amp;amp; Module USER_COMMAND_0101 INPUT&lt;/P&gt;&lt;P&gt;*&amp;amp;----&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;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;MODULE user_command_0101 INPUT.&lt;/P&gt;&lt;P&gt;PERFORM user_command.&lt;/P&gt;&lt;P&gt;ENDMODULE. " USER_COMMAND_0101 INPUT&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*&amp;amp; Form user_command&lt;/P&gt;&lt;P&gt;*&amp;amp;----&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;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;FORM user_command.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: save_ok TYPE sy-ucomm.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;save_ok = sy-ucomm.&lt;/P&gt;&lt;P&gt;CLEAR sy-ucomm.&lt;/P&gt;&lt;P&gt;CASE save_ok.&lt;/P&gt;&lt;P&gt;WHEN 'CANCEL'.&lt;/P&gt;&lt;P&gt;CALL METHOD o_event_receiver-&amp;gt;reset.&lt;/P&gt;&lt;P&gt;LEAVE TO SCREEN 0.&lt;/P&gt;&lt;P&gt;ENDCASE.&lt;/P&gt;&lt;P&gt;ENDFORM. "user_command&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*&amp;amp; Form switch_edit_mode&lt;/P&gt;&lt;P&gt;*&amp;amp;----&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;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;FORM switch_edit_mode.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IF g_grid-&amp;gt;is_ready_for_input( ) EQ 0.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;set edit enabled cells ready for input&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;CALL METHOD g_grid-&amp;gt;set_ready_for_input&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;i_ready_for_input = 1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ELSE.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;lock edit enabled cells against input&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;CALL METHOD g_grid-&amp;gt;set_ready_for_input&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;i_ready_for_input = 0.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;ENDFORM. "switch_edit_mode&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;sudheer.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 07 Jun 2007 13:29:12 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/alv-oops/m-p/2384971#M529927</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-06-07T13:29:12Z</dc:date>
    </item>
    <item>
      <title>Re: alv oops</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/alv-oops/m-p/2384972#M529928</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;&lt;/P&gt;&lt;P&gt;see any of the system defined programs that start with BCALV_EDIT_*&lt;/P&gt;&lt;P&gt;there u can find good examples.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;rgds,&lt;/P&gt;&lt;P&gt;bharat.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 07 Jun 2007 13:30:18 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/alv-oops/m-p/2384972#M529928</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-06-07T13:30:18Z</dc:date>
    </item>
  </channel>
</rss>

