Cambiar el Titulo de un reporte (CL_SALV_TABLE)

Buen dia estimados @abapers

Estoy haciendo un ALV usando la clase CL_SALV_TABLE que recomendaron por aqui en un tutorial. [quote=“borja87, post:7, topic:6093”]
Prueba con la clase cl_salv_table
[/quote]

El reporte lo estoy haciendo en un Z que estaba vacio y abandonado por ahi… y la descripcion solo dice T, y este es el titulo que aparece en el reporte.

Dentro de la subrutina que asigna el nombre del titulo, Inocentemente cambie el SY-REPID por texto y NO FUNCIONO!! :weary:
Se solucionaria cambiando la descripcion del Programa, pero me gustaria saber como enviar el nombre del reporte mediante la clase. ¿Alguien podria echarme una mano?

*&---------------------------------------------------------------------*
FORM ENABLE_LAYOUT_SETTINGS.
*&---------------------------------------------------------------------*
  DATA LAYOUT_SETTINGS TYPE REF TO CL_SALV_LAYOUT.
  DATA LAYOUT_KEY TYPE SALV_S_LAYOUT_KEY.

  LAYOUT_SETTINGS = ALV->GET_LAYOUT( ).

***  LAYOUT_KEY-REPORT = SY-REPID. 'Nombre del Reporte   DS 10.11.2016 Original Code
  LAYOUT_KEY-REPORT = 'Inventario PT con Caducidad'. "Nombre del Reporte
  LAYOUT_SETTINGS->SET_KEY( LAYOUT_KEY ).

  LAYOUT_SETTINGS->SET_SAVE_RESTRICTION( IF_SALV_C_LAYOUT=>RESTRICT_NONE ).
ENDFORM.

Gracias, Saludos!!

1 me gusta

No lo he probado pero entiendo que debería servirte esto:

  CALL METHOD gr_table->set_screen_status(
    EXPORTING
      report        = repid
      pfstatus      = 'SALV_STANDARD'
      set_functions = gr_table->c_functions_all ).
1 me gusta

Hola,

No probaste cambiando el valor de SY-TITLE?

Saludos

Si lo que quieres es cambiar desde el programa el titulo de tu reporte o programa lo haces como dice @sconoredhot,

SY-TITLE = 'TITULO QUE QUIERAS'.
2 Me gusta

A mi me funciona de la siguiente manera, declaras una variable de este tipo:

DATA: lr_top_element TYPE REF TO cl_salv_form_layout_grid.

Creas el objeto:

CREATE OBJECT lr_top_element
EXPORTING
columns = 5. "Numero de columnas en el encabezado

Despues:

lr_top_element->create_header_information(
row = 1 column = 1 text = lv_title ).

Donde lv_title es el texto del titulo del reporte que desees agregar

y por ultimo, se lo pasas al objeto de tu alv.

gr_table->set_top_of_list( lr_top_element ).

Probe todas las soluciones y todas funcionaron, sin embargo, la que propuso @sconoredhot creo que es la mas facil :sweat_smile:.

Gracias a todos por sus aportes y apoyo!! :grinning:

2 Me gusta

Siguiendo con el uso de la clase CL_SALV_TABLE, la manera de asignar el Titulo seria la siguiente:

*&---------------------------------------------------------------------*
FORM DISPLAY_SETTINGS.
*&---------------------------------------------------------------------*
  DATA DISPLAY_SETTINGS TYPE REF TO CL_SALV_DISPLAY_SETTINGS.

  DISPLAY_SETTINGS = ALV->GET_DISPLAY_SETTINGS( ).
  DISPLAY_SETTINGS->SET_LIST_HEADER( 'Titulo del Reporte' ).
ENDFORM.

Saludos!!

2 Me gusta

Este tema se cerró automáticamente 7 días después del último post. No se permiten nuevas respuestas.