В столбце CL_SALV_TABLE нет значений домена. Почему?

У меня есть 2 строки, показанные в списке ALV, в одном из этих столбцов есть значения домена.

введите здесь описание изображения

Если я нажму на справку по поиску, он вообще не покажет никаких значений.

Нужно ли мне что-то активировать в классе, чтобы увидеть значения любого домена?


person Ivan Diaz Salas    schedule 02.06.2017    source источник
comment
Вероятно, это потому, что это поле вообще не помогает при поиске. Проверьте структуру строки таблицы для этого ALV.   -  person Jagger    schedule 03.06.2017
comment
Да. Нет. Может быть. Покажите нам код (и структуру)...   -  person vwegert    schedule 03.06.2017
comment
Вы создаете каталог полей вручную или с помощью FM? Из какой структуры?   -  person Suncatcher    schedule 03.06.2017
comment
Это не полевой каталог. это просто внутренняя таблица.   -  person Ivan Diaz Salas    schedule 05.06.2017


Ответы (1)


Справка по автоматическому поиску (то есть значения домена) будет показана только при создании ALV через структуру Dictionary, и поэтому это невозможно с cl_salv_table, потому что он принимает только внутреннюю таблицу. Однако у него есть специальный метод set_ddic_reference для присвоения значений F4.

DATA: lr_column   TYPE REF TO cl_salv_column_table,
       lr_columns TYPE REF TO cl_salv_columns_table.
DATA: ls_ddic type salv_s_ddic_reference.
lr_columns = o_alv->get_columns( ).
lr_column ?= lr_columns->get_column( columnname = 'MANDT' ).
ls_ddic-table = 'T001'.
ls_ddic-field = 'MANDT'.
lr_column->set_ddic_reference( ls_ddic ).
lr_column->set_f4( abap_true ).

Этот код следует вызывать после конструктора фабрики и перед методом display().

person Suncatcher    schedule 08.07.2017
comment
Помощь в поиске под названием H_T000. Код транзакции SE11: T001, Поле: MANDT, Вкладка: Справка по вводу, Справка по поиску: H_T000. - person itsergiu; 30.03.2020
comment
Почитайте API, он принимает не имя поисковой справки, а имя поля. И попробуйте код, прежде чем публиковать комментарии - person Suncatcher; 30.03.2020