Hi,
"but only with one change (see below) and I do this like this:
st_fieldcat-fieldname = 'KWMENG'.
st_fieldcat-hotspot = abap_false.
st_fieldcat-edit = abap_true.
st_fieldcat-outputlen = 15.
APPEND st_fieldcat TO ta_fieldcat."
Assuming you want a column wise modification .
See this modify version of BCALV_EDIT_01 .
*---------------------------------------------------------------------*
MODULE pbo OUTPUT.
SET PF-STATUS 'MAIN100'.
SET TITLEBAR 'MAIN100'.
IF g_custom_container IS INITIAL.
CREATE OBJECT g_custom_container
EXPORTING
container_name = g_container.
CREATE OBJECT g_grid
EXPORTING
i_parent = g_custom_container.
DATA: it_fieldcatalog TYPE lvc_t_fcat .
CALL FUNCTION 'LVC_FIELDCATALOG_MERGE'
EXPORTING
i_structure_name = 'SFLIGHT'
CHANGING
ct_fieldcat = it_fieldcatalog.
FIELD-SYMBOLS: <st_fieldcatalog> LIKE LINE OF it_fieldcatalog .
LOOP AT it_fieldcatalog ASSIGNING <st_fieldcatalog> .
CASE <st_fieldcatalog>-fieldname .
WHEN 'SEATSOCC' .
<st_fieldcatalog>-hotspot = abap_false.
<st_fieldcatalog>-edit = abap_true.
ENDCASE.
ENDLOOP .
SELECT * FROM sflight INTO TABLE gt_outtab UP TO g_max ROWS.
CALL METHOD g_grid->set_table_for_first_display
EXPORTING
is_layout = gs_layout
CHANGING
it_fieldcatalog = it_fieldcatalog
it_outtab = gt_outtab.
* This is to simulate a condition that is known at PBO
DATA: condition TYPE abap_bool .
IF condition EQ abap_false .
CALL METHOD g_grid->set_ready_for_input
EXPORTING
i_ready_for_input = 0.
ELSE .
CALL METHOD g_grid->set_ready_for_input
EXPORTING
i_ready_for_input = 1.
ENDIF.
ENDIF .
ENDMODULE. "pbo OUTPUT
Regards.