<?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 Selection Sequence in ALV in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/selection-sequence-in-alv/m-p/3153935#M750060</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I have an ALV that displays a list, each row of the list has a Checkbox so is possible to select specific rows for further processing, my question is:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;How can I get the selected rows in the exact sequence in which were selected?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Sun, 09 Dec 2007 18:51:32 GMT</pubDate>
    <dc:creator>Former Member</dc:creator>
    <dc:date>2007-12-09T18:51:32Z</dc:date>
    <item>
      <title>Selection Sequence in ALV</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/selection-sequence-in-alv/m-p/3153935#M750060</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I have an ALV that displays a list, each row of the list has a Checkbox so is possible to select specific rows for further processing, my question is:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;How can I get the selected rows in the exact sequence in which were selected?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 09 Dec 2007 18:51:32 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/selection-sequence-in-alv/m-p/3153935#M750060</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-12-09T18:51:32Z</dc:date>
    </item>
    <item>
      <title>Re: Selection Sequence in ALV</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/selection-sequence-in-alv/m-p/3153936#M750061</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;There is a simple and a more elaborate answer to your question: &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;lt;i&amp;gt;Simple answer: &amp;lt;/i&amp;gt;You cannot. The ALV grid has no kind of "memory" which would store this information.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;lt;i&amp;gt;Elaborate answer:&amp;lt;/i&amp;gt; You can, but you have to implement the logic yourself. You may use sample report &amp;lt;b&amp;gt;ZUS_SDN_ALVGRID_EDITABLE_9&amp;lt;/b&amp;gt; as template. Please note that I did not elaborate the logic when a checkbox is &amp;lt;b&amp;gt;&amp;lt;u&amp;gt;de&amp;lt;/u&amp;gt;&amp;lt;/b&amp;gt;selected.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;*&amp;amp;---------------------------------------------------------------------*
*&amp;amp; Report  ZUS_SDN_ALVGRID_EDITABLE_9
*&amp;amp;
*&amp;amp; Description: store sequence of marked checkboxes
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;
*&amp;amp;
*&amp;amp;---------------------------------------------------------------------*

REPORT  zus_sdn_alvgrid_editable_9.


TYPE-POOLS: abap.


DATA:
  gd_repid         TYPE syrepid,
  gd_okcode        TYPE ui_func,
*
  gs_layout        TYPE lvc_s_layo,
  gt_fcat          TYPE lvc_t_fcat,
  go_docking       TYPE REF TO cl_gui_docking_container,
  go_grid          TYPE REF TO cl_gui_alv_grid.


TYPES: BEGIN OF ty_s_outtab.
INCLUDE TYPE knb1.
TYPES: END OF ty_s_outtab.
TYPES: ty_t_outtab    TYPE STANDARD TABLE OF ty_s_outtab
                      WITH DEFAULT KEY.

DATA:
  gt_outtab        TYPE ty_t_outtab,
  gt_outtab_mark   TYPE ty_t_outtab,
  gt_marked_rows   TYPE lvc_t_row.



*---------------------------------------------------------------------*
*       CLASS lcl_eventhandler DEFINITION
*---------------------------------------------------------------------*
*
*---------------------------------------------------------------------*
CLASS lcl_eventhandler DEFINITION.

  PUBLIC SECTION.

    CLASS-METHODS:
      handle_data_changed
        FOR EVENT data_changed OF cl_gui_alv_grid
        IMPORTING
          er_data_changed
          e_onf4
          e_onf4_before
          e_onf4_after
          e_ucomm
          sender,

      handle_hotspot_click FOR EVENT hotspot_click OF cl_gui_alv_grid
        IMPORTING
          e_row_id
          e_column_id
          es_row_no
          sender.  " grid instance that raised the event




ENDCLASS.                    "lcl_eventhandler DEFINITION


*---------------------------------------------------------------------*
*       CLASS lcl_eventhandler IMPLEMENTATION
*---------------------------------------------------------------------*
*
*---------------------------------------------------------------------*
CLASS lcl_eventhandler IMPLEMENTATION.

  method handle_data_changed.

  endmethod.

  METHOD handle_hotspot_click.
*   define local data
    DATA:
      ld_msg        TYPE bapi_msg,
      ls_outtab     TYPE ty_s_outtab,
      ls_col_id     TYPE lvc_s_col.

    READ TABLE gt_outtab INTO ls_outtab INDEX e_row_id-index.
    IF ( ls_outtab-loevm = abap_false ).
      ls_outtab-loevm = abap_true.
      modify gt_outtab from ls_outtab index e_row_id-index.

      APPEND ls_outtab TO gt_outtab_mark.
      APPEND e_row_id TO gt_marked_rows.

      WRITE e_row_id-index TO ld_msg NO-ZERO.
      CONDENSE ld_msg NO-GAPS.
      CONCATENATE 'Row' ld_msg 'selected'
        INTO ld_msg
        SEPARATED BY space.

      MESSAGE ld_msg TYPE 'S'.

    ELSE.
      ls_outtab-loevm = abap_false.
      modify gt_outtab from ls_outtab index e_row_id-index.

      DELETE gt_outtab_mark WHERE ( kunnr = ls_outtab-kunnr
                            AND     bukrs = ls_outtab-bukrs ).
    ENDIF.


    CALL METHOD cl_gui_cfw=&amp;gt;set_new_ok_code
      EXPORTING
        new_code = 'DUMMY'  " trigger PAI
*      IMPORTING
*        RC       =
        .



  ENDMETHOD.                    "handle_hotspot_click

ENDCLASS.                    "lcl_eventhandler IMPLEMENTATION




START-OF-SELECTION.


  SELECT * FROM knb1 INTO TABLE gt_outtab UP TO 20 ROWS
    WHERE bukrs = '1000'.

  REFRESH: gt_outtab_mark.



* 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 ALV grid
  CREATE OBJECT go_grid
    EXPORTING
      i_parent          = go_docking
    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.



* Build fieldcatalog
  PERFORM build_fieldcatalog.

  PERFORM set_layout.

  SET HANDLER:
    lcl_eventhandler=&amp;gt;handle_data_changed  for go_grid,
    lcl_eventhandler=&amp;gt;handle_hotspot_click FOR go_grid.



* Display data
  CALL METHOD go_grid-&amp;gt;set_table_for_first_display
    EXPORTING
      is_layout       = gs_layout
    CHANGING
      it_outtab       = gt_outtab
      it_fieldcatalog = gt_fcat
    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.



  CALL METHOD go_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.


* Link the docking container to the target dynpro
  gd_repid = syst-repid.
  CALL METHOD go_docking-&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.


* ok-code field = GD_OKCODE
  CALL SCREEN '0100'.
* Flow logic (no elements on screen):
*  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'.
*  SET TITLEBAR 'xxx'.

  CALL METHOD go_grid-&amp;gt;refresh_table_display
*      EXPORTING
*        IS_STABLE      =
*        I_SOFT_REFRESH =
    EXCEPTIONS
      finished       = 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.

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.

* Fetch changes on ALV grid
  go_grid-&amp;gt;check_changed_data( ).

  CASE gd_okcode.
    WHEN 'BACK' OR
         'END'  OR
         'CANC'.
      SET SCREEN 0. LEAVE SCREEN.



    WHEN 'DISPLAY'.
      PERFORM display_data.

    WHEN OTHERS.
  ENDCASE.





  CLEAR: gd_okcode.

ENDMODULE.                 " USER_COMMAND_0100  INPUT


*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  BUILD_FIELDCATALOG_KNB1
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  --&amp;gt;  p1        text
*  &amp;lt;--  p2        text
*----------------------------------------------------------------------*
FORM build_fieldcatalog .
* define local data
  DATA:
    ls_fcat        TYPE lvc_s_fcat.



  CALL FUNCTION 'LVC_FIELDCATALOG_MERGE'
    EXPORTING
*     I_BUFFER_ACTIVE              =
      i_structure_name             = 'KNB1'
*     I_CLIENT_NEVER_DISPLAY       = 'X'
*     I_BYPASSING_BUFFER           =
*     I_INTERNAL_TABNAME           =
    CHANGING
      ct_fieldcat                  = gt_fcat
    EXCEPTIONS
      inconsistent_interface       = 1
      program_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.




  " Set required fields editable
  LOOP AT gt_fcat INTO ls_fcat
                  WHERE ( fieldname = 'LOEVM' ).
    ls_fcat-edit     = abap_true.
    ls_fcat-checkbox = abap_true.
    ls_fcat-hotspot  = abap_true.


    MODIFY gt_fcat FROM ls_fcat.
  ENDLOOP.

  DELETE gt_fcat WHERE ( fieldname = 'ZINRT' ).


ENDFORM.                    " BUILD_FIELDCATALOG


*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  SET_LAYOUT
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  --&amp;gt;  p1        text
*  &amp;lt;--  p2        text
*----------------------------------------------------------------------*
FORM set_layout .

  CLEAR: gs_layout.

  gs_layout-cwidth_opt = abap_true.
  gs_layout-zebra      = abap_true.

**  gs_layout-stylefname = 'CELLTAB'.

ENDFORM.                    " SET_LAYOUT




*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  SAVE_DATA
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  --&amp;gt;  p1        text
*  &amp;lt;--  p2        text
*----------------------------------------------------------------------*
FORM display_data .
* define local data






  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC'
    EXPORTING
      i_structure_name = 'LVC_S_ROW'
      i_grid_title     = 'Selected Rows'
    TABLES
      t_outtab         = gt_marked_rows
    EXCEPTIONS
      program_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.


ENDFORM.                    " DISPLAY_DATA&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>Sun, 09 Dec 2007 20:05:39 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/selection-sequence-in-alv/m-p/3153936#M750061</guid>
      <dc:creator>uwe_schieferstein</dc:creator>
      <dc:date>2007-12-09T20:05:39Z</dc:date>
    </item>
    <item>
      <title>Re: Selection Sequence in ALV</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/selection-sequence-in-alv/m-p/3153937#M750062</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;Instead of using checkbox, why don't you use the standard button on the left of the ALV, and use method Get Selected Rows for further processing instead?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 10 Dec 2007 03:51:39 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/selection-sequence-in-alv/m-p/3153937#M750062</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-12-10T03:51:39Z</dc:date>
    </item>
  </channel>
</rss>

