📘ABAP - Reuse_alv_grid_display
Definición de Reuse_alv_grid_display
El módulo de funciones estándar de sistema REUSE_ALV_GRID_DISPLAY se utiliza para la creación de un reporte ALV grilla.
Veamos a continuación un ejemplo sencillo de su utilización en un reporte ALV:
REPORT zalv_grid_test .
TYPE-POOLS: slis.
DATA: it_clientes LIKE TABLE OF kna1 WITH HEADER LINE,
it_alv LIKE TABLE OF kna1 WITH HEADER LINE,
gt_catalogo TYPE slis_t_fieldcat_alv WITH HEADER LINE, "catalogo
v_pos LIKE SY-curow VALUE '0'.
*------------------------------------------
START-OF-SELECTION.
*------------------------------------------
SELECT kunnr name1 land1 FROM kna1
INTO CORRESPONDING FIELDS OF TABLE it_clientes.
PERFORM llenar_tabla_alv.
PERFORM armar_catalogo.
Perform armar_reporte.
*&---------------------------------------------------------------------*
*& Form llenar_tabla_alv
*&---------------------------------------------------------------------*
FORM llenar_tabla_alv.
CLEAR it_alv. "******LIMPIA LA cabecera*********
LOOP AT it_clientes.
MOVE it_clientes-kunnr TO it_alv-kunnr.
MOVE it_clientes-name1 TO it_alv-name1.
MOVE it_clientes-land1 TO it_alv-land1.
APPEND it_alv.
ENDLOOP.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form armar_CATALOGO
*&---------------------------------------------------------------------*
Form armar_catalogo.
CLEAR gt_catalogo. "******LIMPIA LA cabecera*********
ADD 1 TO v_pos.
gt_catalogo-col_pos = v_pos.
gt_catalogo-fieldname = 'KUNNR'. "***SIEMPRE EN MAYUSCULA
gt_catalogo-tabname = 'IT_ALV'.
gt_catalogo-ref_tabname = 'KNA1'.
gt_catalogo-ref_fieldname = 'KUNNR'.
APPEND gt_catalogo.
CLEAR gt_catalogo. "******LIMPIA LA cabecera*********
ADD 1 TO v_pos.
gt_catalogo-col_pos = v_pos.
gt_catalogo-fieldname = 'NAME1'. "***SIEMPRE EN MAYUSCULA
gt_catalogo-tabname = 'IT_ALV'.
gt_catalogo-ref_tabname = 'KNA1'.
gt_catalogo-ref_fieldname = 'NAME1'.
APPEND gt_catalogo.
CLEAR gt_catalogo. "******LIMPIA LA cabecera*********
ADD 1 TO v_pos.
gt_catalogo-col_pos = v_pos.
gt_catalogo-fieldname = 'LAND1'. "***SIEMPRE EN MAYUSCULA
gt_catalogo-tabname = 'IT_ALV'.
gt_catalogo-ref_tabname = 'KNA1'.
gt_catalogo-ref_fieldname = 'LAND1'.
APPEND gt_catalogo.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form armar_reporte
*&---------------------------------------------------------------------*
form armar_reporte.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
* I_INTERFACE_CHECK = ' '
* I_BYPASSING_BUFFER =
* I_BUFFER_ACTIVE = ' '
I_CALLBACK_PROGRAM = 'ZALV_GRID_TEST'
* 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 =
IT_FIELDCAT = gt_catalogo[]
* 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
* IT_ALV_GRAPHICS =
* IT_ADD_FIELDCAT =
* IT_HYPERLINK =
* IMPORTING
* E_EXIT_CAUSED_BY_CALLER =
* ES_EXIT_CAUSED_BY_USER =
TABLES
t_outtab = it_alv
* EXCEPTIONS
* PROGRAM_ERROR = 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.
endform.