16 декабря 2020

Открыть ячейку ALV Grid на редактирование

В структуру таблицы, которая используется для вывода в ALV Grid, добавить поле с типом LVC_T_STYL. Назовем его, например, CELLTAB.

Заполнить стиль, например, в зависимости от какого-либо условия.

DATA:
  ls_celltab TYPE lvc_s_styl.

FIELD-SYMBOLS:
  <fs_data> LIKE LINE OF mt_data.

LOOP AT mt_data ASSIGNING <fs_data>.
  REFRESH <fs_data>-celltab.
  CLEAR ls_celltab.
  ls_celltab-fieldname = 'CHECKBOX'.
  IF <fs_data>-sum > 1000.
    ls_celltab-style = cl_gui_alv_grid=>mc_style_enabled. " Открыть ячейку для редактирования
  ELSE.
    ls_celltab-style = cl_gui_alv_grid=>mc_style_disabled. " Закрыть ячейку для редактирования
  ENDIF.
  INSERT ls_celltab INTO TABLE <fs_data>-celltab.
ENDLOOP.

В структуру LAYOUT ALV передать название поля, которое используется для задания стиля ячейки.

ls_layout-stylefname = 'CELLTAB'.

После вызова SET_TABLE_FOR_FIRST_DISPLAY включить режим редактирования.

CALL METHOD mo_alv->set_ready_for_input
  EXPORTING
    i_ready_for_input = 1.


Комментариев нет:

Отправить комментарий