2008 May 01 3:20 PM
Hi,
I have create a fieldcatalog at runtime and used CALL METHOD cl_alv_table_create=>create_dynamic_table to create a dynamic internal table and used CALL METHOD grid1->set_table_for_first_display to display the alv in the Custom Containner.
I have 2 collums of the ALV as non-editable in the fieldcatalog.
Now my requirement is that i want to get the new row as editable by pressing the Create button on the ALV Toolbar.When i press this button then a new empty record gets inserted at the end of the table but those 2 collums are comming as non-editable whereas i want them as editable.
So how to achive this thing.
And secondly how to make the newly created record cell as mandatory(Required) field in the ALV.
Thanks
2008 May 01 3:43 PM
To control the edit/no edit conditions on a specific row, you will need to make use of CELLSTYLES.
This link gives very good directions.
http://www.abap4.it/download/ALV.pdf
This is an example of setting up the CELLSTYLES
DATA: BEGIN OF gt_outtab OCCURS 0.
INCLUDE STRUCTURE zscemp_wk.
DATA: cellstyles TYPE lvc_t_styl.
DATA: END OF gt_outtab.
And my code setting edit/no edit
*&---------------------------------------------------------------------*
*& Form adjust_editables
*&---------------------------------------------------------------------*
FORM adjust_editables USING pt_list LIKE gt_outtab[].
DATA: ls_listrow LIKE LINE OF pt_list.
DATA: ls_stylerow TYPE lvc_s_styl.
DATA: ls_styletab TYPE lvc_t_styl.
LOOP AT pt_list INTO ls_listrow.
REFRESH ls_listrow-cellstyles.
REFRESH ls_styletab.
IF edit_mode EQ 'D'.
ls_stylerow-fieldname = 'BRANCH'.
ls_stylerow-style = cl_gui_alv_grid=>mc_style_disabled.
APPEND ls_stylerow TO ls_styletab.
ENDIF.
ls_stylerow-fieldname = 'EMPNO'.
IF ls_listrow-empno IS INITIAL
AND edit_mode EQ 'E'.
ls_stylerow-style = cl_gui_alv_grid=>mc_style_enabled.
ELSE.
ls_stylerow-style = cl_gui_alv_grid=>mc_style_disabled.
ENDIF.
APPEND ls_stylerow TO ls_styletab.
INSERT LINES OF ls_styletab INTO TABLE ls_listrow-cellstyles.
MODIFY pt_list FROM ls_listrow.
ENDLOOP.
ENDFORM. " adjust_editables
Requiring the fields to be Mandatory, will be taken care of in your edit routines.
2008 May 01 3:53 PM
Call this method after set table first display
call method g_grid->set_ready_for_input
exporting
i_ready_for_input = '1'.
for required check you can use event AFTER_USER_COMMAND
a®
2008 May 02 6:02 AM
Hi,
Thanks for the Solution.But my problem is that i have a internal table created from the fieldcatalog.ie:
CALL METHOD cl_alv_table_create=>create_dynamic_table
EXPORTING
it_fieldcatalog = it_field_catalog
IMPORTING
ep_table = p_new_table.
where p_new_table type ref to data.
so how to add the the above include of the style structure in p_new_table.
Thanks