您好:
我有一张透明的桌子。
我查询了从此表中检索数据
我使用CL_SALV_TABLE来显示结果
我更改了自定义列名称
有效。
这是代码:
REPORT Z_AG_VALIDAR_POLIZA.
* declara una estructura
TYPES: BEGIN OF structure_molde_ordenes,
MSEHL TYPE MSEHL,
MSEHI TYPE MSEHI,
SPRAS TYPE SPRAS,
END OF structure_molde_ordenes.
* define una estructura
DATA:
mi_estructura TYPE structure_molde_ordenes,
"crea la estructura real
mi_tabla TYPE STANDARD TABLE OF structure_molde_ordenes,
" crea una internal table a partir de la estructura
go_alv TYPE REF TO CL_SALV_TABLE,
" crea el objeto de la clase CL_SALV_TABLE
columns TYPE REF TO cl_salv_columns_table,
" crea el objeto de la clase cl_salv_columns_table
column TYPE REF TO cl_salv_column.
" crea el objeto de la clase cl_salv_column
" * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
" tras declarar variables comienza la fiesta
" * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
START-OF-SELECTION.
PERFORM fx_obtener_datos.
" hace el query
PERFORM initialize_alv.
PERFORM display_alv.
" * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
" function para hacer el query
" * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
FORM fx_obtener_datos.
SELECT
" recupera los recibos para un cliente
MSEHL
MSEHI
SPRAS
FROM
T006A
INTO CORRESPONDING FIELDS OF TABLE
mi_tabla.
ENDFORM.
" * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
" function para inicia la clase para presentar el reporte
" * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
FORM initialize_alv.
DATA message TYPE REF TO cx_salv_msg.
"crea el objeto de la clase cx_salv_msg
TRY.
cl_salv_table=>factory(
IMPORTING
r_salv_table = go_alv
CHANGING
t_table = mi_tabla ).
columns = go_alv->get_columns( ).
"ejecuta el metodo de la clase
PERFORM enable_layout_settings.
PERFORM optimize_column_width.
PERFORM change_column_name.
CATCH cx_salv_msg INTO message.
" error handling
ENDTRY.
ENDFORM.
" * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
" muestra el alv
" * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
FORM display_alv.
go_alv->display( ).
ENDFORM.
" * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
" layout setting
" * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
FORM enable_layout_settings.
DATA layout_settings TYPE REF TO cl_salv_layout.
DATA layout_key TYPE salv_s_layout_key.
layout_settings = go_alv->get_layout( ).
layout_key-report = sy-repid.
layout_settings->set_key( layout_key ).
layout_settings->set_save_restriction( if_salv_c_layout=>restrict_none ).
ENDFORM.
" * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
" optimize_column_width
" * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
FORM optimize_column_width.
columns->set_optimize( ).
ENDFORM.
" * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
" change column name
" * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
FORM change_column_name.
" cambia el nombre a una columna...
DATA not_found TYPE REF TO cx_salv_not_found.
TRY.
column = columns->get_column( 'MSEHL' ).
column->set_short_text( 'Desc' ).
column->set_medium_text( 'Descripcion' ).
column->set_long_text( 'Descripcion' ).
column = columns->get_column( 'MSEHI' ).
column->set_short_text( 'Unidad' ).
column->set_medium_text( 'Unidad' ).
column->set_long_text( 'Unidad' ).
column = columns->get_column( 'SPRAS' ).
column->set_short_text( 'Idioma' ).
column->set_medium_text( 'Idioma' ).
column->set_long_text( 'Idioma' ).
CATCH cx_salv_not_found INTO not_found.
" error handling
ENDTRY.
ENDFORM.
但如果我
更改结构中字段的名称
更改内部表格中的名称
在查询中使用AS
它停止工作....
我无法在ALV中更改COLUMN NAME
这是我的代码
REPORT Z_AG_VALIDAR_POLIZA.
* declara una estructura
TYPES: BEGIN OF structure_molde_ordenes,
mi_desc TYPE MSEHL,
mi_uni TYPE MSEHI,
mi_idio TYPE SPRAS,
END OF structure_molde_ordenes.
* define una estructura
DATA:
mi_estructura TYPE structure_molde_ordenes,
"crea la estructura real
mi_tabla TYPE STANDARD TABLE OF structure_molde_ordenes,
" crea una internal table a partir de la estructura
go_alv TYPE REF TO CL_SALV_TABLE,
" crea el objeto de la clase CL_SALV_TABLE
columns TYPE REF TO cl_salv_columns_table,
" crea el objeto de la clase cl_salv_columns_table
column TYPE REF TO cl_salv_column.
" crea el objeto de la clase cl_salv_column
" * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
" tras declarar variables comienza la fiesta
" * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
START-OF-SELECTION.
PERFORM fx_obtener_datos.
" hace el query
PERFORM initialize_alv.
PERFORM display_alv.
" * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
" function para hacer el query
" * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
FORM fx_obtener_datos.
SELECT
" recupera los recibos para un cliente
MSEHL AS mi_desc
MSEHI AS mi_uni
SPRAS AS mi_idio
FROM
T006A
INTO CORRESPONDING FIELDS OF TABLE
mi_tabla.
ENDFORM.
" * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
" function para inicia la clase para presentar el reporte
" * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
FORM initialize_alv.
DATA message TYPE REF TO cx_salv_msg.
"crea el objeto de la clase cx_salv_msg
TRY.
cl_salv_table=>factory(
IMPORTING
r_salv_table = go_alv
CHANGING
t_table = mi_tabla ).
columns = go_alv->get_columns( ).
"ejecuta el metodo de la clase
PERFORM enable_layout_settings.
PERFORM optimize_column_width.
PERFORM change_column_name.
CATCH cx_salv_msg INTO message.
" error handling
ENDTRY.
ENDFORM.
" * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
" muestra el alv
" * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
FORM display_alv.
go_alv->display( ).
ENDFORM.
" * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
" layout setting
" * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
FORM enable_layout_settings.
DATA layout_settings TYPE REF TO cl_salv_layout.
DATA layout_key TYPE salv_s_layout_key.
layout_settings = go_alv->get_layout( ).
layout_key-report = sy-repid.
layout_settings->set_key( layout_key ).
layout_settings->set_save_restriction( if_salv_c_layout=>restrict_none ).
ENDFORM.
" * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
" optimize_column_width
" * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
FORM optimize_column_width.
columns->set_optimize( ).
ENDFORM.
" * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
" change column name
" * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
FORM change_column_name.
" cambia el nombre a una columna...
DATA not_found TYPE REF TO cx_salv_not_found.
TRY.
column = columns->get_column( 'MSEHL' ).
" DOES NOT WORK
column->set_short_text( 'Desc' ).
column->set_medium_text( 'Descripcion' ).
column->set_long_text( 'Descripcion' ).
column = columns->get_column( 'mi_uni' ).
"DOES NOT WORK
column->set_short_text( 'Unidad' ).
column->set_medium_text( 'Unidad' ).
column->set_long_text( 'Unidad' ).
column = columns->get_column( 'SPRAS' ).
column->set_short_text( 'Idioma' ).
column->set_medium_text( 'Idioma' ).
column->set_long_text( 'Idioma' ).
CATCH cx_salv_not_found INTO not_found.
" error handling
ENDTRY.
ENDFORM.
我怎么能
更改结构中字段的名称
更改内部表格中的名称
在查询中使用AS
和
更改ALV中的栏目名称
提前告诉你