jueves, 21 de noviembre de 2013

Top of page en un ALV Report con imagen

Para crear un encabezado a nuestro ALV Report con REUSE_ALV_GRID_DISPLAY, se necesitará crear un FORM y nombrarle en i_callback_top_of_page. Dentro del FORM, se incluirá la función REUSE_ALV_COMMENTARY_WRITE para mostrar el texto del encabezado. Además, será necesario indicar el nombre del programa en i_callback_program. 

En el encabezado podremos distinguir tres áreas:

  1. Header: Se muestra el texto con un tamaño de fuente grande.
  2. Selection: Podremos mostrar el par de valores clave y valor.
  3. Action: Se muestra el texto en cursiva.

El código es el siguiente:


REPORT  z_sflight.

* Cargar la tabla SFLIGHT de la base de datos
TABLES: sflight.

* Cargamos los datos tipo slis
TYPES: slis.

* Definición de variables
DATA: g_it_sflight TYPE TABLE OF sflight,
      g_st_sflight TYPE sflight.

DATA: g_it_fieldcat TYPE slis_t_fieldcat_alv,
      g_st_fieldcat TYPE slis_fieldcat_alv.

DATA: g_repid TYPE sy-repid.

* SQL para copiar la tabla sflight a la tabla interna
SELECT * FROM sflight INTO TABLE g_it_sflight.

* Variable con el nombre del programa
g_repid = sy-repid.

* Datos del fieldcat para el ALV
g_st_fieldcat-fieldname = 'CARRID'.
g_st_fieldcat-seltext_s = 'Comp.'.
APPEND g_st_fieldcat TO g_it_fieldcat.

g_st_fieldcat-fieldname = 'CONNID'.
g_st_fieldcat-seltext_s = 'Vuelo'.
APPEND g_st_fieldcat TO g_it_fieldcat.

g_st_fieldcat-fieldname = 'FLDATE'.
g_st_fieldcat-seltext_s = 'Fecha'.
APPEND g_st_fieldcat TO g_it_fieldcat.

g_st_fieldcat-fieldname = 'PRICE'.
g_st_fieldcat-seltext_s = 'Tarifa'.
APPEND g_st_fieldcat TO g_it_fieldcat.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
  EXPORTING
    i_callback_program     = g_repid
    i_callback_top_of_page = 'MI_TOP_OF_PAGE'
    it_fieldcat            = g_it_fieldcat[]
  TABLES
    t_outtab               = g_it_sflight[]
  EXCEPTIONS
    program_error          = 1
    OTHERS                 = 2.

*&---------------------------------------------------------------------*
*&      Form  mi_top_of_page
*&---------------------------------------------------------------------*
*       
*----------------------------------------------------------------------*
FORM mi_top_of_page.
*ALV Header declarations
  DATA: l_it_header TYPE slis_t_listheader,
        l_st_header TYPE slis_listheader,
        l_it_line LIKE l_st_header-info,
        ld_lines TYPE i,
        ld_linesc(10) TYPE c.

* Tipo H para escribir con la fuente grande
  l_st_header-typ  = 'H'.
  l_st_header-info = 'SFLIGHT DATA'.
  APPEND l_st_header TO l_it_header.
  CLEAR l_st_header.

* Tipo S para indicar parámetro clave y su valor (fecha)
  l_st_header-typ  = 'S'. "Selection
  l_st_header-key = 'Date: '.
  CONCATENATE  sy-datum+6(2) '.'
               sy-datum+4(2) '.'
               sy-datum(4) INTO l_st_header-info.   "Fecha de hoy
  APPEND l_st_header TO l_it_header.
  CLEAR: l_st_header.

* Tipo A para escribir en cursiva
  l_st_header-typ  = 'A'. "Action
  l_st_header-info = 'ALV Report'.
  APPEND l_st_header TO l_it_header.
  CLEAR: l_st_header.

  CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
    EXPORTING
      it_list_commentary = l_it_header[]
      i_logo             = 'ENJOYSAP_LOGO'.

ENDFORM.                    "mi_top_of_page


Top of page con imagen en un ALV Report.

Related Posts:

  • ALV Report de una tabla internaPara poder mostrar un ALV Report de una tabla interna se necesitará como mínimo una tabla interna llamada it_fieldcat. En dicha tabla interna. se indicarán los nombres de los campos de nuestra tabla interna y una descripción … Read More
  • Top of page en un ALV Report con imagenPara crear un encabezado a nuestro ALV Report con REUSE_ALV_GRID_DISPLAY, se necesitará crear un FORM y nombrarle en i_callback_top_of_page. Dentro del FORM, se incluirá la función REUSE_ALV_COMMENTARY_WRITE&nb… Read More
  • Añadir un botón en un ALV ReportEn la transacción SE80, visualizamos el programa SAPLKKBL. Visualizamos el programa SAPLKKBL. Navegamos en el árbol hasta la pestaña GUI Status>STANDARD. Pinchamos con el botón derecho y lo copiamos a nuestro program… Read More
  • Añadir patrón de rayas y tamaño de columna optimizado en un ALV Report (IS_LAYOUT)Si se desea mostrar el patrón rayado y tener el ancho de columna optimizado, se tiene que recurrir a la variable IS_LAYOUT del ALV. En este caso para activar dichas opciones, sólo hay que cambiar el valor de dos variables con… Read More
  • ALV Report de una base de datos (I_STRUCTURE_NAME)Cuando consultamos una base de datos, es posible que las descripciones de los campos hayan sido añadidas en los elementos de datos de cada campo, por tanto no será necesario rellenar el FIELDCAT como en el primer ejemplo ALV.… Read More

1 comentario :