Sei sulla pagina 1di 3

Encabezado (Header) completo para

reporte ALV
Voy a explicar los pasos a seguir para incorporar un encabezado/header en un reporte ALV. Es
decir, tener una imgen de fondo, un logo y texto.
Hay dos imgenes en mi ejemplo:
1_ logo (ENJOYSAP_LOGO)
2_ background (ALV_BACKGROUND)
Cada uno puede elegir las imgenes que quiera, pero siempre y cuando estn subidas en
la transaccin OAER

* Variables y estructuras para ALV
TYPE-POOLS: SLIS.
DATA:
LV_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,
LV_REPID TYPE SY-REPID,
T_EVENTS TYPE SLIS_T_EVENT, Eventos.
GT_HEADER TYPE SLIS_T_LISTHEADER, Tabla con el Ttulo y el Logo
WA_HEADER TYPE SLIS_LISTHEADER. Work Area con el Ttulo
DATA: BEGIN OF IT_TABLE OCCURS 0,
VALOR TYPE STRING,
END OF IT_TABLE.
* Agregar el programa para el callback
LV_REPID = SY-REPID.

*&*
*& Ac en el medio llenamos la tabla interna IT_TABLE
*& para mostrar en el AVL
*&*

*Llamo al ALV
PERFORM FILL_EVENT USING T_EVENTS.
PERFORM CARGAR_FIELDCAT TABLES LV_FIELDCAT.
PERFORM INIT_HEADER.
CALL FUNCTION REUSE_ALV_GRID_DISPLAY
EXPORTING
I_CALLBACK_PROGRAM = LV_REPID
I_CALLBACK_TOP_OF_PAGE = TOP_OF_PAGE llama al form
I_BACKGROUND_ID = ALV_BACKGROUND imagen de fondo
IT_FIELDCAT = LV_FIELDCAT
IT_EVENTS = T_EVENTS
TABLES
T_OUTTAB = IT_TABLE.

*&*
*& Form cargar_fieldcat
*&*
FORM CARGAR_FIELDCAT TABLES LV_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV.
DATA: LV_POSICION TYPE I.
CLEAR LV_FIELDCAT.
REFRESH LV_FIELDCAT.
ADD 1 TO LV_POSICION.
LV_FIELDCAT-COL_POS = LV_POSICION.
LV_FIELDCAT-FIELDNAME = VALOR.
LV_FIELDCAT-JUST = C.
LV_FIELDCAT-DDICTXT = L.
LV_FIELDCAT-TABNAME = IT_TABLE.
LV_FIELDCAT-SELTEXT_M = Valor.
LV_FIELDCAT-SELTEXT_L = Valor.
APPEND LV_FIELDCAT.
CLEAR LV_FIELDCAT.
ENDFORM. CATALOG

*&*
*& Form fill_event
*&*
FORM FILL_EVENT USING P_T_EVENTS TYPE SLIS_T_EVENT.
DATA: LS_EVENT TYPE SLIS_ALV_EVENT.
* Toma los eventos
CALL FUNCTION REUSE_ALV_EVENTS_GET
EXPORTING
I_LIST_TYPE = 0
IMPORTING
ET_EVENTS = P_T_EVENTS.
* Selecciono el evento TOP_OF_PAGE y le seteo el FORM a ejecutar
CLEAR LS_EVENT.
READ TABLE P_T_EVENTS WITH KEY NAME = SLIS_EV_TOP_OF_PAGE
INTO LS_EVENT.
IF SY-SUBRC = 0.
MOVE TOP_OF_PAGE TO LS_EVENT-FORM.
APPEND LS_EVENT TO P_T_EVENTS.
ENDIF.
ENDFORM. FILL_EVENT

*-*
* Carga el ttulo y subttulo del reporte
*-*
FORM INIT_HEADER.
DATA: WA_HEADER TYPE SLIS_LISTHEADER.
* Cargo el Ttulo
WA_HEADER-TYP = H.
WA_HEADER-INFO = Ttulo en Maysculas.
APPEND WA_HEADER TO GT_HEADER.
* Cargo el Subttulo
CLEAR WA_HEADER.
WA_HEADER-TYP = A.
WA_HEADER-INFO = Texto para un subttulo..
APPEND WA_HEADER TO GT_HEADER.
ENDFORM. init_header

*&*
*& Form top_of_page
*&*
FORM TOP_OF_PAGE .
* Pasa a la cabecera el logo
CALL FUNCTION REUSE_ALV_COMMENTARY_WRITE
EXPORTING
I_LOGO = ENJOYSAP_LOGO Logo
IT_LIST_COMMENTARY = GT_HEADER.
ENDFORM. TOP_OF_PAGE

Potrebbero piacerti anche