Если в ALV необходимо редактировать отдельные ячейки, а не весь столбец уже мало просто отметить возможность редактирования в каталоге полей.
Для возможностью управлять свойствами полей необходимо добавить в структуру каталога полей еще одно поле для хранения настроек для ячеек. А после указать это поле как настроечное при создании alv grid.
Далее прописываем поле в структуре формата:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
" DATA ls_layout TYPE lvc_s_layo. ls_layout-stylefname = 'CELLTAB'. * Вывод таблицы CALL METHOD lo_grid1->set_table_for_first_display EXPORTING is_layout = ls_layout * is_print = ls_print is_variant = ls_variant * i_default = lc_default i_save = 'A' "lc_save it_toolbar_excluding = ltd_toolbar CHANGING it_fieldcatalog = lt_fieldcat[] it_outtab = gtd_table_alv it_sort = lt_sort. |
При необходимости наполняем табличку настройками полей для текущей строки.
Пример:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
cs_line-celltab = VALUE #( style = cl_gui_alv_grid=>mc_style_enabled ( fieldname = 'ZZ_REAS' ) ( fieldname = 'ZZ_COM' ) ( fieldname = 'ZZ_STAT' ) ( fieldname = 'ZZ_RETRO' ) ( fieldname = 'ZZ_REAS_DISC' ) ( fieldname = 'ZZ_REAS_COMM' ) ( fieldname = 'ZZ_URP' ) ( fieldname = 'ZZ_OK' ) ( fieldname = 'ZZ_INFTY1' ) ( fieldname = 'ZZ_INFTY2' ) ( fieldname = 'ZZ_INFTY3' ) ( fieldname = 'ZZ_INFTY4' ) ( fieldname = 'ZZ_INFTY5' ) style = cl_gui_alv_grid=>mc_style_disabled ( fieldname = 'ZZ_INIT' ) ( fieldname = 'ZZ_SOGL_URP' ) ( fieldname = 'ZZ_SOGL_OK' ) ) . |