[英]Display only certain fields in ALV
我的表有大约 300 列,我只想显示其中的 10 列并指定哪些列。 我正在使用CL_SALV_TABLE
。
谁能帮我解决这个问题或给我提示? 非常感谢您!
您需要使用方法SET_VISIBLE
列对象(类CL_SALV_COLUMN
)。 更多信息请参见“列(常规)”页面的“设置列的可见性”一章。
这个最小的可重复的例子只显示了列SPRAS
和LAISO
从表T002
,所有其他的都隐藏:
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( ).
此代码用于隐藏表中除指定列之外的所有列。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.