<?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: automatic refresh in alv grids in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/automatic-refresh-in-alv-grids/m-p/2097536#M436890</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Ravi!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The data is in the grid2/3 (i see it &lt;SPAN __jive_emoticon_name="wink"&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;...but without pressing the refresh-button from grid2/3 it's not possible to push the data into the internal table.&lt;/P&gt;&lt;P&gt;"call method grid...-&amp;gt;refresh_table_display" doesn't work.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Best regards,&lt;/P&gt;&lt;P&gt;Ingo&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 19 Apr 2007 07:13:03 GMT</pubDate>
    <dc:creator>Former Member</dc:creator>
    <dc:date>2007-04-19T07:13:03Z</dc:date>
    <item>
      <title>automatic refresh in alv grids</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/automatic-refresh-in-alv-grids/m-p/2097533#M436887</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;I've three containers with three alv grids on my screen.&lt;/P&gt;&lt;P&gt;I've a self made save-button on the toolbar of the first grid.&lt;/P&gt;&lt;P&gt;Now i insert data in grid2 and grid3 ...&lt;/P&gt;&lt;P&gt;When i press now the save-button from grid1 there's no data in the internal tables from grid2 and grid3.&lt;/P&gt;&lt;P&gt;When i first press the refresh-buttons on the toolbars from grid2 and grid3 and then the save-button from grid1 the internal tables from grid2 and grid3 are filled.&lt;/P&gt;&lt;P&gt;Is it possible to simulate first the pressed refresh-buttons from grid2/grid3 when pressing the save-button from grid1?&lt;/P&gt;&lt;P&gt;I've tried to set a "call method grid2-&amp;gt;refresh_table_display" and "call method grid2-&amp;gt;refresh_table_display" before the code for the save-button but this doesn't work.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Is there any help for me?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks a lot in advance!&lt;/P&gt;&lt;P&gt;Ingo&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 19 Apr 2007 06:51:32 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/automatic-refresh-in-alv-grids/m-p/2097533#M436887</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-04-19T06:51:32Z</dc:date>
    </item>
    <item>
      <title>Re: automatic refresh in alv grids</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/automatic-refresh-in-alv-grids/m-p/2097534#M436888</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;In ALV, to refresh the table you have to call the method "refresh_table_display".  &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;It has the syntax very similar to creating the table.  &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;It has two parameters. In the first one, you can mention if you want to refresh only the data (the icons are not refreshed)  &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;or  &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;if you want to refresh only the icons around the grid (the data is not refreshed - this option is mostly not used in day to day applications). &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;the synatx is :- &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;call method grid (name of grid )-&amp;gt;refresh_table_display &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;exporting &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IS_STABLE = &amp;lt;STRUCT OF TYPE LVC_S_STBL&amp;gt; (THIS IS FOR DATA REFRESHING) &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I_SOFT_REFRESH = &amp;lt;VARIABLE OF CHAR 01&amp;gt;  (THIS IS FOR ICON REFRESHING). &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;P&gt; Sudheer&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 19 Apr 2007 06:54:54 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/automatic-refresh-in-alv-grids/m-p/2097534#M436888</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-04-19T06:54:54Z</dc:date>
    </item>
    <item>
      <title>Re: automatic refresh in alv grids</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/automatic-refresh-in-alv-grids/m-p/2097535#M436889</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Is the data ready in the internal table for grid2, by the time you have called &lt;/P&gt;&lt;P&gt;call method grid2-&amp;gt;refresh_table_display?&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Ravi&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 19 Apr 2007 06:55:01 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/automatic-refresh-in-alv-grids/m-p/2097535#M436889</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-04-19T06:55:01Z</dc:date>
    </item>
    <item>
      <title>Re: automatic refresh in alv grids</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/automatic-refresh-in-alv-grids/m-p/2097536#M436890</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Ravi!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The data is in the grid2/3 (i see it &lt;SPAN __jive_emoticon_name="wink"&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;...but without pressing the refresh-button from grid2/3 it's not possible to push the data into the internal table.&lt;/P&gt;&lt;P&gt;"call method grid...-&amp;gt;refresh_table_display" doesn't work.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Best regards,&lt;/P&gt;&lt;P&gt;Ingo&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 19 Apr 2007 07:13:03 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/automatic-refresh-in-alv-grids/m-p/2097536#M436890</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-04-19T07:13:03Z</dc:date>
    </item>
    <item>
      <title>Re: automatic refresh in alv grids</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/automatic-refresh-in-alv-grids/m-p/2097537#M436891</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello Ingo&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;It is important to realise that pushing a toolbar button does &amp;lt;b&amp;gt;NOT &amp;lt;/b&amp;gt;trigger PAI of the dynpro where the ALV list is displayed.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;In order to refresh the display of the other two ALV grids you need to pass PAI (followed by PBO). How to do that? There are at least two possible ways:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;(1) You handle the SAVE command in your method HANDLE_USER_COMMAND. Within this method you update the internal tables for grid2 and grid3 depending on the contents of grid1. At the end of this method you call method CL_GUI_CFW=&amp;gt;set_new_ok_code( 'REFRESH' ). This will trigger PAI of the dynpro. In the PAI module (e.g. USER_COMMAND_0100) you could write the following coding:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;  CASE gd_okcode.
    WHEN 'REFRESH'.  
      go_grid2-&amp;gt;refresh_table_display( ).
      go_grid3-&amp;gt;refresh_table_display( ).
...
  ENDCASE.&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;(2) You handle the SAVE command in your method HANDLE_USER_COMMAND and call method CL_GUI_CFW=&amp;gt;set_new_ok_code( 'REFRESH' ) without updating the itab2 and itab3 here. The updating of these itabs occurs in the PAI module.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The following sample report shows you the second approach. On the first ALV grid customers are displayed. If you double-click on a single customer its sales areas (if any) are displayed in the second ALV list.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;*&amp;amp;---------------------------------------------------------------------*
*&amp;amp; Report  ZUS_SDN_TWO_ALV_GRIDS
*&amp;amp;
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;
*&amp;amp;
*&amp;amp;---------------------------------------------------------------------*

REPORT  zus_sdn_two_alv_grids.




DATA:
  gd_okcode        TYPE ui_func,
*
  go_docking       TYPE REF TO cl_gui_docking_container,
  go_splitter      TYPE REF TO cl_gui_splitter_container,
  go_cell_top      TYPE REF TO cl_gui_container,
  go_cell_bottom   TYPE REF TO cl_gui_container,
  go_grid1         TYPE REF TO cl_gui_alv_grid,
  go_grid2         TYPE REF TO cl_gui_alv_grid,
  gs_layout        TYPE lvc_s_layo.


DATA:
  gt_knb1          TYPE STANDARD TABLE OF knb1,
  gt_knvv          TYPE STANDARD TABLE OF knvv.





*---------------------------------------------------------------------*
*       CLASS lcl_eventhandler DEFINITION
*---------------------------------------------------------------------*
*
*---------------------------------------------------------------------*
CLASS lcl_eventhandler DEFINITION.

  PUBLIC SECTION.
    CLASS-METHODS:
      handle_double_click FOR EVENT double_click OF cl_gui_alv_grid
        IMPORTING
          e_row
          e_column
          es_row_no
          sender.


ENDCLASS.                    "lcl_eventhandler DEFINITION



*---------------------------------------------------------------------*
*       CLASS lcl_eventhandler IMPLEMENTATION
*---------------------------------------------------------------------*
*
*---------------------------------------------------------------------*
CLASS lcl_eventhandler IMPLEMENTATION.

  METHOD handle_double_click.
*   define local data
    DATA:
      ls_knb1      TYPE knb1.

    CHECK ( sender = go_grid1 ).

    READ TABLE gt_knb1 INTO ls_knb1 INDEX e_row-index.
    CHECK ( ls_knb1-kunnr IS NOT INITIAL ).

    CALL METHOD go_grid1-&amp;gt;set_current_cell_via_id
      EXPORTING
*        IS_ROW_ID    =
*        IS_COLUMN_ID =
        is_row_no    = es_row_no.


*   Triggers PAI of the dynpro with the specified ok-code
    CALL METHOD cl_gui_cfw=&amp;gt;set_new_ok_code( 'DETAIL' ).



  ENDMETHOD.                    "handle_double_click

ENDCLASS.                    "lcl_eventhandler IMPLEMENTATION






START-OF-SELECTION.

  SELECT        * FROM  knb1 INTO TABLE gt_knb1
         WHERE  bukrs  = '1000'.


* Create docking container
  CREATE OBJECT go_docking
    EXPORTING
      parent                      = cl_gui_container=&amp;gt;screen0
      ratio                       = 90
    EXCEPTIONS
      OTHERS                      = 6.
  IF sy-subrc &amp;lt;&amp;gt; 0.
*   MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*              WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.


* Create splitter container
  CREATE OBJECT go_splitter
    EXPORTING
      parent            = go_docking
      rows              = 2
      columns           = 1
*      NO_AUTODEF_PROGID_DYNNR =
*      NAME              =
    EXCEPTIONS
      cntl_error        = 1
      cntl_system_error = 2
      OTHERS            = 3.
  IF sy-subrc &amp;lt;&amp;gt; 0.
*   MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*              WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.

* Get cell container
  CALL METHOD go_splitter-&amp;gt;get_container
    EXPORTING
      row       = 1
      column    = 1
    RECEIVING
      container = go_cell_top.
  CALL METHOD go_splitter-&amp;gt;get_container
    EXPORTING
      row       = 2
      column    = 1
    RECEIVING
      container = go_cell_bottom.

* Create ALV grids
  CREATE OBJECT go_grid1
    EXPORTING
      i_parent          = go_cell_top
    EXCEPTIONS
      OTHERS            = 5.
  IF sy-subrc &amp;lt;&amp;gt; 0.
*   MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*              WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.


* Set event handler
  SET HANDLER: lcl_eventhandler=&amp;gt;handle_double_click FOR go_grid1.


  CREATE OBJECT go_grid2
    EXPORTING
      i_parent          = go_cell_bottom
    EXCEPTIONS
      OTHERS            = 5.
  IF sy-subrc &amp;lt;&amp;gt; 0.
*   MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*              WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.


* Display data
  gs_layout-grid_title = 'Customers'.
  CALL METHOD go_grid1-&amp;gt;set_table_for_first_display
    EXPORTING
      i_structure_name = 'KNB1'
      is_layout        = gs_layout
    CHANGING
      it_outtab        = gt_knb1
    EXCEPTIONS
      OTHERS           = 4.
  IF sy-subrc &amp;lt;&amp;gt; 0.
*   MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*              WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.

  gs_layout-grid_title = 'Customers Details (Sales Areas)'.
  CALL METHOD go_grid2-&amp;gt;set_table_for_first_display
    EXPORTING
      i_structure_name = 'KNVV'
      is_layout        = gs_layout
    CHANGING
      it_outtab        = gt_knvv  " empty !!!
    EXCEPTIONS
      OTHERS           = 4.
  IF sy-subrc &amp;lt;&amp;gt; 0.
*   MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*              WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.


* Link the docking container to the target dynpro
  CALL METHOD go_docking-&amp;gt;link
    EXPORTING
      repid                       = syst-repid
      dynnr                       = '0100'
*      CONTAINER                   =
    EXCEPTIONS
      OTHERS                      = 4.
  IF sy-subrc &amp;lt;&amp;gt; 0.
*   MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*              WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.


* NOTE: dynpro does not contain any elements
  CALL SCREEN '0100'.
* Flow logic of dynpro (does not contain any dynpro elements):
*
*PROCESS BEFORE OUTPUT.
*  MODULE STATUS_0100.
**
*PROCESS AFTER INPUT.
*  MODULE USER_COMMAND_0100.



END-OF-SELECTION.

*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Module  STATUS_0100  OUTPUT
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE status_0100 OUTPUT.
  SET PF-STATUS 'STATUS_0100'.  " contains push button "DETAIL"
*  SET TITLEBAR 'xxx'.


* Refresh display of detail ALV list
  CALL METHOD go_grid2-&amp;gt;refresh_table_display
*    EXPORTING
*      IS_STABLE      =
*      I_SOFT_REFRESH =
    EXCEPTIONS
      OTHERS         = 2.
  IF sy-subrc &amp;lt;&amp;gt; 0.
*   MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*              WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.


ENDMODULE.                 " STATUS_0100  OUTPUT

*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Module  USER_COMMAND_0100  INPUT
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE user_command_0100 INPUT.

  CASE gd_okcode.
    WHEN 'BACK' OR
         'END'  OR
         'CANC'.
      SET SCREEN 0. LEAVE SCREEN.

*   User has pushed button "Display Details"
    WHEN 'DETAIL'.
      PERFORM entry_show_details.

    WHEN OTHERS.
  ENDCASE.

  CLEAR: gd_okcode.

ENDMODULE.                 " USER_COMMAND_0100  INPUT

*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  ENTRY_SHOW_DETAILS
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  --&amp;gt;  p1        text
*  &amp;lt;--  p2        text
*----------------------------------------------------------------------*
FORM entry_show_details .
* define local data
  DATA:
    ld_row      TYPE i,
    ls_knb1     TYPE knb1.

  CALL METHOD go_grid1-&amp;gt;get_current_cell
    IMPORTING
      e_row = ld_row.

  READ TABLE gt_knb1 INTO ls_knb1 INDEX ld_row.
  CHECK ( syst-subrc = 0 ).

  SELECT        * FROM  knvv INTO TABLE gt_knvv
         WHERE  kunnr  = ls_knb1-kunnr.



ENDFORM.                    " ENTRY_SHOW_DETAILS&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;P&gt;  Uwe&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 19 Apr 2007 07:27:17 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/automatic-refresh-in-alv-grids/m-p/2097537#M436891</guid>
      <dc:creator>uwe_schieferstein</dc:creator>
      <dc:date>2007-04-19T07:27:17Z</dc:date>
    </item>
    <item>
      <title>Re: automatic refresh in alv grids</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/automatic-refresh-in-alv-grids/m-p/2097538#M436892</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;First thanks a lot ...&lt;/P&gt;&lt;P&gt;'Till now i hadn't success. Not with 1. and not with 2. &lt;/P&gt;&lt;P&gt;...but the problem can be between the ears &lt;SPAN __jive_emoticon_name="wink"&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;You'll get the points but i still must think it over...&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Best regards,&lt;/P&gt;&lt;P&gt;Ingo&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 19 Apr 2007 13:58:48 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/automatic-refresh-in-alv-grids/m-p/2097538#M436892</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-04-19T13:58:48Z</dc:date>
    </item>
    <item>
      <title>Re: automatic refresh in alv grids</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/automatic-refresh-in-alv-grids/m-p/2097539#M436893</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello Ingo&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Apparently my previous solution did not convince you. I have adjusted my sample report to come closer to your scenario. However, technically there is no difference between the solutions.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;*&amp;amp;---------------------------------------------------------------------*
*&amp;amp; Report  ZUS_SDN_TWO_ALV_GRIDS_3
*&amp;amp;
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;
*&amp;amp;
*&amp;amp;---------------------------------------------------------------------*

REPORT  zus_sdn_two_alv_grids_3.

type-pools: icon.


DATA:
  gd_okcode        TYPE ui_func,
*
  go_docking       TYPE REF TO cl_gui_docking_container,
  go_splitter      TYPE REF TO cl_gui_splitter_container,
  go_cell_top      TYPE REF TO cl_gui_container,
  go_cell_bottom   TYPE REF TO cl_gui_container,
  go_grid1         TYPE REF TO cl_gui_alv_grid,
  go_grid2         TYPE REF TO cl_gui_alv_grid,
  gs_layout        TYPE lvc_s_layo.


DATA:
  gt_knb1          TYPE STANDARD TABLE OF knb1,
  gt_knvv          TYPE STANDARD TABLE OF knvv.





*---------------------------------------------------------------------*
*       CLASS lcl_eventhandler DEFINITION
*---------------------------------------------------------------------*
*
*---------------------------------------------------------------------*
CLASS lcl_eventhandler DEFINITION.

  PUBLIC SECTION.
    CLASS-METHODS:
*      handle_double_click FOR EVENT double_click OF cl_gui_alv_grid
*        IMPORTING
*          e_row
*          e_column
*          es_row_no
*          sender.

      handle_user_command FOR EVENT user_command OF cl_gui_alv_grid
        IMPORTING
          e_ucomm
          sender,

      handle_toolbar FOR EVENT toolbar OF cl_gui_alv_grid
        IMPORTING
          e_object
          e_interactive
          sender.

ENDCLASS.                    "lcl_eventhandler DEFINITION



*---------------------------------------------------------------------*
*       CLASS lcl_eventhandler IMPLEMENTATION
*---------------------------------------------------------------------*
*
*---------------------------------------------------------------------*
CLASS lcl_eventhandler IMPLEMENTATION.

  METHOD handle_user_command.
*   define local data
    DATA:
      ls_row       TYPE lvc_s_row,
      ls_knb1      TYPE knb1.

    CHECK ( sender = go_grid1 ).
    CHECK ( e_ucomm = 'SAVE' ).

    CALL METHOD go_grid1-&amp;gt;get_current_cell
      IMPORTING
        es_row_id = ls_row.


    READ TABLE gt_knb1 INTO ls_knb1 INDEX ls_row-index.
    CHECK ( ls_knb1-kunnr IS NOT INITIAL ).


    PERFORM entry_show_details.


*   Triggers PAI of the dynpro with the specified ok-code
    CALL METHOD cl_gui_cfw=&amp;gt;set_new_ok_code( 'DETAIL' ).



  ENDMETHOD.                    "handle_user_command


  METHOD handle_toolbar.
*   define local data
    DATA:
      ls_button   TYPE stb_button.

    ls_button-function = 'SAVE'.
    ls_button-icon     = icon_system_save.
    INSERT ls_button INTO e_object-&amp;gt;mt_toolbar index 1.


  ENDMETHOD.                    "handle_toolbar

ENDCLASS.                    "lcl_eventhandler IMPLEMENTATION






START-OF-SELECTION.

  SELECT        * FROM  knb1 INTO TABLE gt_knb1
         WHERE  bukrs  = '1000'.


* Create docking container
  CREATE OBJECT go_docking
    EXPORTING
      parent                      = cl_gui_container=&amp;gt;screen0
      ratio                       = 90
    EXCEPTIONS
      OTHERS                      = 6.
  IF sy-subrc &amp;lt;&amp;gt; 0.
*   MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*              WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.


* Create splitter container
  CREATE OBJECT go_splitter
    EXPORTING
      parent            = go_docking
      rows              = 2
      columns           = 1
*      NO_AUTODEF_PROGID_DYNNR =
*      NAME              =
    EXCEPTIONS
      cntl_error        = 1
      cntl_system_error = 2
      OTHERS            = 3.
  IF sy-subrc &amp;lt;&amp;gt; 0.
*   MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*              WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.

* Get cell container
  CALL METHOD go_splitter-&amp;gt;get_container
    EXPORTING
      row       = 1
      column    = 1
    RECEIVING
      container = go_cell_top.
  CALL METHOD go_splitter-&amp;gt;get_container
    EXPORTING
      row       = 2
      column    = 1
    RECEIVING
      container = go_cell_bottom.

* Create ALV grids
  CREATE OBJECT go_grid1
    EXPORTING
      i_parent          = go_cell_top
    EXCEPTIONS
      OTHERS            = 5.
  IF sy-subrc &amp;lt;&amp;gt; 0.
*   MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*              WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.


* Set event handler
  SET HANDLER: lcl_eventhandler=&amp;gt;handle_user_command FOR go_grid1,
               lcl_eventhandler=&amp;gt;handle_toolbar      FOR go_grid1.





  CREATE OBJECT go_grid2
    EXPORTING
      i_parent          = go_cell_bottom
    EXCEPTIONS
      OTHERS            = 5.
  IF sy-subrc &amp;lt;&amp;gt; 0.
*   MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*              WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.


* Display data
  gs_layout-grid_title = 'Customers'.
  CALL METHOD go_grid1-&amp;gt;set_table_for_first_display
    EXPORTING
      i_structure_name = 'KNB1'
      is_layout        = gs_layout
    CHANGING
      it_outtab        = gt_knb1
    EXCEPTIONS
      OTHERS           = 4.
  IF sy-subrc &amp;lt;&amp;gt; 0.
*   MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*              WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.


  go_grid1-&amp;gt;set_toolbar_interactive( ).


  gs_layout-grid_title = 'Customers Details (Sales Areas)'.
  CALL METHOD go_grid2-&amp;gt;set_table_for_first_display
    EXPORTING
      i_structure_name = 'KNVV'
      is_layout        = gs_layout
    CHANGING
      it_outtab        = gt_knvv  " empty !!!
    EXCEPTIONS
      OTHERS           = 4.
  IF sy-subrc &amp;lt;&amp;gt; 0.
*   MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*              WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.


* Link the docking container to the target dynpro
  CALL METHOD go_docking-&amp;gt;link
    EXPORTING
      repid                       = syst-repid
      dynnr                       = '0100'
*      CONTAINER                   =
    EXCEPTIONS
      OTHERS                      = 4.
  IF sy-subrc &amp;lt;&amp;gt; 0.
*   MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*              WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.


* NOTE: dynpro does not contain any elements
  CALL SCREEN '0100'.
* Flow logic of dynpro (does not contain any dynpro elements):
*
*PROCESS BEFORE OUTPUT.
*  MODULE STATUS_0100.
**
*PROCESS AFTER INPUT.
*  MODULE USER_COMMAND_0100.



END-OF-SELECTION.

*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Module  STATUS_0100  OUTPUT
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE status_0100 OUTPUT.
  SET PF-STATUS 'STATUS_0100'.  " contains push button "DETAIL"
*  SET TITLEBAR 'xxx'.


* Refresh display of detail ALV list
  CALL METHOD go_grid2-&amp;gt;refresh_table_display
*    EXPORTING
*      IS_STABLE      =
*      I_SOFT_REFRESH =
    EXCEPTIONS
      OTHERS         = 2.
  IF sy-subrc &amp;lt;&amp;gt; 0.
*   MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*              WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.


ENDMODULE.                 " STATUS_0100  OUTPUT

*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Module  USER_COMMAND_0100  INPUT
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE user_command_0100 INPUT.

  CASE gd_okcode.
    WHEN 'BACK' OR
         'END'  OR
         'CANC'.
      SET SCREEN 0. LEAVE SCREEN.

*   User has pushed button "Display Details"
    WHEN 'DETAIL'.
**      PERFORM entry_show_details.
*     Simply pass PAI followed by PBO

    WHEN OTHERS.
  ENDCASE.

  CLEAR: gd_okcode.

ENDMODULE.                 " USER_COMMAND_0100  INPUT

*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  ENTRY_SHOW_DETAILS
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  --&amp;gt;  p1        text
*  &amp;lt;--  p2        text
*----------------------------------------------------------------------*
FORM entry_show_details .
* define local data
  DATA:
    ld_row      TYPE i,
    ls_knb1     TYPE knb1.

  CALL METHOD go_grid1-&amp;gt;get_current_cell
    IMPORTING
      e_row = ld_row.

  READ TABLE gt_knb1 INTO ls_knb1 INDEX ld_row.
  CHECK ( syst-subrc = 0 ).

  SELECT        * FROM  knvv INTO TABLE gt_knvv
         WHERE  kunnr  = ls_knb1-kunnr.



ENDFORM.                    " ENTRY_SHOW_DETAILS
&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;P&gt;  Uwe&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 19 Apr 2007 21:25:18 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/automatic-refresh-in-alv-grids/m-p/2097539#M436893</guid>
      <dc:creator>uwe_schieferstein</dc:creator>
      <dc:date>2007-04-19T21:25:18Z</dc:date>
    </item>
    <item>
      <title>Re: automatic refresh in alv grids</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/automatic-refresh-in-alv-grids/m-p/2097540#M436894</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Uwe!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks a lot for your help!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Best regards,&lt;/P&gt;&lt;P&gt;Ingo&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 20 Apr 2007 07:37:24 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/automatic-refresh-in-alv-grids/m-p/2097540#M436894</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-04-20T07:37:24Z</dc:date>
    </item>
    <item>
      <title>Re: automatic refresh in alv grids</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/automatic-refresh-in-alv-grids/m-p/2097541#M436895</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;         I have one screen(100),which contains records.User can select any one record and click 'Details' button.Then it will take to screen 110.When I am coming back to screen 110 again.The previously selected row is again in selected mode only.Now if I am selecting another row and click the 'Detail' button.I am getting the error saying that 'Please select one record'.In debugging mode also I checked using the FM get_current_cell but nothing is getting selected surprisingly.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Even I used  CALL METHOD grid-&amp;gt;refresh_table_display in the PBO of screen 100.&lt;/P&gt;&lt;P&gt;Below is the code I used in PBO of screen 100&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ODULE STATUS_0100 OUTPUT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  SET PF-STATUS 'PF100'.&lt;/P&gt;&lt;P&gt;  SET TITLEBAR 'TITLE'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;   DATA: G_CONSISTENCY_CHECK TYPE CHAR1.&lt;/P&gt;&lt;P&gt;  DATA: G_EXCLUDE TYPE UI_FUNCTIONS.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF container100 IS INITIAL.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*ex_FUNCTIONS-&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*-- Check execution mode (foreground/background)&lt;/P&gt;&lt;P&gt;    IF cl_gui_alv_grid=&amp;gt;offline( ) IS INITIAL.&lt;/P&gt;&lt;P&gt;      CREATE OBJECT CONTAINER100&lt;/P&gt;&lt;P&gt;        EXPORTING CONTAINER_NAME = 'CONTAINER100'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      CREATE OBJECT GRID&lt;/P&gt;&lt;P&gt;        EXPORTING I_PARENT = CONTAINER100.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      CALL METHOD GRID-&amp;gt;SET_TABLE_FOR_FIRST_DISPLAY&lt;/P&gt;&lt;P&gt;        EXPORTING&lt;/P&gt;&lt;P&gt;          I_BYPASSING_BUFFER            = 'X'&lt;/P&gt;&lt;P&gt;          I_BUFFER_ACTIVE               = ''&lt;/P&gt;&lt;P&gt;          I_CONSISTENCY_CHECK   = G_CONSISTENCY_CHECK&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         IT_TOOLBAR_EXCLUDING  = G_EXCLUDE&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;          IT_TOOLBAR_EXCLUDING          = IT_TOOLBAR&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;             I_STRUCTURE_NAME              =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;          IS_VARIANT                    = gs_layout&lt;/P&gt;&lt;P&gt;          I_SAVE                        = 'A'&lt;/P&gt;&lt;P&gt;          I_DEFAULT                     = 'X'&lt;/P&gt;&lt;P&gt;          IS_LAYOUT                     = X_LAYOUT&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;             IS_PRINT                      =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;             IT_SPECIAL_GROUPS             =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         IT_TOOLBAR_EXCLUDING          = IT_TOOLBAR&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;             IT_HYPERLINK                  =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;             IT_ALV_GRAPHICS               =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;             IT_EXCEPT_QINFO               =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        CHANGING&lt;/P&gt;&lt;P&gt;          IT_OUTTAB                     = IT_YAPOHDR_MAIN[]&lt;/P&gt;&lt;P&gt;          IT_FIELDCATALOG               = IT_FIELDCAT[].&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;             IT_SORT                       =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;             IT_FILTER                     =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;           EXCEPTIONS&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;             INVALID_PARAMETER_COMBINATION = 1&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;             PROGRAM_ERROR                 = 2&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;             TOO_MANY_LINES                = 3&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;             others                        = 4.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*--Register enter key for data changed event&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; CALL METHOD grid-&amp;gt;set_ready_for_input&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         EXPORTING i_ready_for_input = 0.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    create object event_receiver.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  Register the 'hotspot' event handler method dynamically...&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   set handler event_receiver-&amp;gt;handle_hotspot_click for grid.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  Register the User Command event handler method dynamically...&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   set handler event_receiver-&amp;gt;handle_user_command for grid.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  Register the User Command event handler method dynamically...&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   set handler event_receiver-&amp;gt;handle_data_changed for grid.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; else.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;   CALL METHOD 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;ENDMODULE.                 " STATUS_0100  OUTPUT&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The below is the code I used in PAI of screen 110.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;MODULE USER_COMMAND_0110 INPUT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA : LT_DETAILS_MAIN LIKE YAPOPLN_ITM OCCURS 0 WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;         LV_POP TYPE C,&lt;/P&gt;&lt;P&gt;         APPROVE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CASE SY-UCOMM.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    WHEN 'BACK'.&lt;/P&gt;&lt;P&gt;     CALL METHOD grid-&amp;gt;REFRESH_TABLE_DISPLAY.&lt;/P&gt;&lt;P&gt;     CALL METHOD grid-&amp;gt;GET_FRONTEND_FIELDCATALOG.&lt;/P&gt;&lt;P&gt;     LEAVE TO SCREEN 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    WHEN 'EXIT'.&lt;/P&gt;&lt;P&gt;      LEAVE TO SCREEN 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Please Let me know if there is any solution.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks,&lt;/P&gt;&lt;P&gt;Balaji&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 29 Nov 2007 23:24:36 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/automatic-refresh-in-alv-grids/m-p/2097541#M436895</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-11-29T23:24:36Z</dc:date>
    </item>
  </channel>
</rss>

