Está en la página 1de 3

"esto siempre tenemos que ponerlo cuando creamos el ALV.

TYPE-POOLS: slis.

TYPES: BEGIN OF st_scarr,


carrid TYPE s_carr_id,
carrname TYPE s_carrname,
currcode TYPE s_currcode,
url TYPE s_carrurl,
END OF st_scarr.

DATA: it_scarr TYPE TABLE OF st_scarr,


"Esto se declara para el ALV
it_fieldcat TYPE slis_t_fieldcat_alv, "Tabla interna Catalogo de ALV
wa_fieldcat TYPE slis_fieldcat_alv, "Wa interna catalogo de ALV
wa_layout TYPE slis_layout_alv. "Wa para layout del ALV

SELECTION-SCREEN BEGIN OF BLOCK b0 WITH FRAME TITLE text-000.


PARAMETERS: p_carrid TYPE s_carr_id.
SELECTION-SCREEN END OF BLOCK b0.

START-OF-SELECTION.
PERFORM obtener_datos.

END-OF-SELECTION.
PERFORM mostrar_alv.

FORM obtener_datos.

"Se obtienen los datos de las aerolineas


"y se almacena en una tabla interna
SELECT carrid carrname currcode url
INTO TABLE it_scarr
FROM scarr
WHERE carrid EQ p_carrid.

ENDFORM. "obtener_datos
*&---------------------------------------------------------------------*
*& Form armar_layout
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM armar_layout.
"Se arma el layout del ALV, osea como se veria nuestra salida.

wa_layout-zebra = 'X'. "muestra el grillado del ALV del estilo ZEBRA


wa_layout-expand_all = 'X'. "Se expande todas las columnas
wa_layout-colwidth_optimize = 'X'. "optimiza el ancho de las columnas

ENDFORM. "armar_layout
*&---------------------------------------------------------------------*
*& Form armar_fieldcat
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM armar_fieldcat.

REFRESH it_fieldcat.

wa_fieldcat-fieldname = 'CARRID'. "se pone el nombre que se declaro en la


estructura
wa_fieldcat-seltext_m = 'ID Aerolinea'. "el texto que va a mostrar la cabecera
del ALV
wa_fieldcat-tabname = 'IT_SCARR'. "El nombre de la tabla interna donde estan
los datos a mostrar
wa_fieldcat-col_pos = 1. "posicion de la columna
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
*---> y asi se hace por cada columna que se quiera agregar, despues hay muchas
opciones que se pueden ver
*---> mas adelante, toda la info a mostrar en este tipo de ALV tiene que estar en
la misma tabla interna
wa_fieldcat-fieldname = 'CARRNAME'.
wa_fieldcat-seltext_m = 'Nombre Aerolinea'.
wa_fieldcat-tabname = 'IT_SCARR'.
wa_fieldcat-col_pos = 2.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.

wa_fieldcat-fieldname = 'CURRCODE'.
wa_fieldcat-seltext_m = 'Moneda'.
wa_fieldcat-tabname = 'IT_SCARR'.
wa_fieldcat-col_pos = 3.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.

wa_fieldcat-fieldname = 'URL'.
wa_fieldcat-seltext_m = 'Url Aerolinea'.
wa_fieldcat-tabname = 'IT_SCARR'.
wa_fieldcat-col_pos = 4.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.

ENDFORM. "armar_fieldcat
*&---------------------------------------------------------------------*
*& Form mostrar_alv
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM mostrar_alv.

"llamamos a las rutinas donde declaramos la estructura y el estilo del ALV


PERFORM armar_layout.
PERFORM armar_fieldcat.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'


EXPORTING
* I_INTERFACE_CHECK = ' '
* I_BYPASSING_BUFFER = ' '
* I_BUFFER_ACTIVE = ' '
* I_CALLBACK_PROGRAM = ' '
* I_CALLBACK_PF_STATUS_SET = ' '
* I_CALLBACK_USER_COMMAND = ' '
* I_CALLBACK_TOP_OF_PAGE = ' '
* I_CALLBACK_HTML_TOP_OF_PAGE = ' '
* I_CALLBACK_HTML_END_OF_LIST = ' '
* I_STRUCTURE_NAME =
* I_BACKGROUND_ID = ' '
* I_GRID_TITLE =
* I_GRID_SETTINGS =
is_layout = wa_layout "descomentamos el layout y
ponemos nuestra WA
it_fieldcat = it_fieldcat "descomentamos el fieldcat y
ponermos nuestra IT
* IT_EXCLUDING =
* IT_SPECIAL_GROUPS =
* IT_SORT =
* IT_FILTER =
* IS_SEL_HIDE =
* I_DEFAULT = 'X'
* I_SAVE = ' '
* IS_VARIANT =
* IT_EVENTS =
* IT_EVENT_EXIT =
* IS_PRINT =
* IS_REPREP_ID =
* I_SCREEN_START_COLUMN = 0
* I_SCREEN_START_LINE = 0
* I_SCREEN_END_COLUMN = 0
* I_SCREEN_END_LINE = 0
* I_HTML_HEIGHT_TOP = 0
* I_HTML_HEIGHT_END = 0
* IT_ALV_GRAPHICS =
* IT_HYPERLINK =
* IT_ADD_FIELDCAT =
* IT_EXCEPT_QINFO =
* IR_SALV_FULLSCREEN_ADAPTER =
* IMPORTING
* E_EXIT_CAUSED_BY_CALLER =
* ES_EXIT_CAUSED_BY_USER =
TABLES
t_outtab = it_scarr[] "Ingresamos nuestra tabla
interna con los datos
* EXCEPTIONS
* PROGRAM_ERROR = 1
* OTHERS = 2
.
IF sy-subrc <> 0.
* Implement suitable error handling here
ENDIF.

ENDFORM. "mostrar_alv

También podría gustarte