MUNDOSAP

MUNDOSAP (foro/index.php)
-   Programación ABAP IV (foro/forumdisplay.php?f=4)
-   -   Duda al imprimir un ALV (foro/showthread.php?t=28684)

Alatz 09/03/09 11:02:06

Duda al imprimir un ALV
 
Hola,

Tengo una duda sobre la impresión de un ALV. Resulta que a la hora de imprimir, no me imprime la parte del "top_of_page", es decir, la parte en la que tengo puesto un fondo con su respectivo logo y algun que otro dato (como la ubicación o el mensaje que indica que no se ha introducido ninguna ubicación).
¿Que hay que hacer para que se imprima tambien esa parte del ALV?

Aparte, tambien quisiera sacar el nombre del usuario, la fecha y la hora en esa cabecera.
¿Existe alguna forma de hacerlo?

Espero que alguien pueda ayudarme.
Gracias.

PabloGP 09/03/09 15:42:22

Buenas,

para imprimir la hora, el usuario y la fecha en el formulario podrias hacer lo siguiente:

Defines:

data cabecera type SLIS_T_LISTHEADER.

data wa_cabecera like LINE OF cabecera.


FORM CREA_CABECERA .

wa_cabecera-typ = 'S'.
wa_cabecera-key = 'Usuario: '.
wa_cabecera-info = sy-uname.
APPEND wa_cabecera to cabecera.

wa_cabecera-typ = 'S'.
wa_cabecera-key = 'Fecha: '.
data: fecha_formateada(10).
write sy-datum to fecha_formateada USING EDIT MASK '__/__/____'.
wa_cabecera-info = fecha_formateada.
APPEND wa_cabecera to cabecera.

wa_cabecera-typ = 'S'.
wa_cabecera-key = 'Hora: '.
wa_cabecera-info = sy-uzeit.
APPEND wa_cabecera to cabecera.


ENDFORM.

Te saldrá como resultado en la cabecera lo siguiente:

-------------------------------
Usuario: NOMBRE_USUARIO
Fecha: 09/03/2009
Hora: 17:41:23
-------------------------------

Espero que te ayude...

Alatz 10/03/09 08:58:01

Disculpa pero...después donde se supone que debo usar la variable "cabecera"?
Pensaba que habría que pasarsela al parámetro de I_CALLBACK_TOP_OF_PAGE que está en la función REUSE_ALV_GRID_DISPLAY...pero no me visualiza nada.

¿Podrías decirme donde usarla?

Gracia de todas formas por la ayuda...creo que por aquí van los tiros.

francesc 10/03/09 09:05:51

Añade este form:

*&-------------------------------------------------------------------*
*& Form TOP_OF_PAGE
*&-------------------------------------------------------------------*
*& Función que escribe el contenido de una tabla tipo slis_t_header
*&-------------------------------------------------------------------*
FORM top_of_page.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
it_list_commentary = cabecera.
ENDFORM.

PabloGP 10/03/09 11:26:10

Prueba añadiende esto:

PERFORM asocia_eventos.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
IT_EVENTS = t_eventos



FORM ASOCIA_EVENTOS .

DATA wa LIKE LINE OF t_eventos.

CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
IMPORTING
ET_EVENTS = t_eventos
EXCEPTIONS
LIST_TYPE_WRONG = 1
OTHERS = 2.

IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.

READ TABLE t_eventos INTO wa
with key name = 'TOP_OF_PAGE'.
wa-form = 'TOP_OF_PAGE_F'.
modify t_eventos FROM wa index sy-tabix.

* (asocia al evento TOP_OF_PAGE la subrutina TOP_OF_PAGE_F)


ENDFORM. " ASOCIA_EVENTOS


FORM TOP_OF_PAGE_F.

CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
IT_LIST_COMMENTARY = cabecera.

ENDFORM.


Espero que te sirva...

Alatz 10/03/09 11:49:04

perdona pero.....como esta declarado t_eventos?

Alatz 10/03/09 13:43:54

Supongo que sera así:

DATA T_EVENTOS TYPE SLIS_T_EVENT.

Cre que me voy acercando cada vez más a la solución.

:)

PabloGP 10/03/09 16:38:40

Si, es del tipo SLIS_T_EVENT.

Para saber el tipo pincha sobre el nombre de la funcion del ALV 'REUSE_ALV_GRID_DISPLAY' o la que estes usando, y en la pestaña 'import' podras ver todos los tipos de datos que usa.

Animo que ya lo tienes! :D

Alatz 11/03/09 11:06:01

Y con eso....conseguis que al imprimir en PDF os salga una cabecera con el usuario, la fecha y la hora???

Es que......al debugear, tengo en T_EVENTOS los datos de usuario, fecha y hora....pero no se si los estoy pasando a la función REUSE_ALV_GRID_DISPLAY.

Cuando ejecuto, veo una cabecera con un fondo y un logo que yo mismo he puesto....pero a la hora de imprimir a PDF solo sale el título del ALV como cabecera.

francesc 11/03/09 14:02:02

Tienes el evento 'TOP_OF_PAGE' en tu lista de eventos del ALV?.


Husos Horarios son GMT. La hora en este momento es 14:04:41.

www.mundosap.com 2006 - Spain
software crm, crm on demand, software call center, crm act, crm solutions, crm gratis, crm web