2015-09-08 11 views
1

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

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

Возможно ли это?

ответ

2

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

Вы должны установить, какой столбец будет редактироваться установив «изменить» атрибут, как это:

... 
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» для полных примеров.

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

enter image description here

+0

Я уже знаю, что вопрос в том, как я могу «зафиксировать» существующие строки. Например, посмотрите на вкладку роли транзакции su01. Вы не можете редактировать уже применяемые роли. Вы можете просто удалить их. –

+0

@thefiloe Ну, тогда ваш вопрос не очень ясен, потому что транзакция «SU01» не использует CL_GUI_ALV_GRID ». С другой стороны, если вы проверяете программу «SAPLSUU5» especifically dynpro '103', существует традиционная схема управления таблицей, где необходимо управлять данными через таблицу. Я не сделал такого решения, но вот ссылка, которая может помочь вам http://help.sap.com/saphelp_470/helpdata/en/9f/dbac5e35c111d1829f0000e829fbfe/content.htm. Если вы сохраняете CL_GUI_ALV_GRID, тогда лучше всего использовать программу «BCALV_EDIT_04». Надеюсь, поможет. –