添加/更改内部表 ALV 上的列名称

And*_*mes 5 abap alv

我需要的是向这两列添加标题(以黄色突出显示),但我不知道该怎么做。

\n

没有标题的栏目

\n
FORM display_alv. \n    DATA: gr_functions TYPE REF TO cl_salv_functions.\n    DATA: gr_display TYPE REF TO cl_salv_display_settings.    \n    DATA: gr_columns TYPE REF TO cl_salv_columns_table.    \n    DATA: gr_column TYPE REF TO cl_salv_column_table.    \n    DATA: gr_sorts TYPE REF TO cl_salv_sorts.    \n    DATA: gr_agg TYPE REF TO cl_salv_aggregations.    \n    DATA: gr_selections TYPE REF TO cl_salv_selections.\n    \n    gr_functions = alv->get_functions( ).    \n    gr_functions->set_all( abap_true ).\n    \n    gr_display = alv->get_display_settings( ).    \n    gr_display->set_striped_pattern( cl_salv_display_settings=>true ).    \n    gr_display->set_list_header( \'Relat\xc3\xb3rio RVs\' ).\n    \n    gr_columns = alv->get_columns( ).    \n    gr_columns->set_optimize( \'X\' ).    \n    gr_columns = alv->get_columns( ).\n    \n    gr_column ?= gr_columns->get_column( \'revenue\' ).    \n    gr_column->set_short_text( \'Revenue\' ).    \n    gr_column->set_medium_text( \'Revenue\' ).\n    \n    alv->display( ).\nENDFORM.\n
Run Code Online (Sandbox Code Playgroud)\n

gku*_*bed 6

其中一些 ALV 方法的语法非常挑剔。我很确定您的代码是正确的,但revenue需要全部大写。请参阅下面的示例:

alv->get_columns( )->get_column( 'REVENUE' )->set_short_text( 'Revenue' ) ##NO_TEXT.
alv->get_columns( )->get_column( 'REVENUE' )->set_medium_text( 'Revenue' ) ##NO_TEXT.
alv->get_columns( )->get_column( 'REVENUE' )->set_long_text( 'Revenue' ) ##NO_TEXT.
Run Code Online (Sandbox Code Playgroud)

  • 一般来说(或者根据我的经验,99%的情况)如果您在任何参数中使用 DDIC 元素名称/字段名称/程序名称/等,则必须使用大写,因为它是以这种方式存储在数据库中的,而不是每个 API在访问之前转换它们。消除这些类型错误的最佳方法是使用大写。 (2认同)