CL_SALV_TABLE 列中没有域值。为什么?

No domain values in CL_SALV_TABLE column. Why?

我在 ALV 列表中显示了 2 行,其中一列具有域值。

如果我点击右侧的搜索帮助,它根本不显示任何值。

我是否必须在 class 中激活某些内容才能查看任何域的值?

当通过字典结构创建 ALV 时, 会显示自动搜索帮助(又名域值),这就是为什么 cl_salv_table 不可能的原因,因为它接受仅内部 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() 方法之前调用。