<?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: Refresh grid sourceitab. in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/refresh-grid-sourceitab/m-p/3706307#M892418</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;here's the code, hope you can use it without syntax errors:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;program bcalv_edit_05.&lt;/P&gt;&lt;P&gt;*&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Purpose:&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;~~~~~~~~&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;This example shows how to use checkboxes within an ALV Grid Control.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;You learn:&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; o how to define a column for editable checkboxes for an attribute&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   of your list (see also remark below)&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; o how to evaluate the checked checkboxes&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; o how to switch between editable and non-editable checkboxes&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;Important Remark&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;~~~~~~~~~~~~~~~~&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;The checkbox functionality has been replaced by selection buttons&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;in front of each row (field SEL_MODE of the layout structure&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;set to 'A' or 'D'; when using the editable ALV Grid Control,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;these selection buttons are always visible).&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Class methods like GET_SELECTED_ROWS work only for this new&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;functionality and not for checkboxes.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Thus checkboxes should not be used for line selection but for&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;a column as an additional or for an already existing attribute&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;(like field SMOKER in SBOOK).&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------" /&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;To check program behavior&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;~~~~~~~~~~~~~~~~~~~~~~~~~&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Try out the functions displayed in the application toolbar:&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;o The first sets all checked lines to initial values.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  (see form reset_selected_entries)&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;o The seconds marks all checkboxes that are input enabled&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;o The third unmarks all checkboxes that are input enabled&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;o To try the forth, you have to select a line first using&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  the selection buttons on the left.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  The function deactivates/activates a checkbox.&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;Checkboxes may be locked/unlocked using a double click on the&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;checkbox cell.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------" /&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Essential steps (search for '§')&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;~~~~~~~~~~~~~~~&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;This example focusses on two aspects of checkboxes in an&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;editable ALV Grid Control:&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;A How to integrate, set, reset and evaluate checkboxes&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;B What you must do to lock particular checkboxes against input&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;A) Integrate, set, reset and evaluate checkboxes&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;A1.Extend your output table by a checkbox field.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;A2.Add an entry for the checkbox in the fieldcatalog&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;A3.Optionally, check checkboxes initially after selecting data.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;A4.Before you (a)set, (b)reset, (c)(de)activate or&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   (d)evaluate checkboxes, you must check the input cells.&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;B) Lock particular checkboxes against input&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;B1.Extend your output table by a field to dis- or enable&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    cells for input.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;B2.After selecting data,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    assign a style for each row of your checkbox column.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;B3.Use the layout structure to aquaint additional field to ALV.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;B4.Switch the style to dis- or enable a cell for input&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------" /&gt;&lt;P&gt;*&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&lt;/P&gt;&lt;P&gt;class lcl_event_receiver definition deferred.  "for event handling&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data: ok_code like sy-ucomm,&lt;/P&gt;&lt;P&gt;      save_ok like sy-ucomm,&lt;/P&gt;&lt;P&gt;      g_container type scrfname value 'BCALV_GRID_DEMO_0100_CONT1',&lt;/P&gt;&lt;P&gt;      g_grid  type ref to cl_gui_alv_grid,&lt;/P&gt;&lt;P&gt;      g_custom_container type ref to cl_gui_custom_container,&lt;/P&gt;&lt;P&gt;      g_event_receiver type ref to lcl_event_receiver,&lt;/P&gt;&lt;P&gt;      gt_fieldcat type lvc_t_fcat,&lt;/P&gt;&lt;P&gt;      gs_layout type lvc_s_layo,&lt;/P&gt;&lt;P&gt;      g_max type i value 100.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*§A1.Extend your output table by a checkbox field.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    If you do not want to lock sole checkboxes against input&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    you do not need field 'celltab'.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;types: begin of gs_outtab.&lt;/P&gt;&lt;P&gt;types: checkbox type c.                "field for checkbox&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;§B1.Extend your output table by a field to dis- or enable&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    cells for input.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;types: celltab type lvc_t_styl.        "field to switch editability&lt;/P&gt;&lt;P&gt;        include structure sflight.&lt;/P&gt;&lt;P&gt;types: end of gs_outtab.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data: gt_outtab type gs_outtab occurs 0 with header line.&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;LOCAL CLASSES&lt;/P&gt;&lt;/LI&gt;&lt;/UL&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;This local class only handles event DOUBLE_CLICK.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Wenn the user double clicks on a checkbox cell the status of&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;this cell is switched from editable to not editable and vice versa.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&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: catch_doubleclick&lt;/P&gt;&lt;P&gt;         for event double_click of cl_gui_alv_grid&lt;/P&gt;&lt;P&gt;         importing&lt;/P&gt;&lt;P&gt;            e_column&lt;/P&gt;&lt;P&gt;            es_row_no&lt;/P&gt;&lt;P&gt;            sender.&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;/P&gt;&lt;P&gt;class lcl_event_receiver implementation.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;method catch_doubleclick.&lt;/P&gt;&lt;P&gt;  data: ls_outtab type gs_outtab,&lt;/P&gt;&lt;P&gt;        ls_celltab type lvc_s_styl.&lt;/P&gt;&lt;P&gt;*--&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Function:&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; Switch between 'editable' and 'not editable' checkbox.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&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;If the user clicked on another column there is&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;nothing to do.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  if e_column-fieldname ne 'CHECKBOX'.&lt;/P&gt;&lt;P&gt;    exit.&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  read table gt_outtab into ls_outtab index es_row_no-row_id.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;The loop is only needed if there are other columns that&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;use checkboxes. At this point the loop could be&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;replaced by a READ of the first line of CELLTAB.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      loop at ls_outtab-celltab into ls_celltab.&lt;/P&gt;&lt;P&gt;        if ls_celltab-fieldname eq 'CHECKBOX'.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;§B4.Switch the style to dis- or enable a cell for input&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;         if ls_celltab-style = cl_gui_alv_grid=&amp;gt;mc_style_enabled.&lt;/P&gt;&lt;P&gt;          ls_celltab-style = cl_gui_alv_grid=&amp;gt;mc_style_disabled.&lt;/P&gt;&lt;P&gt;         else.&lt;/P&gt;&lt;P&gt;          ls_celltab-style = cl_gui_alv_grid=&amp;gt;mc_style_enabled.&lt;/P&gt;&lt;P&gt;         endif.&lt;/P&gt;&lt;P&gt;         modify ls_outtab-celltab from ls_celltab.&lt;/P&gt;&lt;P&gt;        endif.&lt;/P&gt;&lt;P&gt;      endloop.&lt;/P&gt;&lt;P&gt;      modify gt_outtab from ls_outtab index es_row_no-row_id.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    call method sender-&amp;gt;refresh_table_display.&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;&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;      MAIN                                                          *&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;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;/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;    perform create_and_init_alv.&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endmodule.&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 = ok_code.&lt;/P&gt;&lt;P&gt;  clear ok_code.&lt;/P&gt;&lt;P&gt;  case save_ok.&lt;/P&gt;&lt;P&gt;    when 'EXIT'.&lt;/P&gt;&lt;P&gt;      perform exit_program.&lt;/P&gt;&lt;P&gt;    when 'SELECT'.&lt;/P&gt;&lt;P&gt;      perform select_all_entries changing gt_outtab[].&lt;/P&gt;&lt;P&gt;    when 'DESELECT'.&lt;/P&gt;&lt;P&gt;      perform deselect_all_entries changing gt_outtab[].&lt;/P&gt;&lt;P&gt;    when 'RESET'.&lt;/P&gt;&lt;P&gt;      perform reset_selected_entries changing gt_outtab[].&lt;/P&gt;&lt;P&gt;    when 'SWITCH'.&lt;/P&gt;&lt;P&gt;      perform switch_activation changing gt_outtab[].&lt;/P&gt;&lt;P&gt;  endcase.&lt;/P&gt;&lt;P&gt;endmodule.&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.&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;lt;--P_GT_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 = 'SFLIGHT'&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;*§A2.Add an entry for the checkbox in the fieldcatalog&lt;/P&gt;&lt;P&gt;  clear ls_fcat.&lt;/P&gt;&lt;P&gt;  ls_fcat-fieldname = 'CHECKBOX'.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Essential: declare field as checkbox and&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;           mark it as editable field:&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  ls_fcat-checkbox = 'X'.&lt;/P&gt;&lt;P&gt;  ls_fcat-edit = 'X'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;do not forget to provide texts for this extra field&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  ls_fcat-coltext = text-f01.&lt;/P&gt;&lt;P&gt;  ls_fcat-tooltip = text-f02.&lt;/P&gt;&lt;P&gt;  ls_fcat-seltext = text-f03.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;optional: set column width&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  ls_fcat-outputlen = 10.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;  append ls_fcat to pt_fieldcat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endform.&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;lt;--P_GT_OUTTAB  text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     &amp;lt;--P_GT_FIELDCAT  text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     &amp;lt;--P_GS_LAYOUT  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.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  data: lt_exclude type ui_functions.&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;P&gt;  create object g_grid&lt;/P&gt;&lt;P&gt;         exporting i_parent = g_custom_container.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  perform build_fieldcat changing gt_fieldcat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Exclude all edit functions in this example since we do not need them:&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.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*§ B3.Use the layout structure to aquaint additional field to ALV.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  gs_layout-stylefname = 'CELLTAB'.&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 is_layout             = gs_layout&lt;/P&gt;&lt;P&gt;                 it_toolbar_excluding  = lt_exclude&lt;/P&gt;&lt;P&gt;       changing  it_fieldcatalog       = gt_fieldcat&lt;/P&gt;&lt;P&gt;                 it_outtab             = gt_outtab[].&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  create object g_event_receiver.&lt;/P&gt;&lt;P&gt;  set handler g_event_receiver-&amp;gt;catch_doubleclick for g_grid.&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;&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;lt;--P_LT_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;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;  ls_exclude = cl_gui_alv_grid=&amp;gt;mc_fc_loc_copy.&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_cut.&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_paste.&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_paste_new_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_undo.&lt;/P&gt;&lt;P&gt;  append ls_exclude to pt_exclude.&lt;/P&gt;&lt;P&gt;&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.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  data: lt_sflight type table of sflight,&lt;/P&gt;&lt;P&gt;        ls_sflight type sflight,&lt;/P&gt;&lt;P&gt;        ls_celltab type lvc_s_styl,&lt;/P&gt;&lt;P&gt;        lt_celltab type lvc_t_styl,&lt;/P&gt;&lt;P&gt;        l_index type i.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  select * from sflight into table lt_sflight up to g_max rows.&lt;/P&gt;&lt;P&gt;  if sy-subrc ne 0.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;generate own entries if db-table is empty so that this example&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;still works&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    perform generate_entries changing lt_sflight.&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*§A3.Optionally, check checkboxes initially after selecting data.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;(Omitted in this example)&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  loop at lt_sflight into ls_sflight.&lt;/P&gt;&lt;P&gt;    move-corresponding ls_sflight to gt_outtab.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  if gt_outtab-connid eq '400'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    gt_outtab-checkbox = 'X'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    append gt_outtab.&lt;/P&gt;&lt;P&gt;  endloop.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;§B2.After selecting data,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   assign a style for each row of your checkbox column.&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;Initially, set all checkbox cells editable.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  ls_celltab-fieldname = 'CHECKBOX'.&lt;/P&gt;&lt;P&gt;  ls_celltab-style = cl_gui_alv_grid=&amp;gt;mc_style_enabled.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  loop at gt_outtab.&lt;/P&gt;&lt;P&gt;    l_index = sy-tabix.&lt;/P&gt;&lt;P&gt;    refresh lt_celltab.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    ls_celltab-fieldname = 'CHECKBOX'.&lt;/P&gt;&lt;P&gt;    ls_celltab-style = cl_gui_alv_grid=&amp;gt;mc_style_enabled.&lt;/P&gt;&lt;P&gt;    insert ls_celltab into table lt_celltab.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    insert lines of lt_celltab into table gt_outtab-celltab.&lt;/P&gt;&lt;P&gt;    modify gt_outtab index l_index.&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;*&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;lt;--P_LT_SLFIGHT  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_slfight type standard table.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;This form is only needed for the case that there is no&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;data in database table SFLIGHT.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;  data: ls_sflight type sflight,&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;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ls_sflight-carrid = 'LH'.&lt;/P&gt;&lt;P&gt;  ls_sflight-connid = '0400'.&lt;/P&gt;&lt;P&gt;  ls_sflight-currency = 'DEM'.&lt;/P&gt;&lt;P&gt;  ls_sflight-planetype = '747-400'.&lt;/P&gt;&lt;P&gt;  ls_sflight-seatsmax = 660.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  do 110 times.&lt;/P&gt;&lt;P&gt;    ls_sflight-price = sy-index * 100.&lt;/P&gt;&lt;P&gt;    ls_sflight-seatsocc = 660 - sy-index * 6.&lt;/P&gt;&lt;P&gt;    ls_sflight-paymentsum = ls_sflight-seatsocc * ls_sflight-price.&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 = l_month + sy-index * 2.&lt;/P&gt;&lt;P&gt;      l_date+0(4) = '2000'.&lt;/P&gt;&lt;P&gt;      l_date&lt;EM&gt;4(2) = l_month&lt;/EM&gt;0(2).&lt;/P&gt;&lt;P&gt;      l_date&lt;EM&gt;6(2) = l_day&lt;/EM&gt;0(2).&lt;/P&gt;&lt;P&gt;      ls_sflight-fldate = l_date.&lt;/P&gt;&lt;P&gt;      append ls_sflight to pt_slfight.&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;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  select_all_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;lt;--P_GT_OUTTAB  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 select_all_entries changing pt_outtab type standard table.&lt;/P&gt;&lt;P&gt;  data: ls_outtab type gs_outtab.&lt;/P&gt;&lt;P&gt;  data: l_valid type c,&lt;/P&gt;&lt;P&gt;        l_locked type c.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*§A4ad. Before you (a)set, reset or (d)evaluate checkboxes,&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      you must check the input cells.&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;If all entries are ok, ALV transferes new values to the output&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;table which you then can modify.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  call method g_grid-&amp;gt;check_changed_data&lt;/P&gt;&lt;P&gt;              importing&lt;/P&gt;&lt;P&gt;                 e_valid = l_valid.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  if l_valid eq 'X'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    loop at pt_outtab into ls_outtab.&lt;/P&gt;&lt;P&gt;      perform check_lock using    ls_outtab&lt;/P&gt;&lt;P&gt;                         changing l_locked.&lt;/P&gt;&lt;P&gt;      if l_locked is initial&lt;/P&gt;&lt;P&gt;         and not ls_outtab-checkbox eq '-'.&lt;/P&gt;&lt;P&gt;        ls_outtab-checkbox = 'X'.&lt;/P&gt;&lt;P&gt;      endif.&lt;/P&gt;&lt;P&gt;      modify pt_outtab from ls_outtab.&lt;/P&gt;&lt;P&gt;    endloop.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    call method g_grid-&amp;gt;refresh_table_display.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endform.                               " select_all_entries&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  deselect_all_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;lt;--P_GT_OUTTAB[]  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 deselect_all_entries changing pt_outtab type standard table.&lt;/P&gt;&lt;P&gt;  data: ls_outtab type gs_outtab.&lt;/P&gt;&lt;P&gt;  data: l_valid type c,&lt;/P&gt;&lt;P&gt;        l_locked type c.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*§A4ad. Before you (a)set, reset or (d)evaluate checkboxes,&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      you must check the input cells.&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;If all entries are ok, ALV transferes new values to the output&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;table which you then can modify.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  call method g_grid-&amp;gt;check_changed_data&lt;/P&gt;&lt;P&gt;              importing&lt;/P&gt;&lt;P&gt;                 e_valid = l_valid.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  if l_valid eq 'X'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    loop at pt_outtab into ls_outtab.&lt;/P&gt;&lt;P&gt;      perform check_lock using    ls_outtab&lt;/P&gt;&lt;P&gt;                       changing l_locked.&lt;/P&gt;&lt;P&gt;      if l_locked is initial&lt;/P&gt;&lt;P&gt;         and not ls_outtab-checkbox eq '-'.&lt;/P&gt;&lt;P&gt;        ls_outtab-checkbox = ' '.&lt;/P&gt;&lt;P&gt;      endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      modify pt_outtab from ls_outtab.&lt;/P&gt;&lt;P&gt;    endloop.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    call method g_grid-&amp;gt;refresh_table_display.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endform.                               " deselect_all_entries&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  reset_selected_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;lt;--P_GT_OUTTAB[]  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 reset_selected_entries changing pt_outtab type standard table.&lt;/P&gt;&lt;P&gt;  data: ls_outtab type gs_outtab.&lt;/P&gt;&lt;P&gt;  data: l_valid type c.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*§A4b. Before you set, (b)reset or evaluate checkboxes,&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     you must check the input cells.&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;If all entries are ok, ALV transferes new values to the output&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;table which you then can modify.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  call method g_grid-&amp;gt;check_changed_data&lt;/P&gt;&lt;P&gt;              importing&lt;/P&gt;&lt;P&gt;                 e_valid = l_valid.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  if l_valid eq 'X'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    loop at pt_outtab into ls_outtab.&lt;/P&gt;&lt;P&gt;      if     not ls_outtab-checkbox is initial&lt;/P&gt;&lt;P&gt;         and not ls_outtab-checkbox eq '-'.&lt;/P&gt;&lt;P&gt;        clear ls_outtab.&lt;/P&gt;&lt;P&gt;        modify pt_outtab from ls_outtab.&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;    call method g_grid-&amp;gt;refresh_table_display.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endform.                               " reset_selected_entries&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;form switch_activation changing pt_outtab type standard table.&lt;/P&gt;&lt;P&gt;  data: ls_outtab type gs_outtab.&lt;/P&gt;&lt;P&gt;  data: l_valid type c,&lt;/P&gt;&lt;P&gt;        lt_row_no type lvc_t_roid with header line.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*§A4c. Before you set, reset, (c)(de)activate &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     or evaluate checkboxes, you must check the input cells.&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;If all entries are ok, ALV transferes new values to the output&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;table which you then can modify.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  call method g_grid-&amp;gt;check_changed_data&lt;/P&gt;&lt;P&gt;              importing&lt;/P&gt;&lt;P&gt;                 e_valid = l_valid.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  if l_valid eq 'X'.&lt;/P&gt;&lt;P&gt;    call method g_grid-&amp;gt;get_selected_rows&lt;/P&gt;&lt;P&gt;      importing&lt;/P&gt;&lt;P&gt;         et_row_no     = lt_row_no[].&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    loop at lt_row_no.&lt;/P&gt;&lt;P&gt;       read table pt_outtab into ls_outtab index lt_row_no-row_id.&lt;/P&gt;&lt;P&gt;       if ls_outtab-checkbox ne '-'.&lt;/P&gt;&lt;P&gt;         ls_outtab-checkbox = '-'.&lt;/P&gt;&lt;P&gt;       else.&lt;/P&gt;&lt;P&gt;         ls_outtab-checkbox = ' '.&lt;/P&gt;&lt;P&gt;       endif.&lt;/P&gt;&lt;P&gt;       modify pt_outtab from ls_outtab index lt_row_no-row_id.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    endloop.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    call method g_grid-&amp;gt;refresh_table_display.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endform.                               " switch_activation&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  check_lock&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;P_LS_OUTTAB  text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     &amp;lt;--P_L_LOCKED  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 check_lock using    ps_outtab type gs_outtab&lt;/P&gt;&lt;P&gt;                changing p_locked.&lt;/P&gt;&lt;P&gt;  data ls_celltab type lvc_s_styl.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  loop at ps_outtab-celltab into ls_celltab.&lt;/P&gt;&lt;P&gt;    if ls_celltab-fieldname = 'CHECKBOX'.&lt;/P&gt;&lt;P&gt;      if ls_celltab-style eq cl_gui_alv_grid=&amp;gt;mc_style_disabled.&lt;/P&gt;&lt;P&gt;        p_locked = 'X'.&lt;/P&gt;&lt;P&gt;      else.&lt;/P&gt;&lt;P&gt;        p_locked = space.&lt;/P&gt;&lt;P&gt;      endif.&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.                               " check_lock&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 17 Apr 2008 09:27:29 GMT</pubDate>
    <dc:creator>Sm1tje</dc:creator>
    <dc:date>2008-04-17T09:27:29Z</dc:date>
    <item>
      <title>Refresh grid sourceitab.</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/refresh-grid-sourceitab/m-p/3706304#M892415</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi there.  How can I do such thibg that when I click checkbox inside grid's cell - grid's sourceitab will be modified with sourceitab-cbox = 'X'  ? Which events of cl_gui_alv_grid could be helpful? Greetings. P.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 17 Apr 2008 08:42:59 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/refresh-grid-sourceitab/m-p/3706304#M892415</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-04-17T08:42:59Z</dc:date>
    </item>
    <item>
      <title>Re: Refresh grid sourceitab.</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/refresh-grid-sourceitab/m-p/3706305#M892416</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;have a look at report BCALV_EDIT_05.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 17 Apr 2008 09:14:27 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/refresh-grid-sourceitab/m-p/3706305#M892416</guid>
      <dc:creator>Sm1tje</dc:creator>
      <dc:date>2008-04-17T09:14:27Z</dc:date>
    </item>
    <item>
      <title>Re: Refresh grid sourceitab.</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/refresh-grid-sourceitab/m-p/3706306#M892417</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&lt;STRONG&gt;Micky Oestreich&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;We have no BCALV_EDIT_05 program. Only from 01 to 04&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 17 Apr 2008 09:24:21 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/refresh-grid-sourceitab/m-p/3706306#M892417</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-04-17T09:24:21Z</dc:date>
    </item>
    <item>
      <title>Re: Refresh grid sourceitab.</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/refresh-grid-sourceitab/m-p/3706307#M892418</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;here's the code, hope you can use it without syntax errors:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;program bcalv_edit_05.&lt;/P&gt;&lt;P&gt;*&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Purpose:&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;~~~~~~~~&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;This example shows how to use checkboxes within an ALV Grid Control.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;You learn:&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; o how to define a column for editable checkboxes for an attribute&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   of your list (see also remark below)&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; o how to evaluate the checked checkboxes&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; o how to switch between editable and non-editable checkboxes&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;Important Remark&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;~~~~~~~~~~~~~~~~&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;The checkbox functionality has been replaced by selection buttons&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;in front of each row (field SEL_MODE of the layout structure&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;set to 'A' or 'D'; when using the editable ALV Grid Control,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;these selection buttons are always visible).&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Class methods like GET_SELECTED_ROWS work only for this new&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;functionality and not for checkboxes.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Thus checkboxes should not be used for line selection but for&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;a column as an additional or for an already existing attribute&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;(like field SMOKER in SBOOK).&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------" /&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;To check program behavior&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;~~~~~~~~~~~~~~~~~~~~~~~~~&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Try out the functions displayed in the application toolbar:&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;o The first sets all checked lines to initial values.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  (see form reset_selected_entries)&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;o The seconds marks all checkboxes that are input enabled&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;o The third unmarks all checkboxes that are input enabled&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;o To try the forth, you have to select a line first using&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  the selection buttons on the left.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  The function deactivates/activates a checkbox.&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;Checkboxes may be locked/unlocked using a double click on the&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;checkbox cell.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------" /&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Essential steps (search for '§')&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;~~~~~~~~~~~~~~~&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;This example focusses on two aspects of checkboxes in an&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;editable ALV Grid Control:&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;A How to integrate, set, reset and evaluate checkboxes&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;B What you must do to lock particular checkboxes against input&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;A) Integrate, set, reset and evaluate checkboxes&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;A1.Extend your output table by a checkbox field.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;A2.Add an entry for the checkbox in the fieldcatalog&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;A3.Optionally, check checkboxes initially after selecting data.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;A4.Before you (a)set, (b)reset, (c)(de)activate or&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   (d)evaluate checkboxes, you must check the input cells.&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;B) Lock particular checkboxes against input&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;B1.Extend your output table by a field to dis- or enable&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    cells for input.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;B2.After selecting data,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    assign a style for each row of your checkbox column.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;B3.Use the layout structure to aquaint additional field to ALV.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;B4.Switch the style to dis- or enable a cell for input&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------" /&gt;&lt;P&gt;*&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&lt;/P&gt;&lt;P&gt;class lcl_event_receiver definition deferred.  "for event handling&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data: ok_code like sy-ucomm,&lt;/P&gt;&lt;P&gt;      save_ok like sy-ucomm,&lt;/P&gt;&lt;P&gt;      g_container type scrfname value 'BCALV_GRID_DEMO_0100_CONT1',&lt;/P&gt;&lt;P&gt;      g_grid  type ref to cl_gui_alv_grid,&lt;/P&gt;&lt;P&gt;      g_custom_container type ref to cl_gui_custom_container,&lt;/P&gt;&lt;P&gt;      g_event_receiver type ref to lcl_event_receiver,&lt;/P&gt;&lt;P&gt;      gt_fieldcat type lvc_t_fcat,&lt;/P&gt;&lt;P&gt;      gs_layout type lvc_s_layo,&lt;/P&gt;&lt;P&gt;      g_max type i value 100.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*§A1.Extend your output table by a checkbox field.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    If you do not want to lock sole checkboxes against input&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    you do not need field 'celltab'.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;types: begin of gs_outtab.&lt;/P&gt;&lt;P&gt;types: checkbox type c.                "field for checkbox&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;§B1.Extend your output table by a field to dis- or enable&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    cells for input.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;types: celltab type lvc_t_styl.        "field to switch editability&lt;/P&gt;&lt;P&gt;        include structure sflight.&lt;/P&gt;&lt;P&gt;types: end of gs_outtab.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data: gt_outtab type gs_outtab occurs 0 with header line.&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;LOCAL CLASSES&lt;/P&gt;&lt;/LI&gt;&lt;/UL&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;This local class only handles event DOUBLE_CLICK.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Wenn the user double clicks on a checkbox cell the status of&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;this cell is switched from editable to not editable and vice versa.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&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: catch_doubleclick&lt;/P&gt;&lt;P&gt;         for event double_click of cl_gui_alv_grid&lt;/P&gt;&lt;P&gt;         importing&lt;/P&gt;&lt;P&gt;            e_column&lt;/P&gt;&lt;P&gt;            es_row_no&lt;/P&gt;&lt;P&gt;            sender.&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;/P&gt;&lt;P&gt;class lcl_event_receiver implementation.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;method catch_doubleclick.&lt;/P&gt;&lt;P&gt;  data: ls_outtab type gs_outtab,&lt;/P&gt;&lt;P&gt;        ls_celltab type lvc_s_styl.&lt;/P&gt;&lt;P&gt;*--&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Function:&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; Switch between 'editable' and 'not editable' checkbox.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&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;If the user clicked on another column there is&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;nothing to do.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  if e_column-fieldname ne 'CHECKBOX'.&lt;/P&gt;&lt;P&gt;    exit.&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  read table gt_outtab into ls_outtab index es_row_no-row_id.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;The loop is only needed if there are other columns that&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;use checkboxes. At this point the loop could be&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;replaced by a READ of the first line of CELLTAB.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      loop at ls_outtab-celltab into ls_celltab.&lt;/P&gt;&lt;P&gt;        if ls_celltab-fieldname eq 'CHECKBOX'.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;§B4.Switch the style to dis- or enable a cell for input&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;         if ls_celltab-style = cl_gui_alv_grid=&amp;gt;mc_style_enabled.&lt;/P&gt;&lt;P&gt;          ls_celltab-style = cl_gui_alv_grid=&amp;gt;mc_style_disabled.&lt;/P&gt;&lt;P&gt;         else.&lt;/P&gt;&lt;P&gt;          ls_celltab-style = cl_gui_alv_grid=&amp;gt;mc_style_enabled.&lt;/P&gt;&lt;P&gt;         endif.&lt;/P&gt;&lt;P&gt;         modify ls_outtab-celltab from ls_celltab.&lt;/P&gt;&lt;P&gt;        endif.&lt;/P&gt;&lt;P&gt;      endloop.&lt;/P&gt;&lt;P&gt;      modify gt_outtab from ls_outtab index es_row_no-row_id.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    call method sender-&amp;gt;refresh_table_display.&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;&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;      MAIN                                                          *&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;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;/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;    perform create_and_init_alv.&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endmodule.&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 = ok_code.&lt;/P&gt;&lt;P&gt;  clear ok_code.&lt;/P&gt;&lt;P&gt;  case save_ok.&lt;/P&gt;&lt;P&gt;    when 'EXIT'.&lt;/P&gt;&lt;P&gt;      perform exit_program.&lt;/P&gt;&lt;P&gt;    when 'SELECT'.&lt;/P&gt;&lt;P&gt;      perform select_all_entries changing gt_outtab[].&lt;/P&gt;&lt;P&gt;    when 'DESELECT'.&lt;/P&gt;&lt;P&gt;      perform deselect_all_entries changing gt_outtab[].&lt;/P&gt;&lt;P&gt;    when 'RESET'.&lt;/P&gt;&lt;P&gt;      perform reset_selected_entries changing gt_outtab[].&lt;/P&gt;&lt;P&gt;    when 'SWITCH'.&lt;/P&gt;&lt;P&gt;      perform switch_activation changing gt_outtab[].&lt;/P&gt;&lt;P&gt;  endcase.&lt;/P&gt;&lt;P&gt;endmodule.&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.&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;lt;--P_GT_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 = 'SFLIGHT'&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;*§A2.Add an entry for the checkbox in the fieldcatalog&lt;/P&gt;&lt;P&gt;  clear ls_fcat.&lt;/P&gt;&lt;P&gt;  ls_fcat-fieldname = 'CHECKBOX'.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Essential: declare field as checkbox and&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;           mark it as editable field:&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  ls_fcat-checkbox = 'X'.&lt;/P&gt;&lt;P&gt;  ls_fcat-edit = 'X'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;do not forget to provide texts for this extra field&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  ls_fcat-coltext = text-f01.&lt;/P&gt;&lt;P&gt;  ls_fcat-tooltip = text-f02.&lt;/P&gt;&lt;P&gt;  ls_fcat-seltext = text-f03.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;optional: set column width&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  ls_fcat-outputlen = 10.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;  append ls_fcat to pt_fieldcat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endform.&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;lt;--P_GT_OUTTAB  text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     &amp;lt;--P_GT_FIELDCAT  text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     &amp;lt;--P_GS_LAYOUT  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.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  data: lt_exclude type ui_functions.&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;P&gt;  create object g_grid&lt;/P&gt;&lt;P&gt;         exporting i_parent = g_custom_container.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  perform build_fieldcat changing gt_fieldcat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Exclude all edit functions in this example since we do not need them:&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.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*§ B3.Use the layout structure to aquaint additional field to ALV.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  gs_layout-stylefname = 'CELLTAB'.&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 is_layout             = gs_layout&lt;/P&gt;&lt;P&gt;                 it_toolbar_excluding  = lt_exclude&lt;/P&gt;&lt;P&gt;       changing  it_fieldcatalog       = gt_fieldcat&lt;/P&gt;&lt;P&gt;                 it_outtab             = gt_outtab[].&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  create object g_event_receiver.&lt;/P&gt;&lt;P&gt;  set handler g_event_receiver-&amp;gt;catch_doubleclick for g_grid.&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;&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;lt;--P_LT_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;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;  ls_exclude = cl_gui_alv_grid=&amp;gt;mc_fc_loc_copy.&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_cut.&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_paste.&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_paste_new_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_undo.&lt;/P&gt;&lt;P&gt;  append ls_exclude to pt_exclude.&lt;/P&gt;&lt;P&gt;&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.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  data: lt_sflight type table of sflight,&lt;/P&gt;&lt;P&gt;        ls_sflight type sflight,&lt;/P&gt;&lt;P&gt;        ls_celltab type lvc_s_styl,&lt;/P&gt;&lt;P&gt;        lt_celltab type lvc_t_styl,&lt;/P&gt;&lt;P&gt;        l_index type i.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  select * from sflight into table lt_sflight up to g_max rows.&lt;/P&gt;&lt;P&gt;  if sy-subrc ne 0.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;generate own entries if db-table is empty so that this example&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;still works&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    perform generate_entries changing lt_sflight.&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*§A3.Optionally, check checkboxes initially after selecting data.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;(Omitted in this example)&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  loop at lt_sflight into ls_sflight.&lt;/P&gt;&lt;P&gt;    move-corresponding ls_sflight to gt_outtab.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  if gt_outtab-connid eq '400'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    gt_outtab-checkbox = 'X'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    append gt_outtab.&lt;/P&gt;&lt;P&gt;  endloop.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;§B2.After selecting data,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   assign a style for each row of your checkbox column.&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;Initially, set all checkbox cells editable.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  ls_celltab-fieldname = 'CHECKBOX'.&lt;/P&gt;&lt;P&gt;  ls_celltab-style = cl_gui_alv_grid=&amp;gt;mc_style_enabled.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  loop at gt_outtab.&lt;/P&gt;&lt;P&gt;    l_index = sy-tabix.&lt;/P&gt;&lt;P&gt;    refresh lt_celltab.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    ls_celltab-fieldname = 'CHECKBOX'.&lt;/P&gt;&lt;P&gt;    ls_celltab-style = cl_gui_alv_grid=&amp;gt;mc_style_enabled.&lt;/P&gt;&lt;P&gt;    insert ls_celltab into table lt_celltab.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    insert lines of lt_celltab into table gt_outtab-celltab.&lt;/P&gt;&lt;P&gt;    modify gt_outtab index l_index.&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;*&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;lt;--P_LT_SLFIGHT  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_slfight type standard table.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;This form is only needed for the case that there is no&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;data in database table SFLIGHT.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;  data: ls_sflight type sflight,&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;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ls_sflight-carrid = 'LH'.&lt;/P&gt;&lt;P&gt;  ls_sflight-connid = '0400'.&lt;/P&gt;&lt;P&gt;  ls_sflight-currency = 'DEM'.&lt;/P&gt;&lt;P&gt;  ls_sflight-planetype = '747-400'.&lt;/P&gt;&lt;P&gt;  ls_sflight-seatsmax = 660.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  do 110 times.&lt;/P&gt;&lt;P&gt;    ls_sflight-price = sy-index * 100.&lt;/P&gt;&lt;P&gt;    ls_sflight-seatsocc = 660 - sy-index * 6.&lt;/P&gt;&lt;P&gt;    ls_sflight-paymentsum = ls_sflight-seatsocc * ls_sflight-price.&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 = l_month + sy-index * 2.&lt;/P&gt;&lt;P&gt;      l_date+0(4) = '2000'.&lt;/P&gt;&lt;P&gt;      l_date&lt;EM&gt;4(2) = l_month&lt;/EM&gt;0(2).&lt;/P&gt;&lt;P&gt;      l_date&lt;EM&gt;6(2) = l_day&lt;/EM&gt;0(2).&lt;/P&gt;&lt;P&gt;      ls_sflight-fldate = l_date.&lt;/P&gt;&lt;P&gt;      append ls_sflight to pt_slfight.&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;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  select_all_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;lt;--P_GT_OUTTAB  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 select_all_entries changing pt_outtab type standard table.&lt;/P&gt;&lt;P&gt;  data: ls_outtab type gs_outtab.&lt;/P&gt;&lt;P&gt;  data: l_valid type c,&lt;/P&gt;&lt;P&gt;        l_locked type c.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*§A4ad. Before you (a)set, reset or (d)evaluate checkboxes,&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      you must check the input cells.&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;If all entries are ok, ALV transferes new values to the output&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;table which you then can modify.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  call method g_grid-&amp;gt;check_changed_data&lt;/P&gt;&lt;P&gt;              importing&lt;/P&gt;&lt;P&gt;                 e_valid = l_valid.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  if l_valid eq 'X'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    loop at pt_outtab into ls_outtab.&lt;/P&gt;&lt;P&gt;      perform check_lock using    ls_outtab&lt;/P&gt;&lt;P&gt;                         changing l_locked.&lt;/P&gt;&lt;P&gt;      if l_locked is initial&lt;/P&gt;&lt;P&gt;         and not ls_outtab-checkbox eq '-'.&lt;/P&gt;&lt;P&gt;        ls_outtab-checkbox = 'X'.&lt;/P&gt;&lt;P&gt;      endif.&lt;/P&gt;&lt;P&gt;      modify pt_outtab from ls_outtab.&lt;/P&gt;&lt;P&gt;    endloop.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    call method g_grid-&amp;gt;refresh_table_display.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endform.                               " select_all_entries&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  deselect_all_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;lt;--P_GT_OUTTAB[]  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 deselect_all_entries changing pt_outtab type standard table.&lt;/P&gt;&lt;P&gt;  data: ls_outtab type gs_outtab.&lt;/P&gt;&lt;P&gt;  data: l_valid type c,&lt;/P&gt;&lt;P&gt;        l_locked type c.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*§A4ad. Before you (a)set, reset or (d)evaluate checkboxes,&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      you must check the input cells.&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;If all entries are ok, ALV transferes new values to the output&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;table which you then can modify.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  call method g_grid-&amp;gt;check_changed_data&lt;/P&gt;&lt;P&gt;              importing&lt;/P&gt;&lt;P&gt;                 e_valid = l_valid.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  if l_valid eq 'X'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    loop at pt_outtab into ls_outtab.&lt;/P&gt;&lt;P&gt;      perform check_lock using    ls_outtab&lt;/P&gt;&lt;P&gt;                       changing l_locked.&lt;/P&gt;&lt;P&gt;      if l_locked is initial&lt;/P&gt;&lt;P&gt;         and not ls_outtab-checkbox eq '-'.&lt;/P&gt;&lt;P&gt;        ls_outtab-checkbox = ' '.&lt;/P&gt;&lt;P&gt;      endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      modify pt_outtab from ls_outtab.&lt;/P&gt;&lt;P&gt;    endloop.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    call method g_grid-&amp;gt;refresh_table_display.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endform.                               " deselect_all_entries&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  reset_selected_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;lt;--P_GT_OUTTAB[]  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 reset_selected_entries changing pt_outtab type standard table.&lt;/P&gt;&lt;P&gt;  data: ls_outtab type gs_outtab.&lt;/P&gt;&lt;P&gt;  data: l_valid type c.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*§A4b. Before you set, (b)reset or evaluate checkboxes,&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     you must check the input cells.&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;If all entries are ok, ALV transferes new values to the output&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;table which you then can modify.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  call method g_grid-&amp;gt;check_changed_data&lt;/P&gt;&lt;P&gt;              importing&lt;/P&gt;&lt;P&gt;                 e_valid = l_valid.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  if l_valid eq 'X'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    loop at pt_outtab into ls_outtab.&lt;/P&gt;&lt;P&gt;      if     not ls_outtab-checkbox is initial&lt;/P&gt;&lt;P&gt;         and not ls_outtab-checkbox eq '-'.&lt;/P&gt;&lt;P&gt;        clear ls_outtab.&lt;/P&gt;&lt;P&gt;        modify pt_outtab from ls_outtab.&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;    call method g_grid-&amp;gt;refresh_table_display.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endform.                               " reset_selected_entries&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;form switch_activation changing pt_outtab type standard table.&lt;/P&gt;&lt;P&gt;  data: ls_outtab type gs_outtab.&lt;/P&gt;&lt;P&gt;  data: l_valid type c,&lt;/P&gt;&lt;P&gt;        lt_row_no type lvc_t_roid with header line.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*§A4c. Before you set, reset, (c)(de)activate &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     or evaluate checkboxes, you must check the input cells.&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;If all entries are ok, ALV transferes new values to the output&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;table which you then can modify.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  call method g_grid-&amp;gt;check_changed_data&lt;/P&gt;&lt;P&gt;              importing&lt;/P&gt;&lt;P&gt;                 e_valid = l_valid.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  if l_valid eq 'X'.&lt;/P&gt;&lt;P&gt;    call method g_grid-&amp;gt;get_selected_rows&lt;/P&gt;&lt;P&gt;      importing&lt;/P&gt;&lt;P&gt;         et_row_no     = lt_row_no[].&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    loop at lt_row_no.&lt;/P&gt;&lt;P&gt;       read table pt_outtab into ls_outtab index lt_row_no-row_id.&lt;/P&gt;&lt;P&gt;       if ls_outtab-checkbox ne '-'.&lt;/P&gt;&lt;P&gt;         ls_outtab-checkbox = '-'.&lt;/P&gt;&lt;P&gt;       else.&lt;/P&gt;&lt;P&gt;         ls_outtab-checkbox = ' '.&lt;/P&gt;&lt;P&gt;       endif.&lt;/P&gt;&lt;P&gt;       modify pt_outtab from ls_outtab index lt_row_no-row_id.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    endloop.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    call method g_grid-&amp;gt;refresh_table_display.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endform.                               " switch_activation&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  check_lock&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;P_LS_OUTTAB  text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     &amp;lt;--P_L_LOCKED  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 check_lock using    ps_outtab type gs_outtab&lt;/P&gt;&lt;P&gt;                changing p_locked.&lt;/P&gt;&lt;P&gt;  data ls_celltab type lvc_s_styl.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  loop at ps_outtab-celltab into ls_celltab.&lt;/P&gt;&lt;P&gt;    if ls_celltab-fieldname = 'CHECKBOX'.&lt;/P&gt;&lt;P&gt;      if ls_celltab-style eq cl_gui_alv_grid=&amp;gt;mc_style_disabled.&lt;/P&gt;&lt;P&gt;        p_locked = 'X'.&lt;/P&gt;&lt;P&gt;      else.&lt;/P&gt;&lt;P&gt;        p_locked = space.&lt;/P&gt;&lt;P&gt;      endif.&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.                               " check_lock&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 17 Apr 2008 09:27:29 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/refresh-grid-sourceitab/m-p/3706307#M892418</guid>
      <dc:creator>Sm1tje</dc:creator>
      <dc:date>2008-04-17T09:27:29Z</dc:date>
    </item>
    <item>
      <title>Re: Refresh grid sourceitab.</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/refresh-grid-sourceitab/m-p/3706308#M892419</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;It is possible if you set the field as a hotspot in the ALV grid. Immediately after clicking on that field HOTSPOT_CLICK event will be triggered. By implementing the event handler method you can refresh the source table.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If the field is not a hotspot, then you can refresh the content of the source table in PAI USER_COMMAND only. I mean whenever PAI is triggered.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Reward points if helpful.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks and Regards,&lt;/P&gt;&lt;P&gt;Lakshmi.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 17 Apr 2008 09:29:16 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/refresh-grid-sourceitab/m-p/3706308#M892419</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-04-17T09:29:16Z</dc:date>
    </item>
  </channel>
</rss>

