Technology Blogs by Members
Explore a vibrant mix of technical expertise, industry insights, and tech buzz in member blogs covering SAP products, technology, and events. Get in the mix!
cancel
Showing results for 
Search instead for 
Did you mean: 
kutjohn
Active Participant

Hi all,

I saw many people asking how to do a multi-selection on a webdynpro ALV without using ctrl key.

First of all it isn't a straight forward method but does the job.

So if you are in a situation where you have to do multi-selection without ctrl key, this document should help you.

Before I start this document I assume that you know how to create an ALV in webdynpro.

Step 1:Create an ALV and while initializing the ALV ( In my case its in WDDOINIT method ) set the selection mode as MULTI.

Step 2:Create a global table as an attribute to the controller.

GT_INDEX is of type ZINDEX_T

ZINDEX_T has the line type ZINDEX_S

and ZINDEX_S has the structure:

Step 3:Implement the event handler method on_lead_select of the ALV

Step 4:Write the following code in the method.


DATA: ls_index TYPE zindex_s,
         lv_index TYPE i.
   DATA lo_nd_table_node TYPE REF TO if_wd_context_node.
   lo_nd_table_node = wd_context->get_child_node( name = wd_this->wdctx_table_node ).
   READ TABLE wd_this->gt_index WITH KEY idx = r_param->index TRANSPORTING NO FIELDS.
   IF sy-subrc = 0.
     DELETE wd_this->gt_index INDEX sy-tabix.
   ELSE.
     CLEAR ls_index.
     ls_index-idx = r_param->index.
     APPEND ls_index TO wd_this->gt_index.
   ENDIF.
   LOOP AT wd_this->gt_index INTO ls_index.
     lv_index = ls_index-idx.
     lo_nd_table_node->set_selected(
       EXPORTING
         flag  = abap_true    " Value with Which Property Is to Filled
         index = lv_index    " Index of Context Element
     ).
   ENDLOOP.

Now you go and click on the rows required without pressing ctrl key to select it and click again to deselect it.

Thank you.

7 Comments
Labels in this area