Включите F4 для активной области во время вставки. Возможный?

Мое требование следующее:

Я показываю записи в сетке alv (CL_GUI_ALV_GRID), где пользователь может добавлять новые.

  • У меня есть ключевое поле MATNR, которое отключено для существующих записей. Этому действительно не нужно иметь работающий значок F4 SH. У него должна быть точка доступа.

  • Когда пользователь решает добавить новую запись, я хочу разрешить F4, сделать поле точкой доступа и включить ее.

Однако оказывается, что ни объединение стилей ячеек 1-4 не работает (по-видимому, нет объединения их исходных кодов, приводящего к множественному стилю), ни fieldcat-f4available = abap_true не работает вместе с fieldcat-hotspot = abap_true.

Я должен признать, что я не часто сталкиваюсь с такими требованиями ... поэтому я спрашиваю здесь, знает ли кто-нибудь способ (предпочтительна лучшая практика).

До сих пор я устанавливал стили ячеек в зависимости от содержимого строки, а fieldcat настраивался более или менее статически.

Итак, в fieldcat настроен F4, а в стиле вкладки ячеек - MC_HOTSPOT. Однако это также запрещает ввод значений вручную. Работает только переназначение значения F4.


person icbytes    schedule 18.07.2018    source источник
comment
Позвольте мне просто подтвердить, что я никогда не видел полей с этими двумя комбинациями за 15 лет CL_GUI_ALV_GRID.   -  person Sandra Rossi    schedule 18.07.2018
comment
Почему еще вообще существует 4 варианта стиля?   -  person icbytes    schedule 18.07.2018
comment
Итак, позвольте мне сформулировать проблему: вы не можете сделать поле точкой доступа и F4 одновременно?   -  person Suncatcher    schedule 19.07.2018
comment
Это работает, если комбинировать стили ячеек и полевую кошку. Но потом перестают работать еще две вещи: 1) Ввод текста в ячейку. 2) Отключение ячейки (поскольку свойство стиля celltab уже занято стилем F4 или стилем хотспота, зависит от того, что не было установлено в поле fieldcat).   -  person icbytes    schedule 19.07.2018


Ответы (2)


У меня только что возникла эта проблема, и я подумал, что поделюсь своим решением. По-видимому, способ комбинирования стилей - это побитовые операции:

ls_style-style = cl_gui_alv_grid=>mc_style_hotspot BIT-OR 
                 cl_gui_alv_grid=>mc_style_f4 BIT-OR
                 cl_gui_alv_grid=>mc_style_enabled.

Следует создать редактируемое поле с точкой доступа и F4. Вы также должны отметить редактирование и горячую точку в каталоге полей.

person Gershon Osmolovski    schedule 20.11.2018

Мне нужно было: редактируемое поле с f4 и точкой доступа. Мои решения: я установил в ls_fcat:

hotspot = abap_true, and f4avaliable = abap_true

В стиле поля я установил:

style = cl_gui_alv_grid=>mc_style_f4 BIT-OR cl_gui_alv_grid=>mc_style_enabled

person Mike Pol    schedule 25.12.2020