仅显示 ALV 中的某些字段
Display only certain fields in ALV
我的 table 有大约 300 列,我只想显示其中的 10 列并指定哪些列。我正在与 CL_SALV_TABLE
.
合作
谁能帮我解决这个问题或给我提示?非常感谢您!
您需要使用 Column 对象的方法 SET_VISIBLE
(class CL_SALV_COLUMN
)。有关详细信息,请参阅 chapter "Set the Visibility of the Column" of page "Columns (General)".
此最小可重现示例仅显示 table T002
中的 SPRAS
和 LAISO
列,所有其他列均已隐藏:
DATA: t002_lines TYPE TABLE OF t002,
salv TYPE REF TO cl_salv_table,
columns TYPE salv_t_column_ref.
FIELD-SYMBOLS <column> TYPE salv_s_column_ref.
SELECT * FROM t002 INTO TABLE t002_lines.
CALL METHOD cl_salv_table=>factory
IMPORTING
r_salv_table = salv
CHANGING
t_table = t002_lines.
LOOP AT salv->get_columns( )->get( ) ASSIGNING <column>.
CASE <column>-columnname.
WHEN 'SPRAS' OR 'LAISO'.
<column>-r_column->set_visible( if_salv_c_bool_sap=>true ).
WHEN OTHERS.
<column>-r_column->set_visible( if_salv_c_bool_sap=>false ).
ENDCASE.
ENDLOOP.
salv->display( ).
我的 table 有大约 300 列,我只想显示其中的 10 列并指定哪些列。我正在与 CL_SALV_TABLE
.
谁能帮我解决这个问题或给我提示?非常感谢您!
您需要使用 Column 对象的方法 SET_VISIBLE
(class CL_SALV_COLUMN
)。有关详细信息,请参阅 chapter "Set the Visibility of the Column" of page "Columns (General)".
此最小可重现示例仅显示 table T002
中的 SPRAS
和 LAISO
列,所有其他列均已隐藏:
DATA: t002_lines TYPE TABLE OF t002,
salv TYPE REF TO cl_salv_table,
columns TYPE salv_t_column_ref.
FIELD-SYMBOLS <column> TYPE salv_s_column_ref.
SELECT * FROM t002 INTO TABLE t002_lines.
CALL METHOD cl_salv_table=>factory
IMPORTING
r_salv_table = salv
CHANGING
t_table = t002_lines.
LOOP AT salv->get_columns( )->get( ) ASSIGNING <column>.
CASE <column>-columnname.
WHEN 'SPRAS' OR 'LAISO'.
<column>-r_column->set_visible( if_salv_c_bool_sap=>true ).
WHEN OTHERS.
<column>-r_column->set_visible( if_salv_c_bool_sap=>false ).
ENDCASE.
ENDLOOP.
salv->display( ).