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.

Categories:

No responses yet

Leave a Reply

Your email address will not be published. Required fields are marked *