<?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: ALV Grid Problem in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/alv-grid-problem/m-p/1823146#M351565</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Manik,&lt;/P&gt;&lt;P&gt;That previous code was for editable ALV basically.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Here it is for saving. (in addition ot the previous code)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Rgds,&lt;/P&gt;&lt;P&gt;Prashanth.&lt;/P&gt;&lt;P&gt;SAP Labs.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PAI of the screen, call module user_command_0300.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;MODULE user_command_0300 INPUT.&lt;/P&gt;&lt;P&gt;  PERFORM handle_user_command_0300.&lt;/P&gt;&lt;P&gt;ENDMODULE.                 " USER_COMMAND_0300  INPUT&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM handle_user_command_0300 .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA:&lt;/P&gt;&lt;P&gt;    lv_ans.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL METHOD cl_gui_cfw=&amp;gt;dispatch.&lt;/P&gt;&lt;P&gt;  save_ok = ok_code.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR ok_code.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CASE save_ok.&lt;/P&gt;&lt;P&gt;    WHEN con_save.&lt;/P&gt;&lt;P&gt;      PERFORM prepare_to_save.&lt;/P&gt;&lt;P&gt;      PERFORM save_to_db.&lt;/P&gt;&lt;P&gt;  ...&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ENDCASE.&lt;/P&gt;&lt;P&gt;ENDFORM.                    " handle_user_command_0300&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM prepare_to_save .&lt;/P&gt;&lt;P&gt;  DATA:&lt;/P&gt;&lt;P&gt;    ls_pay_lk          TYPE /nam/pay_lk,&lt;/P&gt;&lt;P&gt;    ls_payment_old     TYPE /nam/pay_lk,&lt;/P&gt;&lt;P&gt;    ls_payment_del     TYPE /nam/pay_lk,&lt;/P&gt;&lt;P&gt;    ls_payment_buffer  TYPE epay_pay_lk_str,&lt;/P&gt;&lt;P&gt;    lt_msg_tab         TYPE epay_msg_tab,&lt;/P&gt;&lt;P&gt;    ls_msg             TYPE epay_msg_str,&lt;/P&gt;&lt;P&gt;    lv_pay_tabix       TYPE sy-tabix,&lt;/P&gt;&lt;P&gt;    lv_entry_date      TYPE sy-datum,&lt;/P&gt;&lt;P&gt;    lv_entry_time      TYPE sy-uzeit.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;If any data has been entered, get this into gt_payment&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  IF gv_pay_lk_grid IS NOT INITIAL.&lt;/P&gt;&lt;P&gt;    CALL METHOD gv_pay_lk_grid-&amp;gt;check_changed_data.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  PERFORM validate_all_records USING gt_payment_buffer&lt;/P&gt;&lt;P&gt;                                     con_checked&lt;/P&gt;&lt;P&gt;                                     gt_payment_old&lt;/P&gt;&lt;P&gt;                            CHANGING lt_msg_tab.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;If any error messages, throw on screen.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  READ TABLE lt_msg_tab INTO ls_msg&lt;/P&gt;&lt;P&gt;        WITH KEY msgty = con_msg_ty_for_err.&lt;/P&gt;&lt;P&gt;  IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;    MESSAGE ID ls_msg-msgid TYPE ls_msg-msgty NUMBER ls_msg-msgno&lt;/P&gt;&lt;P&gt;       WITH ls_msg-msgv1 ls_msg-msgv2 ls_msg-msgv3 ls_msg-msgv4.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Set the date and time for entries to be saved to database.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  lv_entry_date = sy-datum.&lt;/P&gt;&lt;P&gt;  lv_entry_time = sy-uzeit.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LOOP AT gt_payment_buffer INTO ls_payment_buffer WHERE assignment IS&lt;/P&gt;&lt;P&gt;  NOT INITIAL.&lt;/P&gt;&lt;P&gt;    lv_pay_tabix = sy-tabix.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF ls_payment_buffer-flg_data_changed = con_checked.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  Add the changed data to Internal table&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      ls_pay_lk-mandt = sy-mandt.&lt;/P&gt;&lt;P&gt;      ls_pay_lk-bukrs = ls_payment_buffer-bukrs.&lt;/P&gt;&lt;P&gt;      ls_pay_lk-assignment = ls_payment_buffer-assignment.&lt;/P&gt;&lt;P&gt;      ls_pay_lk-entry_date = lv_entry_date.&lt;/P&gt;&lt;P&gt;      ls_pay_lk-entry_time = lv_entry_time.&lt;/P&gt;&lt;P&gt;      ls_pay_lk-payment_amount = ls_payment_buffer-payment_amount.&lt;/P&gt;&lt;P&gt;      ls_pay_lk-tip_amount = ls_payment_buffer-tip_amount.&lt;/P&gt;&lt;P&gt;      ls_pay_lk-nie_amount = ls_payment_buffer-nie_amount.&lt;/P&gt;&lt;P&gt;      ls_pay_lk-waers = ls_payment_buffer-currency.&lt;/P&gt;&lt;P&gt;      ls_pay_lk-xposted = space.&lt;/P&gt;&lt;P&gt;      ls_pay_lk-keyz1 = space.&lt;/P&gt;&lt;P&gt;      APPEND ls_pay_lk TO gt_pay_lk.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  Its an old record&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      CLEAR ls_payment_old.&lt;/P&gt;&lt;P&gt;      IF ls_payment_buffer-old_rec = con_checked.&lt;/P&gt;&lt;P&gt;        READ TABLE gt_payment_old INTO ls_payment_old&lt;/P&gt;&lt;P&gt;            WITH KEY bukrs = ls_payment_buffer-bukrs&lt;/P&gt;&lt;P&gt;                     assignment = ls_payment_buffer-assignment&lt;/P&gt;&lt;P&gt;                     entry_date = ls_payment_buffer-entry_date&lt;/P&gt;&lt;P&gt;                     entry_time = ls_payment_buffer-entry_time.&lt;/P&gt;&lt;P&gt;        IF sy-subrc = 0.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Add this record to internal table to delete the rec from DB.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;          ls_payment_del = ls_payment_old.&lt;/P&gt;&lt;P&gt;          APPEND ls_payment_del TO gt_payment_del.&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    Mark OLD_REC flg in alv table, update date/time in ALV tables.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      ls_payment_buffer-old_rec = con_checked.&lt;/P&gt;&lt;P&gt;      ls_payment_buffer-entry_date = lv_entry_date.&lt;/P&gt;&lt;P&gt;      ls_payment_buffer-entry_time = lv_entry_time.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;     MODIFY gt_payment_buffer FROM ls_payment_buffer INDEX lv_pay_tabix&lt;/P&gt;&lt;P&gt;           TRANSPORTING old_rec entry_date entry_time.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      MODIFY gt_payment FROM ls_payment_buffer INDEX lv_pay_tabix&lt;/P&gt;&lt;P&gt;            TRANSPORTING old_rec entry_date entry_time.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      CLEAR:&lt;/P&gt;&lt;P&gt;        lv_pay_tabix,&lt;/P&gt;&lt;P&gt;        ls_pay_lk.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;ENDFORM.                    " prepare_to_save&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM save_to_db.&lt;/P&gt;&lt;P&gt;  DATA:&lt;/P&gt;&lt;P&gt;    ls_payment         TYPE epay_pay_lk_str.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF gt_pay_lk[] IS NOT INITIAL OR gt_payment_del[] IS NOT INITIAL.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  Insert/Modify records in DB&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    IF gt_pay_lk IS NOT INITIAL.&lt;/P&gt;&lt;P&gt;      MODIFY /nam/pay_lk FROM TABLE gt_pay_lk.&lt;/P&gt;&lt;P&gt;      REFRESH gt_pay_lk[].&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF gt_payment_del[] IS NOT INITIAL.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    Delete records from DB&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      DELETE /nam/pay_lk FROM TABLE gt_payment_del.&lt;/P&gt;&lt;P&gt;      REFRESH gt_payment_del[].&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    COMMIT WORK.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  Status: The entries have been saved to database.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    MESSAGE s013(/nam/nae_messages).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  Reload old records.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    SELECT * FROM /nam/pay_lk&lt;/P&gt;&lt;P&gt;        INTO TABLE gt_payment_old&lt;/P&gt;&lt;P&gt;        WHERE bukrs = gs_pay_header-bukrs&lt;/P&gt;&lt;P&gt;        AND   entry_date BETWEEN gs_pay_header-entry_date_low&lt;/P&gt;&lt;P&gt;          AND gs_pay_header-entry_date_high.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  Reset Flg_Data_Changed for alv tables =&amp;gt; fresh start&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    CLEAR ls_payment-flg_data_changed.&lt;/P&gt;&lt;P&gt;    MODIFY gt_payment FROM ls_payment&lt;/P&gt;&lt;P&gt;      TRANSPORTING flg_data_changed&lt;/P&gt;&lt;P&gt;      WHERE assignment IS NOT INITIAL.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    MODIFY gt_payment_buffer FROM ls_payment&lt;/P&gt;&lt;P&gt;      TRANSPORTING flg_data_changed&lt;/P&gt;&lt;P&gt;      WHERE assignment IS NOT INITIAL.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;*Status: No changes have been made, and hence nothing saved to database.&lt;/P&gt;&lt;P&gt;    MESSAGE s020(/nam/nae_messages).&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " save_to_db&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 31 Jan 2007 09:40:26 GMT</pubDate>
    <dc:creator>Former Member</dc:creator>
    <dc:date>2007-01-31T09:40:26Z</dc:date>
    <item>
      <title>ALV Grid Problem</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/alv-grid-problem/m-p/1823140#M351559</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi All,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I am having an ALV Grid . I want to save the data from the grid into the database table which is a z table.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Can anybody please tell me how to do it.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I am using object based programming here.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Pls help.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 31 Jan 2007 08:33:45 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/alv-grid-problem/m-p/1823140#M351559</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-01-31T08:33:45Z</dc:date>
    </item>
    <item>
      <title>Re: ALV Grid Problem</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/alv-grid-problem/m-p/1823141#M351560</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;look for sample program BCALV_EDIT_04&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;A.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 31 Jan 2007 08:40:28 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/alv-grid-problem/m-p/1823141#M351560</guid>
      <dc:creator>andreas_mann3</dc:creator>
      <dc:date>2007-01-31T08:40:28Z</dc:date>
    </item>
    <item>
      <title>Re: ALV Grid Problem</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/alv-grid-problem/m-p/1823142#M351561</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;If your internal table structure that you are sending to the ALV function module is same as that of the structure of the Z- table, u have created,then loop through the internal table and then append or insert records to your z-table.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;reward points if useful,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Pavithra&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 31 Jan 2007 09:13:09 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/alv-grid-problem/m-p/1823142#M351561</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-01-31T09:13:09Z</dc:date>
    </item>
    <item>
      <title>Re: ALV Grid Problem</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/alv-grid-problem/m-p/1823143#M351562</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Manik,&lt;/P&gt;&lt;P&gt;Refer to this code snippet.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Hope this helps you. Reward points if it does.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Rgds,&lt;/P&gt;&lt;P&gt;Prashanth.&lt;/P&gt;&lt;P&gt;SAP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;  DATA:
    lt_toolbar_exc           TYPE ui_functions,
    ls_toolbar_exc           TYPE ui_func,
    lt_ucomm                 TYPE ui_functions,

* ALV
  gv_pay_lk_grid       TYPE REF TO cl_gui_alv_grid, "ALV Grid
  gv_cust_cont         TYPE REF TO cl_gui_custom_container, "Custom Cont
  gv_cont_error_log    TYPE REF TO cl_gui_custom_container, "Cont for Error
  gs_layout            TYPE lvc_s_layo,            "Layout
  gt_fieldcat          TYPE lvc_t_fcat.            "FieldCatalog tab


  IF gv_pay_lk_grid IS INITIAL.
*  Create Custom Container
    CREATE OBJECT gv_cust_cont
      EXPORTING
        container_name              = con_cont_0300
      EXCEPTIONS
        cntl_error                  = 1
        cntl_system_error           = 2
        create_error                = 3
        lifetime_error              = 4
        lifetime_dynpro_dynpro_link = 5
        OTHERS                      = 6.
    IF sy-subrc &amp;lt;&amp;gt; 0.
      MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
                WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
    ELSE.
*     Create Custom Container for error log
      CREATE OBJECT gv_cont_error_log
        EXPORTING
          container_name              = con_cont_err_log
        EXCEPTIONS
          cntl_error                  = 1
          cntl_system_error           = 2
          create_error                = 3
          lifetime_error              = 4
          lifetime_dynpro_dynpro_link = 5
          OTHERS                      = 6.
      IF sy-subrc &amp;lt;&amp;gt; 0.
        MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
                  WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
      ENDIF.

*     Create ALV Grid
      CREATE OBJECT gv_pay_lk_grid
        EXPORTING
          i_parent          = gv_cust_cont
          i_applogparent    = gv_cont_error_log
        EXCEPTIONS
          error_cntl_create = 1
          error_cntl_init   = 2
          error_cntl_link   = 3
          error_dp_create   = 4
          OTHERS            = 5.
      IF sy-subrc &amp;lt;&amp;gt; 0.
        MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
                  WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
      ENDIF.
    ENDIF.

*   Register the edit event
    CALL METHOD gv_pay_lk_grid-&amp;gt;register_edit_event
      EXPORTING
        i_event_id = cl_gui_alv_grid=&amp;gt;mc_evt_enter
      EXCEPTIONS
        error      = 1
        OTHERS     = 2.

    IF sy-subrc &amp;lt;&amp;gt; 0.
      MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
                WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
    ENDIF.

    CALL METHOD gv_pay_lk_grid-&amp;gt;set_ready_for_input
      EXPORTING
        i_ready_for_input = 1.

   gs_layout-sel_mode = 'D'.

*   Call ALV Grid
    CALL METHOD gv_pay_lk_grid-&amp;gt;set_table_for_first_display
      EXPORTING
        is_layout                     = gs_layout
        it_toolbar_excluding          = lt_toolbar_exc
      CHANGING
        it_outtab                     = gt_payment
        it_fieldcatalog               = gt_fieldcat
      EXCEPTIONS
        invalid_parameter_combination = 1
        program_error                 = 2
        too_many_lines                = 3
        OTHERS                        = 4.
    IF sy-subrc &amp;lt;&amp;gt; 0.
      MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
                WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
    ENDIF.

*   User commands to be processed on invalid input
  ELSE.
*   If alv is already displayed, refresh the alv table.
    PERFORM refresh_table_display.
  ENDIF.

* Flush
  CALL METHOD cl_gui_cfw=&amp;gt;flush.&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 31 Jan 2007 09:19:33 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/alv-grid-problem/m-p/1823143#M351562</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-01-31T09:19:33Z</dc:date>
    </item>
    <item>
      <title>Re: ALV Grid Problem</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/alv-grid-problem/m-p/1823144#M351563</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Prashanth,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks for ur help, but can you please tell me where in this code ur inserting the records in the database table,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I want to store the contents of the ALV grid in the database table.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 31 Jan 2007 09:34:50 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/alv-grid-problem/m-p/1823144#M351563</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-01-31T09:34:50Z</dc:date>
    </item>
    <item>
      <title>Re: ALV Grid Problem</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/alv-grid-problem/m-p/1823145#M351564</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Pavitra,&lt;/P&gt;&lt;P&gt;Thanks for ur reply, yes my table is of the same structure as that of the internal table , but how the modified values will come in the internal table?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 31 Jan 2007 09:37:17 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/alv-grid-problem/m-p/1823145#M351564</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-01-31T09:37:17Z</dc:date>
    </item>
    <item>
      <title>Re: ALV Grid Problem</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/alv-grid-problem/m-p/1823146#M351565</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Manik,&lt;/P&gt;&lt;P&gt;That previous code was for editable ALV basically.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Here it is for saving. (in addition ot the previous code)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Rgds,&lt;/P&gt;&lt;P&gt;Prashanth.&lt;/P&gt;&lt;P&gt;SAP Labs.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PAI of the screen, call module user_command_0300.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;MODULE user_command_0300 INPUT.&lt;/P&gt;&lt;P&gt;  PERFORM handle_user_command_0300.&lt;/P&gt;&lt;P&gt;ENDMODULE.                 " USER_COMMAND_0300  INPUT&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM handle_user_command_0300 .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA:&lt;/P&gt;&lt;P&gt;    lv_ans.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL METHOD cl_gui_cfw=&amp;gt;dispatch.&lt;/P&gt;&lt;P&gt;  save_ok = ok_code.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR ok_code.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CASE save_ok.&lt;/P&gt;&lt;P&gt;    WHEN con_save.&lt;/P&gt;&lt;P&gt;      PERFORM prepare_to_save.&lt;/P&gt;&lt;P&gt;      PERFORM save_to_db.&lt;/P&gt;&lt;P&gt;  ...&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ENDCASE.&lt;/P&gt;&lt;P&gt;ENDFORM.                    " handle_user_command_0300&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM prepare_to_save .&lt;/P&gt;&lt;P&gt;  DATA:&lt;/P&gt;&lt;P&gt;    ls_pay_lk          TYPE /nam/pay_lk,&lt;/P&gt;&lt;P&gt;    ls_payment_old     TYPE /nam/pay_lk,&lt;/P&gt;&lt;P&gt;    ls_payment_del     TYPE /nam/pay_lk,&lt;/P&gt;&lt;P&gt;    ls_payment_buffer  TYPE epay_pay_lk_str,&lt;/P&gt;&lt;P&gt;    lt_msg_tab         TYPE epay_msg_tab,&lt;/P&gt;&lt;P&gt;    ls_msg             TYPE epay_msg_str,&lt;/P&gt;&lt;P&gt;    lv_pay_tabix       TYPE sy-tabix,&lt;/P&gt;&lt;P&gt;    lv_entry_date      TYPE sy-datum,&lt;/P&gt;&lt;P&gt;    lv_entry_time      TYPE sy-uzeit.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;If any data has been entered, get this into gt_payment&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  IF gv_pay_lk_grid IS NOT INITIAL.&lt;/P&gt;&lt;P&gt;    CALL METHOD gv_pay_lk_grid-&amp;gt;check_changed_data.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  PERFORM validate_all_records USING gt_payment_buffer&lt;/P&gt;&lt;P&gt;                                     con_checked&lt;/P&gt;&lt;P&gt;                                     gt_payment_old&lt;/P&gt;&lt;P&gt;                            CHANGING lt_msg_tab.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;If any error messages, throw on screen.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  READ TABLE lt_msg_tab INTO ls_msg&lt;/P&gt;&lt;P&gt;        WITH KEY msgty = con_msg_ty_for_err.&lt;/P&gt;&lt;P&gt;  IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;    MESSAGE ID ls_msg-msgid TYPE ls_msg-msgty NUMBER ls_msg-msgno&lt;/P&gt;&lt;P&gt;       WITH ls_msg-msgv1 ls_msg-msgv2 ls_msg-msgv3 ls_msg-msgv4.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Set the date and time for entries to be saved to database.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  lv_entry_date = sy-datum.&lt;/P&gt;&lt;P&gt;  lv_entry_time = sy-uzeit.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LOOP AT gt_payment_buffer INTO ls_payment_buffer WHERE assignment IS&lt;/P&gt;&lt;P&gt;  NOT INITIAL.&lt;/P&gt;&lt;P&gt;    lv_pay_tabix = sy-tabix.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF ls_payment_buffer-flg_data_changed = con_checked.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  Add the changed data to Internal table&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      ls_pay_lk-mandt = sy-mandt.&lt;/P&gt;&lt;P&gt;      ls_pay_lk-bukrs = ls_payment_buffer-bukrs.&lt;/P&gt;&lt;P&gt;      ls_pay_lk-assignment = ls_payment_buffer-assignment.&lt;/P&gt;&lt;P&gt;      ls_pay_lk-entry_date = lv_entry_date.&lt;/P&gt;&lt;P&gt;      ls_pay_lk-entry_time = lv_entry_time.&lt;/P&gt;&lt;P&gt;      ls_pay_lk-payment_amount = ls_payment_buffer-payment_amount.&lt;/P&gt;&lt;P&gt;      ls_pay_lk-tip_amount = ls_payment_buffer-tip_amount.&lt;/P&gt;&lt;P&gt;      ls_pay_lk-nie_amount = ls_payment_buffer-nie_amount.&lt;/P&gt;&lt;P&gt;      ls_pay_lk-waers = ls_payment_buffer-currency.&lt;/P&gt;&lt;P&gt;      ls_pay_lk-xposted = space.&lt;/P&gt;&lt;P&gt;      ls_pay_lk-keyz1 = space.&lt;/P&gt;&lt;P&gt;      APPEND ls_pay_lk TO gt_pay_lk.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  Its an old record&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      CLEAR ls_payment_old.&lt;/P&gt;&lt;P&gt;      IF ls_payment_buffer-old_rec = con_checked.&lt;/P&gt;&lt;P&gt;        READ TABLE gt_payment_old INTO ls_payment_old&lt;/P&gt;&lt;P&gt;            WITH KEY bukrs = ls_payment_buffer-bukrs&lt;/P&gt;&lt;P&gt;                     assignment = ls_payment_buffer-assignment&lt;/P&gt;&lt;P&gt;                     entry_date = ls_payment_buffer-entry_date&lt;/P&gt;&lt;P&gt;                     entry_time = ls_payment_buffer-entry_time.&lt;/P&gt;&lt;P&gt;        IF sy-subrc = 0.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Add this record to internal table to delete the rec from DB.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;          ls_payment_del = ls_payment_old.&lt;/P&gt;&lt;P&gt;          APPEND ls_payment_del TO gt_payment_del.&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    Mark OLD_REC flg in alv table, update date/time in ALV tables.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      ls_payment_buffer-old_rec = con_checked.&lt;/P&gt;&lt;P&gt;      ls_payment_buffer-entry_date = lv_entry_date.&lt;/P&gt;&lt;P&gt;      ls_payment_buffer-entry_time = lv_entry_time.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;     MODIFY gt_payment_buffer FROM ls_payment_buffer INDEX lv_pay_tabix&lt;/P&gt;&lt;P&gt;           TRANSPORTING old_rec entry_date entry_time.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      MODIFY gt_payment FROM ls_payment_buffer INDEX lv_pay_tabix&lt;/P&gt;&lt;P&gt;            TRANSPORTING old_rec entry_date entry_time.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      CLEAR:&lt;/P&gt;&lt;P&gt;        lv_pay_tabix,&lt;/P&gt;&lt;P&gt;        ls_pay_lk.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;ENDFORM.                    " prepare_to_save&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM save_to_db.&lt;/P&gt;&lt;P&gt;  DATA:&lt;/P&gt;&lt;P&gt;    ls_payment         TYPE epay_pay_lk_str.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF gt_pay_lk[] IS NOT INITIAL OR gt_payment_del[] IS NOT INITIAL.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  Insert/Modify records in DB&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    IF gt_pay_lk IS NOT INITIAL.&lt;/P&gt;&lt;P&gt;      MODIFY /nam/pay_lk FROM TABLE gt_pay_lk.&lt;/P&gt;&lt;P&gt;      REFRESH gt_pay_lk[].&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF gt_payment_del[] IS NOT INITIAL.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    Delete records from DB&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      DELETE /nam/pay_lk FROM TABLE gt_payment_del.&lt;/P&gt;&lt;P&gt;      REFRESH gt_payment_del[].&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    COMMIT WORK.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  Status: The entries have been saved to database.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    MESSAGE s013(/nam/nae_messages).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  Reload old records.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    SELECT * FROM /nam/pay_lk&lt;/P&gt;&lt;P&gt;        INTO TABLE gt_payment_old&lt;/P&gt;&lt;P&gt;        WHERE bukrs = gs_pay_header-bukrs&lt;/P&gt;&lt;P&gt;        AND   entry_date BETWEEN gs_pay_header-entry_date_low&lt;/P&gt;&lt;P&gt;          AND gs_pay_header-entry_date_high.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  Reset Flg_Data_Changed for alv tables =&amp;gt; fresh start&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    CLEAR ls_payment-flg_data_changed.&lt;/P&gt;&lt;P&gt;    MODIFY gt_payment FROM ls_payment&lt;/P&gt;&lt;P&gt;      TRANSPORTING flg_data_changed&lt;/P&gt;&lt;P&gt;      WHERE assignment IS NOT INITIAL.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    MODIFY gt_payment_buffer FROM ls_payment&lt;/P&gt;&lt;P&gt;      TRANSPORTING flg_data_changed&lt;/P&gt;&lt;P&gt;      WHERE assignment IS NOT INITIAL.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;*Status: No changes have been made, and hence nothing saved to database.&lt;/P&gt;&lt;P&gt;    MESSAGE s020(/nam/nae_messages).&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " save_to_db&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 31 Jan 2007 09:40:26 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/alv-grid-problem/m-p/1823146#M351565</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-01-31T09:40:26Z</dc:date>
    </item>
    <item>
      <title>Re: ALV Grid Problem</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/alv-grid-problem/m-p/1823147#M351566</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Prashanth.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks a lot for ur code,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;But I am not able to get come things in the code like &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;1&amp;gt; What is gt_pay_lk&lt;/P&gt;&lt;P&gt;2&amp;gt; What is gt_payment_buffer&lt;/P&gt;&lt;P&gt;3&amp;gt;Can u please send the code for the following subroutine&lt;/P&gt;&lt;P&gt;PERFORM validate_all_records USING gt_payment_buffer&lt;/P&gt;&lt;P&gt;con_checked&lt;/P&gt;&lt;P&gt;gt_payment_old&lt;/P&gt;&lt;P&gt;CHANGING lt_msg_tab.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;4&amp;gt; not able to get these&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ls_pay_lk TYPE /nam/pay_lk,&lt;/P&gt;&lt;P&gt;ls_payment_old TYPE /nam/pay_lk,&lt;/P&gt;&lt;P&gt;ls_payment_del TYPE /nam/pay_lk,&lt;/P&gt;&lt;P&gt;ls_payment_buffer TYPE epay_pay_lk_str,&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 31 Jan 2007 10:03:35 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/alv-grid-problem/m-p/1823147#M351566</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-01-31T10:03:35Z</dc:date>
    </item>
    <item>
      <title>Re: ALV Grid Problem</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/alv-grid-problem/m-p/1823148#M351567</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello Manik,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;To modify database or ztable from the ALV grid,you need to do the following:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;---You have to modify the field Catalog fields (fields that you want to make editable).Set the field EDIT as 'X'.For example if you want to make the field below editable:&lt;/P&gt;&lt;P&gt;ls_fcat-fieldname = 'CARRID'.&lt;/P&gt;&lt;P&gt;...&lt;/P&gt;&lt;P&gt;...&lt;/P&gt;&lt;P&gt;&amp;lt;b&amp;gt;ls_fcat-edit = 'X'.&amp;lt;/b&amp;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;---Call the method below before you call the set_table_for_first_display.&lt;/P&gt;&lt;P&gt;&amp;lt;b&amp;gt;CALL METHOD ALV_GRID_INSTANCE-&amp;gt;set_ready_for_input&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;i_ready_for_input = 0. ( For Display ) and ('1' for Edit )&amp;lt;/b&amp;gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;After this put the set_table_for_first_display.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Now if the ALV data has changed,and you want to change the database or ztable,then in &amp;lt;b&amp;gt;your pf status give a function code for SAVE button in the GUI&amp;lt;/b&amp;gt;.&lt;/P&gt;&lt;P&gt;In the PAI of the screen,in user command module write the following:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;lt;b&amp;gt;WHEN 'SAVE'.&lt;/P&gt;&lt;P&gt;call method gr_alvgrid-&amp;gt;check_changed_data&lt;/P&gt;&lt;P&gt;importing e_valid = l_valid.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;if l_valid = 'X'.&lt;/P&gt;&lt;P&gt;MODIFY spfli FROM TABLE itab_spfli.&lt;/P&gt;&lt;P&gt;endif.&amp;lt;/b&amp;gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;(l_valid is a flag.&lt;/P&gt;&lt;P&gt;&amp;lt;b&amp;gt;DATA:l_valid type c.&amp;lt;/b&amp;gt;&lt;/P&gt;&lt;P&gt;If you want to check if the user has entered any value on the grid, use the Method : CALL METHOD gr_alvgrid-&amp;gt;check_changed_data.&lt;/P&gt;&lt;P&gt;This method returns a flag l_valid which can be checked to see if the data on the ALV grid has been changed or not.)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Beejal&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;**Reward if this helps&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 31 Jan 2007 10:20:15 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/alv-grid-problem/m-p/1823148#M351567</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-01-31T10:20:15Z</dc:date>
    </item>
    <item>
      <title>Re: ALV Grid Problem</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/alv-grid-problem/m-p/1823149#M351568</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Gt_pay_lk is the table which has the actual data for ALV.&lt;/P&gt;&lt;P&gt;No use giving you the structure of that because it is typed to a custom table.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;you have to just have it as ur own data table,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;U can ignore the logic of buffer, etc.&lt;/P&gt;&lt;P&gt;Obviously i have not sent you the entire code because it is voluminous.&lt;/P&gt;&lt;P&gt;I have concept of buffering, Db records, etc.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;gt_payment_buffer is the buffer - u can ignore.&lt;/P&gt;&lt;P&gt;validate_all_records is also not important. just comment it for now. It is the vlaidation routine.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ls_pay_lk  is a structure of the same type as gt_pay_lk.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ls_payment_old TYPE /nam/pay_lk,&lt;/P&gt;&lt;P&gt;ls_payment_del TYPE /nam/pay_lk,&lt;/P&gt;&lt;P&gt;ls_payment_buffer TYPE epay_pay_lk_str, &lt;/P&gt;&lt;P&gt;=&amp;gt; all 3 u can currently ignore. &lt;/P&gt;&lt;P&gt;Also comment out that part of code, because it is hte buffering and comparison against the old/Db record to see what data has changed.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;con_checked is a constant. Value = 'X'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;hope it helps.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Message was edited by: &lt;/P&gt;&lt;P&gt;        Prashanth Prabhu&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 31 Jan 2007 10:26:45 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/alv-grid-problem/m-p/1823149#M351568</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-01-31T10:26:45Z</dc:date>
    </item>
    <item>
      <title>Re: ALV Grid Problem</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/alv-grid-problem/m-p/1823150#M351569</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Beejal,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks for ur help but can you please tell me from where the modified data from the grid will come in to the internal table itab_spfli.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks.&lt;/P&gt;&lt;P&gt;Regards &lt;/P&gt;&lt;P&gt;Manik&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 02 Feb 2007 08:52:36 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/alv-grid-problem/m-p/1823150#M351569</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-02-02T08:52:36Z</dc:date>
    </item>
    <item>
      <title>Re: ALV Grid Problem</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/alv-grid-problem/m-p/1823151#M351570</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Manik,&lt;/P&gt;&lt;P&gt;We pass the internal table itab_spfli in the alv method SET_TABLE_FOR_FIRST_DISPLAY.What you see on the grid(at the user interface) is the contents of the internal table.&amp;lt;b&amp;gt;Internal table behaves like a work area.Any changes made to the grid is actually changing the internal table itself.&amp;lt;/b&amp;gt;&amp;lt;b&amp;gt;Even if you have only an editable ALV and no method to make changes at the database level,and keep a breakpoint on itab_spfli,you will notice that the contents of itab_spfli are automatically changed.&amp;lt;/b&amp;gt;But these changes are not made at the database level.So if you execute your program again,the program will fetch data from the database table (not from the internal table) and you dont get the modified data.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;In this code:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;WHEN 'SAVE'.&lt;/P&gt;&lt;P&gt;call method gr_alvgrid-&amp;gt;check_changed_data&lt;/P&gt;&lt;P&gt;importing e_valid = l_valid.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;if l_valid = 'X'.&lt;/P&gt;&lt;P&gt;MODIFY spfli FROM TABLE itab_spfli.&amp;lt;&amp;lt;&amp;lt;BREAK-POINT&lt;/P&gt;&lt;P&gt;endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The method check_changed_data checks if there is a change in the internal table and then we can modify DB table as well.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;You can keep a break point at the internal table itab_spfli and see that contents of itab_spfli are changed(at the GUI) when you edit the ALV but SPFLI is not changed till the "modify" statement is executed.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Beejal&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 03 Feb 2007 09:28:07 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/alv-grid-problem/m-p/1823151#M351570</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-02-03T09:28:07Z</dc:date>
    </item>
  </channel>
</rss>

