viernes, 15 de octubre de 2010

Cambiar dinámicamente el título de un report.


Me he encontrado con la situación de tener que realizar dos listados con un gran número de columnas en común. Al final la solución ha sido hacer un único programa que es llamado por 2 transacciones diferentes. El pequeño problema, es que cada listado tenía que tener un título diferente.
Solución: tanto en el evento INITIALIZATION como en START-OF-SELECTION he modificado el sy-title. Lo he hecho en ambos eventos, porque si lo hacía solo en el primero al mostrar el listado volvía a ver el titulo de se pone en Pasar A->Atributos.

El código:
* ----------------------------------------------
INITIALIZATION.
* ----------------------------------------------
* Ponemos títulos según transacción.
PERFORM f_title_set.


* ----------------------------------------------
START-OF-SELECTION.

* Ponemos títulos según transacción.
PERFORM f_title_set.


Y la subrutina que lo acaba haciendo:

FORM f_title_set.
*
 CASE sy-tcode.
  WHEN 'ZTRANS1'.
   sy-title = text-t01.
  WHEN 'ZTRANS2'.
   sy-title = text-t02.
  WHEN OTHERS.
   sy-title = text-t00.
 ENDCASE.
*
ENDFORM.
* ----------------------------------------------

2 comentarios: