<?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: get_selected_rows when called second time in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/get-selected-rows-when-called-second-time/m-p/4357854#M1037474</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello Swathi&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The sample report &lt;STRONG&gt;ZUS_SDN_TWO_ALV_GRIDS_2SCR&lt;/STRONG&gt; does exactly what you would like to do.&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_2SCR
*&amp;amp;
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp; Thread: get_selected_rows when called second time
*&amp;amp; &amp;lt;a class="jive_macro jive_macro_thread" href="" __jive_macro_name="thread" modifiedtitle="true" __default_attr="1013798"&amp;gt;&amp;lt;/a&amp;gt;
*&amp;amp;
*&amp;amp; Thread: clear GRID
*&amp;amp; &amp;lt;a class="jive_macro jive_macro_thread" href="" __jive_macro_name="thread" modifiedtitle="true" __default_attr="1017969"&amp;gt;&amp;lt;/a&amp;gt;
*&amp;amp;
*&amp;amp; Thread: ALV Grid OO u2013 Get_selected_rows u2013 I can I re-display ALV Grid with selected
*&amp;amp; &amp;lt;a class="jive_macro jive_macro_thread" href="" __jive_macro_name="thread" modifiedtitle="true" __default_attr="924061"&amp;gt;&amp;lt;/a&amp;gt;
*&amp;amp;
*&amp;amp; Thread: CL_GUI_ALV_GRID-GET_SELECTED_ROWS Parameter ET_INDEX_ROWS not filled.
*&amp;amp; &amp;lt;a class="jive_macro jive_macro_thread" href="" __jive_macro_name="thread" modifiedtitle="true" __default_attr="826287"&amp;gt;&amp;lt;/a&amp;gt;
*&amp;amp;
*&amp;amp; Thread: ALV double-click
*&amp;amp; &amp;lt;a class="jive_macro jive_macro_thread" href="" __jive_macro_name="thread" modifiedtitle="true" __default_attr="900214"&amp;gt;&amp;lt;/a&amp;gt;
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp; Screen '0100' contains no elements.
*&amp;amp; ok_code -&amp;gt; assigned to GD_OKCODE
*&amp;amp;
*&amp;amp; Flow logic:
*  PROCESS BEFORE OUTPUT.
*    MODULE STATUS_0100.
**
*  PROCESS AFTER INPUT.
*    MODULE USER_COMMAND_0100.
*&amp;amp;
*&amp;amp; Screen '0200': copy of screen '0100' (for the sake of simplicity)
*&amp;amp;
*&amp;amp; GUI Status: contains function button 'DETAIL' to display details
*&amp;amp;             of customer on 2nd screen
*&amp;amp;---------------------------------------------------------------------*

REPORT  zus_sdn_two_alv_grids_2scr.




DATA:
  gd_okcode        TYPE ui_func,
  gd_repid         TYPE syrepid,
*
  go_docking1      TYPE REF TO cl_gui_docking_container,
  go_docking2      TYPE REF TO cl_gui_docking_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_outtab1       TYPE STANDARD TABLE OF knb1,
  gt_outtab2       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:
      lt_rows   type lvc_t_row.

    CHECK ( sender = go_grid1 ).

    append e_row to lt_rows.

    CALL METHOD go_grid1-&amp;gt;set_selected_rows
      EXPORTING
        it_index_rows            = lt_rows
*        it_row_no                =
*        is_keep_other_selections =
        .

*   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_outtab1
         WHERE  bukrs  = '1000'.


  PERFORM init_controls.


* Display data
  gs_layout-grid_title = 'Customers'.
  gs_layout-sel_mode   = 'D'.  " multiple row selection
  gs_layout-sel_mode   = ' '.  " single row selection
  CALL METHOD go_grid1-&amp;gt;set_table_for_first_display
    EXPORTING
      i_structure_name = 'KNB1'
      is_layout        = gs_layout
    CHANGING
      it_outtab        = gt_outtab1
    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_outtab2  " 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.


  gd_repid = syst-repid.
* Link the docking container to the target dynpro
  CALL METHOD go_docking1-&amp;gt;link
    EXPORTING
      repid                       = gd_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.

* Link the docking container to the target dynpro
  CALL METHOD go_docking2-&amp;gt;link
    EXPORTING
      repid                       = gd_repid
      dynnr                       = '0200'
*      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 '0100' (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;      Form  INIT_CONTROLS
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  --&amp;gt;  p1        text
*  &amp;lt;--  p2        text
*----------------------------------------------------------------------*
FORM init_controls .

* Create docking container
  CREATE OBJECT go_docking1
    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 ALV grids
  CREATE OBJECT go_grid1
    EXPORTING
      i_parent = go_docking1
    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 docking container
  CREATE OBJECT go_docking2
    EXPORTING
      parent = go_docking2
      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 ALV grids
  CREATE OBJECT go_grid2
    EXPORTING
      i_parent = go_docking2
    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.

ENDFORM.                    " INIT_CONTROLS

*&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.

  TRANSLATE gd_okcode TO UPPER CASE.

  CASE gd_okcode.
    WHEN 'BACK' OR
         'END'  OR
         'CANC'.
      CASE syst-dynnr.
        WHEN '0100'.
          SET SCREEN 0. LEAVE SCREEN.
        WHEN '0200'.
          SET SCREEN '0100'.
          LEAVE SCREEN.
      ENDCASE.

*   User has pushed button "Display Details"
    WHEN 'DETAIL'.
      PERFORM entry_show_details.
      CALL SCREEN '0200'.

      WHEN 'DELETE'.
        perform DELETE_ENTRIES.

    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:
    ls_row      TYPE lvc_s_row,
    lt_rows     type lvc_t_row,
    ls_knb1     TYPE knb1,
    lt_knb1     TYPE STANDARD TABLE OF knb1.



  CALL METHOD go_grid1-&amp;gt;get_selected_rows
    IMPORTING
      et_index_rows = lt_rows
*      et_row_no     =
      .

  LOOP AT lt_rows INTO ls_row.
    READ TABLE gt_outtab1 INTO ls_knb1 INDEX ls_row-index.

    APPEND ls_knb1 TO lt_knb1.
  ENDLOOP.

  IF ( lt_rows IS INITIAL ).
    REFRESH: gt_outtab2.
  ELSE.
    SELECT * FROM  knvv INTO TABLE gt_outtab2
        FOR ALL ENTRIES IN lt_knb1
           WHERE  kunnr  = lt_knb1-kunnr.
  ENDIF.



ENDFORM.                    " ENTRY_SHOW_DETAILS
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  DELETE_ENTRIES
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  --&amp;gt;  p1        text
*  &amp;lt;--  p2        text
*----------------------------------------------------------------------*
form DELETE_ENTRIES .
* define local data
  DATA:
    ls_row      TYPE lvc_s_row,
    lt_rows     type lvc_t_row.

  CALL METHOD go_grid1-&amp;gt;get_selected_rows
    IMPORTING
      et_index_rows = lt_rows
*      et_row_no     =
      .

  LOOP AT lt_rows INTO ls_row.
    delete gt_outtab1 INDEX ls_row-index.
  ENDLOOP.

  go_grid1-&amp;gt;refresh_table_display( ).  " Mandatory !!!


endform.                    " DELETE_ENTRIES
&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&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>Wed, 27 Aug 2008 04:26:21 GMT</pubDate>
    <dc:creator>uwe_schieferstein</dc:creator>
    <dc:date>2008-08-27T04:26:21Z</dc:date>
    <item>
      <title>get_selected_rows when called second time</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/get-selected-rows-when-called-second-time/m-p/4357851#M1037471</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;My problem is:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have 2 screens say 101, 102&lt;/P&gt;&lt;P&gt;In 101 screen, i am displaying alv grid, when i select a row and click on the button 'Display' on app toolbar, using get_selected_rows method i am capturing index of the row and displaying corresponding details in the second alv (will be displayed in screen 102) . &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;when i go back from 102 using 'BACK'  to the screen 101 and selects the other row in alv and againing clicking on 'Dislay' , my get_selected_rows is not capturing the index of the row i selected.(Second time)&lt;/P&gt;&lt;P&gt;lt_index[] is empty for the second time.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Code in PAI event of 101 screen.&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 'DISPLAY'&lt;/P&gt;&lt;P&gt;  refresh lt_index[].&lt;/P&gt;&lt;P&gt;  clear wa_index.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    call method grid1-&amp;gt;get_selected_rows&lt;/P&gt;&lt;P&gt;          importing&lt;/P&gt;&lt;P&gt;         et_index_rows = lt_index.&lt;/P&gt;&lt;P&gt;                 et_row_no     = lt_row_no[].&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;READ TABLE LT_INDEX INTO WA_INDEX INDEX 1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    READ TABLE itab_zqmseq INDEX wa_index  INTO z_alv.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;call screen 102.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  call method grid1-&amp;gt;refresh_table_display.&lt;/P&gt;&lt;P&gt;endcase.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PAI Event of 102 screen.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;WHEN 'BACK'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;leave to screen 101.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Please help me in solving this.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks in advance,&lt;/P&gt;&lt;P&gt;Swathi&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 21 Aug 2008 08:26:50 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/get-selected-rows-when-called-second-time/m-p/4357851#M1037471</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-08-21T08:26:50Z</dc:date>
    </item>
    <item>
      <title>Re: get_selected_rows when called second time</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/get-selected-rows-when-called-second-time/m-p/4357852#M1037472</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;try with &lt;/P&gt;&lt;P&gt;clear row no in display method or &lt;/P&gt;&lt;P&gt;clear the row no you are capturing from the method get_selected_rows&lt;/P&gt;&lt;P&gt;once you are coming back from screen 102 to 101.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 21 Aug 2008 09:19:37 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/get-selected-rows-when-called-second-time/m-p/4357852#M1037472</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-08-21T09:19:37Z</dc:date>
    </item>
    <item>
      <title>Re: get_selected_rows when called second time</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/get-selected-rows-when-called-second-time/m-p/4357853#M1037473</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;It is working for me check it once, what you are doing with the sample code..&lt;/P&gt;&lt;P&gt;I have two screens 100,200.&lt;/P&gt;&lt;P&gt;for 100 screen CONT and 200 screen CONT1.&lt;/P&gt;&lt;P&gt;it working fine for me.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;CREATE OBJECT grid
        EXPORTING
          i_parent          = cont
          i_appl_events     = 'X' "&amp;lt;----Check this

&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;REPORT  ztest_selected.
DATA: it_flight TYPE sflight_tab1,
      it_scarr TYPE STANDARD TABLE OF  scarr.
DATA: grid TYPE REF TO cl_gui_alv_grid,
      cont TYPE REF TO cl_gui_custom_container.
DATA: grid2 TYPE REF TO cl_gui_alv_grid,
      cont2 TYPE REF TO cl_gui_custom_container.
SELECT * FROM scarr
  INTO TABLE it_scarr
 UP TO 10 ROWS.

CALL SCREEN 100.
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Module  STATUS_0100  OUTPUT
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE status_0100 OUTPUT.
  SET PF-STATUS 'STATUS'.
  IF cont IS INITIAL.
    CREATE OBJECT cont
      EXPORTING
        container_name              = 'CONT'
      EXCEPTIONS
        cntl_error                  = 1
        cntl_system_error           = 2
        create_error                = 3
        lifetime_error              = 4
        lifetime_dynpro_dynpro_link = 5
        OTHERS                      = 6
        .
    IF sy-subrc EQ 0.
      CREATE OBJECT grid
        EXPORTING
          i_parent          = cont
          i_appl_events     = 'X'
        EXCEPTIONS
          error_cntl_create = 1
          error_cntl_init   = 2
          error_cntl_link   = 3
          error_dp_create   = 4
          OTHERS            = 5
          .
      IF sy-subrc NE 0.

      ENDIF.
      CALL METHOD grid-&amp;gt;set_table_for_first_display(
       EXPORTING
         i_structure_name              = 'SCARR'
       CHANGING
         it_outtab                     = it_scarr
       EXCEPTIONS
         invalid_parameter_combination = 1
         program_error                 = 2
         too_many_lines                = 3
            ).
      IF sy-subrc NE 0.

      ENDIF.

    ENDIF.
  ENDIF.


ENDMODULE.                 " STATUS_0100  OUTPUT
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Module  USER_COMMAND_0100  INPUT
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE user_command_0100 INPUT.
  DATA:  et_row_no TYPE lvc_t_roid,
         LS_ROW LIKE LINE OF ET_ROW_NO,
         WA_SCARR TYPE SCARR.
  CASE sy-ucomm.
    WHEN 'BACK'.
      LEAVE TO SCREEN 0.
    WHEN 'DISPLAY'.
      CALL METHOD grid-&amp;gt;get_selected_rows(
          IMPORTING
            et_row_no     = et_row_no
               ).
     if et_row_no is not INITIAL.
      READ TABLE ET_ROW_NO INTO LS_ROW INDEX 1.
      READ TABLE IT_SCARR INTO WA_SCARR INDEX LS_ROW-ROW_ID.
      PERFORM FLIGHT_DISPLAY using WA_SCARR-carrid.

     ENDIF.
  ENDCASE.
ENDMODULE.                 " USER_COMMAND_0100  INPUT
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  FLIGHT_DISPLAY
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  --&amp;gt;  p1        text
*  &amp;lt;--  p2        text
*----------------------------------------------------------------------*
form FLIGHT_DISPLAY using carrid type sflight-carrid.

clear it_flight.
select * from sflight
  into table it_flight
  where carrid eq wa_scarr-carrid.
  CALL SCREEN 200.

endform.                    " FLIGHT_DISPLAY
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Module  STATUS_0200  OUTPUT
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
module STATUS_0200 output.
SET PF-STATUS 'STATUS2'.
clear: cont2,grid2.
  IF cont2 IS INITIAL.
    CREATE OBJECT cont2
      EXPORTING
        container_name              = 'CONT2'
      EXCEPTIONS
        cntl_error                  = 1
        cntl_system_error           = 2
        create_error                = 3
        lifetime_error              = 4
        lifetime_dynpro_dynpro_link = 5
        OTHERS                      = 6
        .
    IF sy-subrc EQ 0.
      CREATE OBJECT grid2
        EXPORTING
          i_parent          = cont2
          i_appl_events     = 'X'
        EXCEPTIONS
          error_cntl_create = 1
          error_cntl_init   = 2
          error_cntl_link   = 3
          error_dp_create   = 4
          OTHERS            = 5
          .
      IF sy-subrc NE 0.

      ENDIF.
      CALL METHOD grid2-&amp;gt;set_table_for_first_display(
       EXPORTING
         i_structure_name              = 'SFLIGHT'
       CHANGING
         it_outtab                     = it_flight
       EXCEPTIONS
         invalid_parameter_combination = 1
         program_error                 = 2
         too_many_lines                = 3
            ).
      IF sy-subrc NE 0.

      ENDIF.

    ENDIF.
  ENDIF.

endmodule.                 " STATUS_0200  OUTPUT
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Module  USER_COMMAND_0200  INPUT
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
module USER_COMMAND_0200 input.
case sy-ucomm.
  when 'BACK'.
    leave to screen 0.
  endcase.
endmodule.                 " USER_COMMAND_0200  INPUT&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 21 Aug 2008 10:55:05 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/get-selected-rows-when-called-second-time/m-p/4357853#M1037473</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-08-21T10:55:05Z</dc:date>
    </item>
    <item>
      <title>Re: get_selected_rows when called second time</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/get-selected-rows-when-called-second-time/m-p/4357854#M1037474</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello Swathi&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The sample report &lt;STRONG&gt;ZUS_SDN_TWO_ALV_GRIDS_2SCR&lt;/STRONG&gt; does exactly what you would like to do.&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_2SCR
*&amp;amp;
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp; Thread: get_selected_rows when called second time
*&amp;amp; &amp;lt;a class="jive_macro jive_macro_thread" href="" __jive_macro_name="thread" modifiedtitle="true" __default_attr="1013798"&amp;gt;&amp;lt;/a&amp;gt;
*&amp;amp;
*&amp;amp; Thread: clear GRID
*&amp;amp; &amp;lt;a class="jive_macro jive_macro_thread" href="" __jive_macro_name="thread" modifiedtitle="true" __default_attr="1017969"&amp;gt;&amp;lt;/a&amp;gt;
*&amp;amp;
*&amp;amp; Thread: ALV Grid OO u2013 Get_selected_rows u2013 I can I re-display ALV Grid with selected
*&amp;amp; &amp;lt;a class="jive_macro jive_macro_thread" href="" __jive_macro_name="thread" modifiedtitle="true" __default_attr="924061"&amp;gt;&amp;lt;/a&amp;gt;
*&amp;amp;
*&amp;amp; Thread: CL_GUI_ALV_GRID-GET_SELECTED_ROWS Parameter ET_INDEX_ROWS not filled.
*&amp;amp; &amp;lt;a class="jive_macro jive_macro_thread" href="" __jive_macro_name="thread" modifiedtitle="true" __default_attr="826287"&amp;gt;&amp;lt;/a&amp;gt;
*&amp;amp;
*&amp;amp; Thread: ALV double-click
*&amp;amp; &amp;lt;a class="jive_macro jive_macro_thread" href="" __jive_macro_name="thread" modifiedtitle="true" __default_attr="900214"&amp;gt;&amp;lt;/a&amp;gt;
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp; Screen '0100' contains no elements.
*&amp;amp; ok_code -&amp;gt; assigned to GD_OKCODE
*&amp;amp;
*&amp;amp; Flow logic:
*  PROCESS BEFORE OUTPUT.
*    MODULE STATUS_0100.
**
*  PROCESS AFTER INPUT.
*    MODULE USER_COMMAND_0100.
*&amp;amp;
*&amp;amp; Screen '0200': copy of screen '0100' (for the sake of simplicity)
*&amp;amp;
*&amp;amp; GUI Status: contains function button 'DETAIL' to display details
*&amp;amp;             of customer on 2nd screen
*&amp;amp;---------------------------------------------------------------------*

REPORT  zus_sdn_two_alv_grids_2scr.




DATA:
  gd_okcode        TYPE ui_func,
  gd_repid         TYPE syrepid,
*
  go_docking1      TYPE REF TO cl_gui_docking_container,
  go_docking2      TYPE REF TO cl_gui_docking_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_outtab1       TYPE STANDARD TABLE OF knb1,
  gt_outtab2       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:
      lt_rows   type lvc_t_row.

    CHECK ( sender = go_grid1 ).

    append e_row to lt_rows.

    CALL METHOD go_grid1-&amp;gt;set_selected_rows
      EXPORTING
        it_index_rows            = lt_rows
*        it_row_no                =
*        is_keep_other_selections =
        .

*   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_outtab1
         WHERE  bukrs  = '1000'.


  PERFORM init_controls.


* Display data
  gs_layout-grid_title = 'Customers'.
  gs_layout-sel_mode   = 'D'.  " multiple row selection
  gs_layout-sel_mode   = ' '.  " single row selection
  CALL METHOD go_grid1-&amp;gt;set_table_for_first_display
    EXPORTING
      i_structure_name = 'KNB1'
      is_layout        = gs_layout
    CHANGING
      it_outtab        = gt_outtab1
    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_outtab2  " 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.


  gd_repid = syst-repid.
* Link the docking container to the target dynpro
  CALL METHOD go_docking1-&amp;gt;link
    EXPORTING
      repid                       = gd_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.

* Link the docking container to the target dynpro
  CALL METHOD go_docking2-&amp;gt;link
    EXPORTING
      repid                       = gd_repid
      dynnr                       = '0200'
*      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 '0100' (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;      Form  INIT_CONTROLS
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  --&amp;gt;  p1        text
*  &amp;lt;--  p2        text
*----------------------------------------------------------------------*
FORM init_controls .

* Create docking container
  CREATE OBJECT go_docking1
    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 ALV grids
  CREATE OBJECT go_grid1
    EXPORTING
      i_parent = go_docking1
    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 docking container
  CREATE OBJECT go_docking2
    EXPORTING
      parent = go_docking2
      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 ALV grids
  CREATE OBJECT go_grid2
    EXPORTING
      i_parent = go_docking2
    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.

ENDFORM.                    " INIT_CONTROLS

*&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.

  TRANSLATE gd_okcode TO UPPER CASE.

  CASE gd_okcode.
    WHEN 'BACK' OR
         'END'  OR
         'CANC'.
      CASE syst-dynnr.
        WHEN '0100'.
          SET SCREEN 0. LEAVE SCREEN.
        WHEN '0200'.
          SET SCREEN '0100'.
          LEAVE SCREEN.
      ENDCASE.

*   User has pushed button "Display Details"
    WHEN 'DETAIL'.
      PERFORM entry_show_details.
      CALL SCREEN '0200'.

      WHEN 'DELETE'.
        perform DELETE_ENTRIES.

    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:
    ls_row      TYPE lvc_s_row,
    lt_rows     type lvc_t_row,
    ls_knb1     TYPE knb1,
    lt_knb1     TYPE STANDARD TABLE OF knb1.



  CALL METHOD go_grid1-&amp;gt;get_selected_rows
    IMPORTING
      et_index_rows = lt_rows
*      et_row_no     =
      .

  LOOP AT lt_rows INTO ls_row.
    READ TABLE gt_outtab1 INTO ls_knb1 INDEX ls_row-index.

    APPEND ls_knb1 TO lt_knb1.
  ENDLOOP.

  IF ( lt_rows IS INITIAL ).
    REFRESH: gt_outtab2.
  ELSE.
    SELECT * FROM  knvv INTO TABLE gt_outtab2
        FOR ALL ENTRIES IN lt_knb1
           WHERE  kunnr  = lt_knb1-kunnr.
  ENDIF.



ENDFORM.                    " ENTRY_SHOW_DETAILS
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  DELETE_ENTRIES
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  --&amp;gt;  p1        text
*  &amp;lt;--  p2        text
*----------------------------------------------------------------------*
form DELETE_ENTRIES .
* define local data
  DATA:
    ls_row      TYPE lvc_s_row,
    lt_rows     type lvc_t_row.

  CALL METHOD go_grid1-&amp;gt;get_selected_rows
    IMPORTING
      et_index_rows = lt_rows
*      et_row_no     =
      .

  LOOP AT lt_rows INTO ls_row.
    delete gt_outtab1 INDEX ls_row-index.
  ENDLOOP.

  go_grid1-&amp;gt;refresh_table_display( ).  " Mandatory !!!


endform.                    " DELETE_ENTRIES
&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&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>Wed, 27 Aug 2008 04:26:21 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/get-selected-rows-when-called-second-time/m-p/4357854#M1037474</guid>
      <dc:creator>uwe_schieferstein</dc:creator>
      <dc:date>2008-08-27T04:26:21Z</dc:date>
    </item>
  </channel>
</rss>

