Application Development Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 

Problem with Mulitple Line Selection in ALV

abhishek37373
Participant
0 Kudos

Hi folks,

As suggested on many questions i have declared a field "SEL" in the final Table of ALV,made it a check Box,Passed the value in wa_layout-box_field name and handled it in 'USER_COMMAND' but the problem is that SEL is always initial. After having selected some lines, there is no X in SEL Field.

Do I need to any more steps for the  field "SEL" is filled?

Here is the code/steps i have done for multiple line selection.

1)BEGIN OF ty_final,
sel TYPE c,
kante TYPE  kante ,
       END OF ty_final,


2)  wa_layout   TYPE slis_layout_alv,


   wa_layout-box_fieldname     = 'SEL'.
   wa_layout-edit_mode = 'A'.
   wa_layout-box_tabname = 'LI_FINAL'.
   wa_layout-colwidth_optimize = 'X'.


3)*Adding check box in the 1st Coloumn.
   wa_fieldcat-fieldname = 'SEL' .
   wa_fieldcat-seltext_l = 'Select' .
   wa_fieldcat-checkbox = 'X'.
   wa_fieldcat-edit = 'X'.
   APPEND wa_fieldcat TO it_fieldcat .
   CLEAR : wa_fieldcat.


4)CLEAR wa_events.
   wa_events-name              = 'USER_COMMAND'.
   wa_events-form              = 'USER_COMMAND'.
   APPEND wa_events TO it_events.

   CLEAR wa_events.
   CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY' "
     EXPORTING  i_callback_program  = g_repid
                i_callback_pf_status_set = 'MY_STATUS'
*               i_callback_user_command = 'USER_COMMAND'
                is_layout     = wa_layout
                it_fieldcat   = it_fieldcat
                it_events          = it_events
     TABLES     t_outtab      = li_final
     EXCEPTIONS program_error = 1
                OTHERS        = 2.


5)*&---------------------------------------------------------------------*
*&      Form  USER_COMMAND
*&---------------------------------------------------------------------*
FORM user_command USING ucomm LIKE sy-ucomm
                         selfield TYPE slis_selfield.

* Check function code
   CASE ucomm.

     WHEN 'CR' OR 'DC'."create Commissioning Work Order or
       "create De-Commissioning Work Order

*     Choosing entries which are selected in ALV
       CLEAR:wa_final.
       LOOP AT li_final INTO wa_final WHERE sel = 'X'.
         CLEAR:wa_final1.
         wa_final1-eqnach = wa_final-eqnach.
         wa_final1-eqvon  = wa_final-eqvon.
         APPEND wa_final1 TO li_final1.
       ENDLOOP.


ENDFORM.

1 ACCEPTED SOLUTION

Hvshal4u
Active Participant
0 Kudos

Hi Abhishek ,

Please try the below code :

DATA ls_ref1 TYPE REF TO cl_gui_alv_grid . " Ref to ur grid

CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'

IMPORTING

e_grid = ls_ref1.

CALL METHOD ls_ref1->check_changed_data . " gets the changes data

Now will get selected records in the itab. You can process the itab with value 'X'

Thanks & Regards -

Vishal

3 REPLIES 3

Hvshal4u
Active Participant
0 Kudos

Hi Abhishek ,

Please try the below code :

DATA ls_ref1 TYPE REF TO cl_gui_alv_grid . " Ref to ur grid

CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'

IMPORTING

e_grid = ls_ref1.

CALL METHOD ls_ref1->check_changed_data . " gets the changes data

Now will get selected records in the itab. You can process the itab with value 'X'

Thanks & Regards -

Vishal

0 Kudos

Thanks

It worked correctly.

However i wonder why calling this method was not given in other solutions for multiple line selection and how it worked for them..:O

Thanks again

Hvshal4u
Active Participant
0 Kudos

Hi Abhishek ,

  method check_changed_data refreshes the internal table hence you will get the updated values from the grid.

Thanks & Regards -

Vishal