ALV Grid блокирует определенные строки

Я использую CL_GUI_ALV_GRID класс для отображения таблицы. Я хотел бы иметь возможность редактировать таблицу (добавляя новые строки и удаляя все строки), но я не хочу, чтобы существующие строки были редактируемыми. Это означает:

У меня есть 5 записей для отображения, и я хотел бы иметь возможность удалять и добавлять новые записи, но я не хочу, чтобы пользователь редактировал 5 существующих записей (я бы хотел, чтобы он мог их удалить).

Это возможно?

1 ответ

Решение

По умолчанию при вызове функционального модуля "LVC_FIELDCATALOG_MERGE" для создания каталога полей для CL_GUI_ALV_GRID ячейки не редактируются.

Вы должны установить, какой столбец будет редактироваться, установив атрибут 'edit' следующим образом:

...
data: it_fieldcat type lvc_t_fcat,
      wa_fieldcat like line of it_fieldcat.

call function 'LVC_FIELDCATALOG_MERGE'
  EXPORTING
    i_structure_name = 'ZSTRUCT'
  CHANGING
    ct_fieldcat      = it_fieldcat.

loop at it_fieldcat into wa_fieldcat.
  wa_fieldcat-edit = 'X'. " ---->Here is set the editable column
  modify it_fieldcat from wa_fieldcat.
endloop.

Если вы не хотите, чтобы ячейки редактировались, не устанавливайте этот атрибут.

Но для лучшей справки проверьте программы 'BCALV_EDIT_03' и 'BCALV_EDIT_04' для полных примеров.

Надеюсь, поможет.

Другие вопросы по тегам