Ejemplo de programa con un ALV que se genera para una tabla interna
*&---------------------------------------------------------------------*
*& Report ZLE_ESTATUS_ENTREGAS
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT ZLE_ESTATUS_ENTREGAS.
TABLES: LIKP, LIPS.
TYPES: BEGIN OF T_SALIDA,
VBELN TYPE LIKP-VBELN,
ERNAM TYPE LIKP-ERNAM,
ERZET TYPE LIKP-ERZET,
ERDAT TYPE LIKP-ERDAT,
LFDAT TYPE LIKP-LFDAT,
KUNNR TYPE LIKP-KUNNR,
ANZPK TYPE LIKP-ANZPK,
LIFEX TYPE LIKP-LIFEX,
GBSTK TYPE LIKP-GBSTK,
KOSTK TYPE LIKP-KOSTK,
PKSTK TYPE LIKP-PKSTK,
WBSTK TYPE LIKP-WBSTK,
LFIMG TYPE LIPS-LFIMG.
TYPES: END OF T_SALIDA.
DATA: IT_SALIDA TYPE STANDARD TABLE OF T_SALIDA.
DATA: IV_SALIDA TYPE T_SALIDA.
SELECT-OPTIONS S_VBELN FOR LIKP-VBELN.
SELECT-OPTIONS S_LIFEX FOR LIKP-LIFEX.
SELECT-OPTIONS S_LFDAT FOR LIKP-LFDAT.
PERFORM LEE_DATOS.
PERFORM MUESTRA_SALIDA.
*&---------------------------------------------------------------------*
*& Form LEE_DATOS
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& --> p1 text
*& <-- p2 text
*&---------------------------------------------------------------------*
FORM lee_datos .
SELECT * FROM LIKP INTO CORRESPONDING FIELDS OF TABLE IT_SALIDA
WHERE VBELN IN S_VBELN AND LIFEX IN S_LIFEX
AND LFDAT IN S_LFDAT.
IF SY-SUBRC NE 0.
MESSAGE 'No se encontraron entregas' type 'I'.
ENDIF.
LOOP AT IT_SALIDA INTO IV_SALIDA.
SELECT SUM( LFIMG ) FROM LIPS INTO IV_SALIDA-LFIMG
WHERE VBELN = IV_SALIDA-VBELN.
MODIFY IT_SALIDA FROM IV_SALIDA.
ENDLOOP.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form MUESTRA_SALIDA
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& --> p1 text
*& <-- p2 text
*&---------------------------------------------------------------------*
FORM muestra_salida .
DATA:
go_alv TYPE REF TO cl_salv_table,
go_functions TYPE REF TO cl_salv_functions_list,
go_column TYPE REF TO cl_salv_column,
go_columns TYPE REF TO cl_salv_columns.
CALL METHOD cl_salv_table=>factory
IMPORTING
R_SALV_TABLE = go_alv
CHANGING
T_TABLE = IT_SALIDA.
* Funciones
go_functions = go_alv->get_functions( ).
go_functions->set_all( IF_SALV_C_BOOL_SAP=>TRUE ).
* Título
go_columns = go_alv->get_columns( ).
go_columns->set_optimize( IF_SALV_C_BOOL_SAP=>TRUE ).
go_alv->display( ).
ENDFORM.
No responses yet