如何在 ALV 显示中放置列名
How to put column name in ALV Display
我有这样的定义:
TYPES: BEGIN OF ty_workarea,
data1 TYPE string,
data2 TYPE string,
data3 TYPE string,
END OF ty_workarea.
DATA gt_data TYPE TABLE OF ty_workarea.
当我在 ALV (cl_salv_table) 中输出 (gt_data) 时,字段 (data1, data2, data3) 没有任何列名。我怎样才能为他们命名?
而且由于它们的列名是空的,我无法做到这一点:
lo_columns = go_alv->get_columns( ).
lo_column = lo_columns->get_column( 'CURRENT_NAME' ).
lo_column->set_long_text( 'NEW_NAME' ).
列名默认取自字典。您可以尝试使用 Sap 元素,或者如果您想要自定义标题,您可以定义自己的数据元素。
例如,使用类型 MATNR 而不是 DataX 的 STRING 并且将显示该列的标题。
get_column
方法需要它代表的字段名称,而不是当前标题文本。所以
lo_column = lo_columns->get_column( 'DATA1' ).
应该可以找到您想要的专栏。
或者,class CL_SALV_COLUMNS_TABLE
(lo_columns
object 后面的方法)也有一个方法 get
returns内部 table 以及所有列的名称和对应的 CL_SALV_COLUMN
object。这在您不知道要修改的列的名称的上下文中很有用。
我有这样的定义:
TYPES: BEGIN OF ty_workarea,
data1 TYPE string,
data2 TYPE string,
data3 TYPE string,
END OF ty_workarea.
DATA gt_data TYPE TABLE OF ty_workarea.
当我在 ALV (cl_salv_table) 中输出 (gt_data) 时,字段 (data1, data2, data3) 没有任何列名。我怎样才能为他们命名?
而且由于它们的列名是空的,我无法做到这一点:
lo_columns = go_alv->get_columns( ).
lo_column = lo_columns->get_column( 'CURRENT_NAME' ).
lo_column->set_long_text( 'NEW_NAME' ).
列名默认取自字典。您可以尝试使用 Sap 元素,或者如果您想要自定义标题,您可以定义自己的数据元素。
例如,使用类型 MATNR 而不是 DataX 的 STRING 并且将显示该列的标题。
get_column
方法需要它代表的字段名称,而不是当前标题文本。所以
lo_column = lo_columns->get_column( 'DATA1' ).
应该可以找到您想要的专栏。
或者,class CL_SALV_COLUMNS_TABLE
(lo_columns
object 后面的方法)也有一个方法 get
returns内部 table 以及所有列的名称和对应的 CL_SALV_COLUMN
object。这在您不知道要修改的列的名称的上下文中很有用。