Vous êtes sur la page 1sur 4

ALV LIST

ALV LIST, MANDANTE 500


*&---------------------------------------------------------------------*
*& Report ZALV_LIST_PLANTILLA
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT

ZALV_LIST_PLANTILLA.

*<-- Paso 1. Definicion estructuras y tablas necesarias


* Type Pool donde vienen definidas todas las estructuras y tablas
TYPE-POOLS: slis.
* Catlogo de campos: contiene la descripcin de los campos de salida
DATA: gt_fieldcat TYPE slis_t_fieldcat_alv WITH HEADER LINE,
* Especificaciones de la disposicin de la lista: descripcin de la
* estructura de salida
gs_layout TYPE slis_layout_alv,
* Relacion entre los datos de cabecera y posicion
gs_key TYPE slis_keyinfo_alv,
* Nombre del programa
g_repid LIKE sy-repid.
*<-- Paso 2. Definimos las tablas con los datos de salida
TYPES: BEGIN OF st_header.
INCLUDE STRUCTURE ekko.
TYPES: END OF st_header.
TYPES: BEGIN OF st_item.
INCLUDE STRUCTURE ekpo.
TYPES: END OF st_item.
DATA: gt_header TYPE STANDARD TABLE OF st_header WITH HEADER LINE,
gt_item TYPE STANDARD TABLE OF st_item WITH HEADER LINE.
INITIALIZATION.
g_repid = sy-repid.
START-OF-SELECTION.
*<-- Paso 3. Toma de datos
PERFORM toma_datos.
*<-- Paso 4. Estructura y formato de salida
PERFORM init_fieldcat.
PERFORM init_layout.
PERFORM init_key.

*<-- Paso 5. Mostrar listado


PERFORM listado.
*&&-----------------------------------------------------------------&&*
*
SUBRUTINAS DEL PROGRAMA
*
*&&-----------------------------------------------------------------&&*
*---------------------------------------------------------------------*
*
FORM INIT_FIELDCAT
*
*---------------------------------------------------------------------*
FORM init_fieldcat.
* Mediante esta tabla vamos a definir los campos que queremos mostrar
* en el listado de salida.
gt_fieldcat-fieldname = 'EBELN'.
gt_fieldcat-tabname = 'GT_HEADER'.
gt_fieldcat-ref_tabname = 'EKKO'.
APPEND gt_fieldcat. CLEAR gt_fieldcat.
gt_fieldcat-fieldname = 'EBELN'.
gt_fieldcat-tabname = 'GT_ITEM'.
gt_fieldcat-ref_tabname = 'EKPO'.
gt_fieldcat-no_out = 'X'.
APPEND gt_fieldcat. CLEAR gt_fieldcat.
gt_fieldcat-fieldname = 'EBELP'.
gt_fieldcat-tabname = 'GT_ITEM'.
gt_fieldcat-ref_tabname = 'EKPO'.
APPEND gt_fieldcat. CLEAR gt_fieldcat.
gt_fieldcat-fieldname = 'MATNR'.
gt_fieldcat-tabname = 'GT_ITEM'.
gt_fieldcat-ref_tabname = 'EKPO'.
APPEND gt_fieldcat. CLEAR gt_fieldcat.
gt_fieldcat-fieldname = 'WERKS'.
gt_fieldcat-tabname = 'GT_ITEM'.
gt_fieldcat-ref_tabname = 'EKPO'.
APPEND gt_fieldcat. CLEAR gt_fieldcat.
gt_fieldcat-fieldname = 'MENGE'.
gt_fieldcat-tabname = 'GT_ITEM'.
gt_fieldcat-ref_tabname = 'EKPO'.
APPEND gt_fieldcat. CLEAR gt_fieldcat.
gt_fieldcat-fieldname = 'MEINS'.
gt_fieldcat-tabname = 'GT_ITEM'.
gt_fieldcat-ref_tabname = 'EKPO'.
APPEND gt_fieldcat. CLEAR gt_fieldcat.
ENDFORM.
*---------------------------------------------------------------------*
*
FORM INIT_LAYOUT
*
*---------------------------------------------------------------------*
FORM init_layout.

* Mediante esta estructura podemos definir el formato de salida


gs_layout-zebra = 'X'.
gs_layout-f2code = '&ETA'.
gs_layout-detail_popup = 'X'.
ENDFORM.
*---------------------------------------------------------------------*
*
FORM TOMA_DATOS
*
*---------------------------------------------------------------------*
FORM toma_datos.
* Los datos deben guardarse en la tabla interna de salida
SELECT * FROM ekko
UP TO 100 ROWS
INTO TABLE gt_header.
SELECT * FROM ekpo
INTO TABLE gt_item
FOR ALL ENTRIES IN gt_header
WHERE ebeln = gt_header-ebeln.
ENDFORM.

" TOMA_DATOS

*---------------------------------------------------------------------*
*
FORM LISTADO
*
*---------------------------------------------------------------------*
FORM listado.

*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*

CALL FUNCTION 'REUSE_ALV_HIERSEQ_LIST_DISPLAY'


EXPORTING
I_INTERFACE_CHECK
= ' '
i_callback_program
= g_repid
I_CALLBACK_PF_STATUS_SET
= ' '
I_CALLBACK_USER_COMMAND
= ' '
is_layout
= gs_layout
it_fieldcat
= gt_fieldcat[]
IT_EXCLUDING
=
IT_SPECIAL_GROUPS
=
IT_SORT
=
IT_FILTER
=
IS_SEL_HIDE
=
I_SCREEN_START_COLUMN
= 0
I_SCREEN_START_LINE
= 0
I_SCREEN_END_COLUMN
= 0
I_SCREEN_END_LINE
= 0
I_DEFAULT
= 'X'
I_SAVE
= ' '
IS_VARIANT
=
IT_EVENTS
=
IT_EVENT_EXIT
=
i_tabname_header
= 'GT_HEADER'
i_tabname_item
= 'GT_ITEM'
I_STRUCTURE_NAME_HEADER
=
I_STRUCTURE_NAME_ITEM
=
is_keyinfo
= gs_key

*
IS_PRINT
=
*
IS_REPREP_ID
=
*
I_BUFFER_ACTIVE
=
*
I_BYPASSING_BUFFER
=
* IMPORTING
*
E_EXIT_CAUSED_BY_CALLER
=
*
ES_EXIT_CAUSED_BY_USER
=
TABLES
t_outtab_header
= gt_header[]
t_outtab_item
= gt_item[]
* 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.

" LISTADO

*---------------------------------------------------------------------*
*
FORM INIT_KEY
*
*---------------------------------------------------------------------*
FORM init_key.
* Relacion entre los campos de cabecera y los de posicion
gs_key-header01 = 'EBELN'.
gs_key-item01 = 'EBELN'.
ENDFORM.

" INIT_KEY

Vous aimerez peut-être aussi