Skip to Content
0
Former Member
Oct 15, 2008 at 08:33 AM

Making only particular cell of ALV editable

3602 Views

Hi,

I have a requirement where when the user clicks on an insert button a blank row should get appended to the ALV and only 1 of the cells in this row should be in editable mode. (Also the other rows of the ALV should be in display mode) I tried coding using the LVC_T_STYL properties but I come up with a screen of all non-editable rows. Please help suggest where I am going wrong. My coding is as below:

My internal table is defined as:

DATA: BEGIN OF it_mara OCCURS 1.
           INCLUDE STRUCTURE mara.
DATA:   cellstyles TYPE lvc_t_styl,
             END OF it_mara.

My other important attribute definitions:

data:   ls_cellstyles TYPE lvc_s_styl,
          ls_layout TYPE lvc_s_layo,

In the PAI event for handling the INSERT button I have coded as:

WHEN 'INSERT'.
      APPEND wa_mara TO it_mara. " Appending a blank row to ALV
      DESCRIBE TABLE it_mara LINES lv_count.
      read table it_mara index lv_count. 
      ls_cellstyles-fieldname = 'MATNR'.
      ls_cellstyles-style = cl_gui_alv_grid=>mc_style_enabled. " Setting only MATNR field of the appended row as enabled
      insert ls_cellstyles into table it_mara-cellstyles.

      MODIFY it_mara INDEX lv_count transporting cellstyles.
      o_grid->refresh_table_display( ).

Am also assigning cellstyles to the stylefname attribute of the layout & passing it to the SET_TABLE_FOR_FIRST_DISPLAY.

Regards,

Uday