0

我有这样的定义:

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' ).
4

2 回答 2

1

列名默认取自 dict。您可以尝试使用 Sap 元素,或者如果您想要自定义标题,您可以定义自己的数据元素。

例如,对 DataX 使用类型 MATNR 而不是 STRING,并且将显示该列的标题。

于 2021-09-29T06:50:54.123 回答
1

get_column方法需要它所代表的字段的名称,而不是当前的标题文本。所以

lo_column = lo_columns->get_column( 'DATA1' ).

应该给你你想要的专栏。

或者,类CL_SALV_COLUMNS_TABLE(对象后面的那个lo_columns)也有一个方法get,它返回一个内部表,其中CL_SALV_COLUMN包含所有列的名称和对应的对象。这在您不知道要修改的列的名称的上下文中很有用。

于 2021-09-29T13:15:27.417 回答