Hi Experts,
I have following situation:
I build my ALV/Fieldcatalog as following:
IF rf_custom_container ISNOTBOUND.
CREATE OBJECT rf_custom_container
EXPORTING
container_name ='CUSTCONTROL'.
CREATE OBJECT rf_alv
EXPORTING
i_parent = rf_custom_container.
"Feldkatalog aufbauen
CLEAR st_fieldcat.
st_fieldcat-fieldname ='MATNR'.
st_fieldcat-HOTSPOT = abap_true.
st_fieldcat-outputlen = 18.
APPEND st_fieldcat TO ta_fieldcat.
st_fieldcat-fieldname ='MTEXT'.
st_fieldcat-HOTSPOT = abap_true.
st_fieldcat-outputlen = 48.
APPEND st_fieldcat TO ta_fieldcat.
st_fieldcat-fieldname ='KWMENG'.
st_fieldcat-HOTSPOT = abap_false.
st_fieldcat-edit = abap_true.
st_fieldcat-outputlen = 15.
APPEND st_fieldcat TO ta_fieldcat.
st_fieldcat-fieldname ='VRKME'.
st_fieldcat-HOTSPOT = abap_false.
st_fieldcat-edit = abap_true.
st_fieldcat-outputlen = 3.
APPEND st_fieldcat TO ta_fieldcat.
st_layout-cwidth_opt = abap_true.
"Ereignisbehandler
CREATE OBJECT evt_handler.
SET HANDLER evt_handler->handle_toolbar FOR rf_alv.
SET HANDLER evt_handler->handle_user_commandFOR rf_alv.
SET HANDLER evt_handler->handle_event_click FOR rf_alv.
"Bereite Darstellung von ALV
CALL METHOD rf_alv->set_table_for_first_display
EXPORTING
i_structure_name ='ZWH_RESERVIERUNG'
CHANGING
it_outtab = ta_alv
it_fieldcatalog = ta_fieldcat.
rf_alv->refresh_table_display( ).
And I would like to turn some filds to be
- editable
- and not hotspot
by pressing on an button in PF-Status in this way:
WHEN'MENGE'.
CALL METHOD rf_alv->get_frontend_fieldcatalog
IMPORTING
et_fieldcatalog = ta_fieldcat[].
LOOP AT ta_fieldcat INTO st_fieldcat .
IF st_fieldcat-fieldname ='KWMENG'.
st_fieldcat-HOTSPOT = abap_true.
st_fieldcat-edit = abap_false.
MODIFY ta_fieldcat FROM st_fieldcat .
ENDIF.
IF st_fieldcat-fieldname ='VRKME'.
st_fieldcat-HOTSPOT= abap_true.
MODIFY ta_fieldcat FROM st_fieldcat.
ENDIF.
ENDLOOP.
CALL METHOD rf_alv->set_frontend_fieldcatalog
EXPORTING
it_fieldcatalog = ta_fieldcat[].
CALL METHOD rf_alv->get_frontend_layout
IMPORTING
es_layout = st_layout.
st_layout-grid_title ='Test DYU'.
CALL METHOD rf_alv->set_frontend_layout
EXPORTING
is_layout = st_layout.
"Sende gepufferten aut. queue zum Frontend
CALL METHOD cl_gui_cfw=>flush.
"Alv Grid aktualisieren
rf_alv->refresh_table_display().
"Erignisverteiler in Bezug auf ok_code
CALL METHOD cl_gui_cfw=>dispatch.
Result: No Hotspot but still no edit....even in Debugger I do have 'X' in the ta_fieldcat....
What could be a reason for this?
Thank you in advance