Добрый день.
Задача казалась очень простой, нужно при определенных условиях открывать поле столбца ISPOL на редактирование. Пробую это делать через свойство -edit соответствующего поля. Не работает.
Попробовал через -style нет ничего.
Ниже приведен код прикрученный к методу на изменение значения поля.
Code:
METHOD handle_data_changed_finished.
"===ns 8000064381
DATA tmp_ztrm_card TYPE TABLE OF ztrm_card.
DATA s_good LIKE LINE OF et_good_cells.
FIELD-SYMBOLS: <tzc> LIKE LINE OF tmp_ztrm_card.
FIELD-SYMBOLS: <gs> LIKE LINE OF gs_100-t_res.
FIELD-SYMBOLS: <fc> LIKE LINE OF gs_100-fieldcat.
IF LINES( et_good_cells ) = 1.
LOOP AT et_good_cells INTO s_good.
IF s_good-fieldname = 'DOGNUM'.
READ TABLE gs_100-t_res ASSIGNING <gs> INDEX s_good-row_id.
SELECT * INTO CORRESPONDING FIELDS OF TABLE tmp_ztrm_card
FROM ztrm_card
WHERE dog_int_num = s_good-value.
LOOP AT tmp_ztrm_card ASSIGNING <tzc>.
IF <tzc>-dog_type = 'DS3' OR <tzc>-dog_type = 'D03'.
<gs>-kontr = <tzc>-lifnr.
<gs>-ispol = ''.
LOOP AT gs_100-fieldcat ASSIGNING <fc>
WHERE fieldname = 'ISPOL'.
<fc>-edit = 'X'.
<fc>-style = cl_gui_alv_grid=>mc_style_enabled.
ENDLOOP.
ELSE.
<gs>-kontr = <gs>-ispol = <tzc>-lifnr.
ENDIF.
ENDLOOP.
ENDIF.
ENDLOOP.
ENDIF.
gs_100-grid->register_edit_event( i_event_id = cl_gui_alv_grid=>mc_evt_modified ).
gs_100-grid->register_edit_event( i_event_id = cl_gui_alv_grid=>mc_evt_enter ).
gs_100-grid->refresh_table_display( ).
ENDMETHOD. "handle_data_changed_finished
Что делать?