Foro -Documentación -Código fuente -Contacto -Empleo

Buscar

Traducir

Amazon

Z2ALV PDF Imprimir E-mail
Usar puntuación: / 0
MaloBueno 
Código fuente - Ejemplos ALV
Domingo, 13 de Marzo de 2005 06:12
Varios ALV's en una misma pantalla
*&---------------------------------------------------------------------*
*& Report  ZCOO_COSTODES                                               *
*&                                                                     *
*&---------------------------------------------------------------------*
*&                                                                     *
*&                                                                     *
*&---------------------------------------------------------------------*

REPORT  ZCOO_COSTODES                 .

TABLES: MARA,  "Datos generales material
        MAKT,  "Textos breves de material
        S032,  "Estadística: Stocks actuales y conceptos de agrup
        S033,  "Estadística: Movimientos de stocks actuales (Reg.indiv.)
        MKPF,  "Cabecera de doc.material
        MSEG,  "Segmento doc.material
        AFKO,  "Datos cabecera orden p.órdenes PCP
        MAST,  "Enlace material - lista de materiales
        STKO,  "Cabecera de lista de materiales
        STPO,  "Posición de lista de materiales
        MBEW,  "Valoración de material
        MARM,  "Unidades de medida para el material
        TCURR, "Tipos de cambio
        AUFK.  "Datos maestros de órdenes



DATA: BEGIN OF ITC_DOCMAT OCCURS 0.
      INCLUDE STRUCTURE ZFI_DOCMAT.
DATA: END OF ITC_DOCMAT.

DATA: BEGIN OF ITC_DOCMAT2 OCCURS 0.
      INCLUDE STRUCTURE ZFI_DOCMAT.
DATA: END OF ITC_DOCMAT2.

DATA: BEGIN OF ITC_MOVI OCCURS 0,
      MATNRC  LIKE MAKT-MATNR,   "Material componente
      MAKTX  LIKE MAKT-MAKTX,   "Descripción material
      MEINS  LIKE MARA-MEINS,   "Unidad de medida
      MBWBEST LIKE S032-MBWBEST,"Stock inicial
      MENGE1 LIKE MSEG-MENGE,   "Entrada de material
      MENGE2 LIKE MSEG-MENGE,   "Salida de material
      MENGET LIKE MSEG-MENGE,   "Total salidas x Consumo
      MENGEF LIKE MSEG-MENGE,   "Stock final del periodo
      MENGEM LIKE MSEG-MENGE,   "Rotación inventario componente
END OF ITC_MOVI.

DATA: BEGIN OF ITC_SALCON OCCURS 0,
      AUFNR   LIKE AFKO-AUFNR,  "Nro de orden
      MATNRB  LIKE MAKT-MATNR,  "Material base
      MATNRC  LIKE MAKT-MATNR,  "Material componente
      MENGESC LIKE MSEG-MENGE,  "Salida x Consumo
END OF ITC_SALCON.

DATA: BEGIN OF ITC_INDICE OCCURS 0,
      MATNRC  LIKE MAKT-MATNR,  "Material componente
      MATNRB  LIKE MAKT-MATNR,  "Material base
      MENGEMES LIKE MSEG-MENGE,   "Indice cant. al mes
      MENGESTD LIKE MSEG-MENGE,   "Indice cant. estandar
      MENGEDIF LIKE MSEG-MENGE,   "Indice diferencias
      VERPR1  LIKE MBEW-VERPR,    "Bolivares/unidad
      VERPR2  LIKE MBEW-VERPR,    "Diferencia * Estandar
END OF ITC_INDICE.

DATA: BEGIN OF ITC_PRECIO OCCURS 0,
      MATNRPR  LIKE MBEW-MATNR,  "Material componente
      VERPRMAT LIKE MBEW-VERPR,  "Precio
END OF ITC_PRECIO.


DATA: BEGIN OF ITC_PRODUC OCCURS 0,
      MATNR    LIKE MSEG-MATNR,  "Nro material
      MAKTX    LIKE MAKT-MAKTX,  "Material Cabecera
      MENGE    LIKE MSEG-MENGE,  "Cantidad material
END OF ITC_PRODUC.

DATA: BEGIN OF ITC_LISMAT OCCURS 0,
      MATNR    LIKE MAST-MATNR,  "Nro material base
      BMEIN    LIKE STKO-BMEIN,  "Unidad de medida material base
      BMENG    LIKE STKO-BMENG,  "Cantidad base material base
      IDNRK    LIKE STPO-IDNRK,  "Nro material componente
      MEINS    LIKE STPO-MEINS,  "Unidad de medida material componente
      MENGE    LIKE STPO-MENGE,  "Cantidad base material componente
END OF ITC_LISMAT.

DATA: BEGIN OF ITC_TCOMP OCCURS 0,
      MATNRB   LIKE MAKT-MATNR,    "Material componente
      VERPR1T  LIKE MBEW-VERPR,    "Total Bolivares/unidad
      VERPR2T  LIKE MBEW-VERPR,    "Total Diferencia * Estandar
      VERPR1MM LIKE MBEW-VERPR,    "Total Bolivares/unidad
      VERPR2MM LIKE MBEW-VERPR,    "Total Diferencia * Estandar
      UMREZTG  LIKE MARM-UMREZ,    "Factor de conversión
      VERPRTG1 LIKE MBEW-VERPR,    "Bs/hl TG Bolivares/unidad
      VERPRTG2 LIKE MBEW-VERPR,    "Bs/hl TG Diferencia * Estandar
      VERPRTGE LIKE MBEW-VERPR,    "Suma Bs/hl TG
END OF ITC_TCOMP.

DATA: BEGIN OF ITC_TOTAL OCCURS 0,

      VERPRTMM1  LIKE MBEW-VERPR,   "Total factor MMBs
      VERPRTMM2  LIKE MBEW-VERPR,   "Total factor MMBs
      VERPRTDR1  LIKE MBEW-VERPR,   "MM Total en dolares
      VERPRTDR2  LIKE MBEW-VERPR,   "MM Total en dolares
      MENGEHL    LIKE MSEG-MENGE,   "HL envasado
      VERPRTHL1  LIKE MBEW-VERPR,   "HL Total en dolares
      VERPRTHL2  LIKE MBEW-VERPR,   "HL Total en dolares
END OF ITC_TOTAL.

DATA: BEGIN OF ITC_DATOS OCCURS 0,
      MATNRC  LIKE MAKT-MATNR,  "Material componente
      MAKTX  LIKE MAKT-MAKTX,   "Descripción material
      MEINS  LIKE MARA-MEINS,   "Unidad de medida
      MBWBEST LIKE S032-MBWBEST,"Stock inicial
      MENGE1 LIKE MSEG-MENGE,   "Entrada de material
      MENGE2 LIKE MSEG-MENGE,   "Salida de material
      MENGESC1 LIKE MSEG-MENGE,  "Salida x Consumo
      MENGESC2 LIKE MSEG-MENGE,  "Salida x Consumo
      MENGESC3 LIKE MSEG-MENGE,  "Salida x Consumo
      MENGESC4 LIKE MSEG-MENGE,  "Salida x Consumo
      MENGESC5 LIKE MSEG-MENGE,  "Salida x Consumo
      MENGESC6 LIKE MSEG-MENGE,  "Salida x Consumo
      MENGESC7 LIKE MSEG-MENGE,  "Salida x Consumo
      MENGESC8 LIKE MSEG-MENGE,  "Salida x Consumo
      MENGESC9 LIKE MSEG-MENGE,  "Salida x Consumo
      MENGESC10 LIKE MSEG-MENGE,  "Salida x Consumo
      MENGESC11 LIKE MSEG-MENGE,  "Salida x Consumo
      MENGESC12 LIKE MSEG-MENGE,  "Salida x Consumo
      MENGESC13 LIKE MSEG-MENGE,  "Salida x Consumo
      MENGESC14 LIKE MSEG-MENGE,  "Salida x Consumo
      MENGESC15 LIKE MSEG-MENGE,  "Salida x Consumo
      MENGET LIKE MSEG-MENGE,   "Total salidas x Consumo
      MENGEF LIKE MSEG-MENGE,   "Stock final del periodo
      MENGEM LIKE MSEG-MENGE,   "Rotación inventario componente

      MENGEMES1 LIKE MSEG-MENGE,   "Indice cant. al mes
      MENGESTD1 LIKE MSEG-MENGE,   "Indice cant. estandar
      MENGEDIF1 LIKE MSEG-MENGE,   "Indice diferencias
      VERPR11  LIKE MBEW-VERPR,    "Bolivares/unidad
      VERPR21  LIKE MBEW-VERPR,    "Diferencia * Estandar

      MENGEMES2 LIKE MSEG-MENGE,   "Indice cant. al mes
      MENGESTD2 LIKE MSEG-MENGE,   "Indice cant. estandar
      MENGEDIF2 LIKE MSEG-MENGE,   "Indice diferencias
      VERPR12  LIKE MBEW-VERPR,    "Bolivares/unidad
      VERPR22  LIKE MBEW-VERPR,    "Diferencia * Estandar

      MENGEMES3 LIKE MSEG-MENGE,   "Indice cant. al mes
      MENGESTD3 LIKE MSEG-MENGE,   "Indice cant. estandar
      MENGEDIF3 LIKE MSEG-MENGE,   "Indice diferencias
      VERPR13  LIKE MBEW-VERPR,    "Bolivares/unidad
      VERPR23  LIKE MBEW-VERPR,    "Diferencia * Estandar

      MENGEMES4 LIKE MSEG-MENGE,   "Indice cant. al mes
      MENGESTD4 LIKE MSEG-MENGE,   "Indice cant. estandar
      MENGEDIF4 LIKE MSEG-MENGE,   "Indice diferencias
      VERPR14  LIKE MBEW-VERPR,    "Bolivares/unidad
      VERPR24  LIKE MBEW-VERPR,    "Diferencia * Estandar

      MENGEMES5 LIKE MSEG-MENGE,   "Indice cant. al mes
      MENGESTD5 LIKE MSEG-MENGE,   "Indice cant. estandar
      MENGEDIF5 LIKE MSEG-MENGE,   "Indice diferencias
      VERPR15  LIKE MBEW-VERPR,    "Bolivares/unidad
      VERPR25  LIKE MBEW-VERPR,    "Diferencia * Estandar

      MENGEMES6 LIKE MSEG-MENGE,   "Indice cant. al mes
      MENGESTD6 LIKE MSEG-MENGE,   "Indice cant. estandar
      MENGEDIF6 LIKE MSEG-MENGE,   "Indice diferencias
      VERPR16  LIKE MBEW-VERPR,    "Bolivares/unidad
      VERPR26  LIKE MBEW-VERPR,    "Diferencia * Estandar

      MENGEMES7 LIKE MSEG-MENGE,   "Indice cant. al mes
      MENGESTD7 LIKE MSEG-MENGE,   "Indice cant. estandar
      MENGEDIF7 LIKE MSEG-MENGE,   "Indice diferencias
      VERPR17  LIKE MBEW-VERPR,    "Bolivares/unidad
      VERPR27  LIKE MBEW-VERPR,    "Diferencia * Estandar

      MENGEMES8 LIKE MSEG-MENGE,   "Indice cant. al mes
      MENGESTD8 LIKE MSEG-MENGE,   "Indice cant. estandar
      MENGEDIF8 LIKE MSEG-MENGE,   "Indice diferencias
      VERPR18  LIKE MBEW-VERPR,    "Bolivares/unidad
      VERPR28  LIKE MBEW-VERPR,    "Diferencia * Estandar

      MENGEMES9 LIKE MSEG-MENGE,   "Indice cant. al mes
      MENGESTD9 LIKE MSEG-MENGE,   "Indice cant. estandar
      MENGEDIF9 LIKE MSEG-MENGE,   "Indice diferencias
      VERPR19  LIKE MBEW-VERPR,    "Bolivares/unidad
      VERPR29  LIKE MBEW-VERPR,    "Diferencia * Estandar

      MENGEMES10 LIKE MSEG-MENGE,   "Indice cant. al mes
      MENGESTD10 LIKE MSEG-MENGE,   "Indice cant. estandar
      MENGEDIF10 LIKE MSEG-MENGE,   "Indice diferencias
      VERPR110  LIKE MBEW-VERPR,    "Bolivares/unidad
      VERPR210  LIKE MBEW-VERPR,    "Diferencia * Estandar

      MENGEMES11 LIKE MSEG-MENGE,   "Indice cant. al mes
      MENGESTD11 LIKE MSEG-MENGE,   "Indice cant. estandar
      MENGEDIF11 LIKE MSEG-MENGE,   "Indice diferencias
      VERPR111  LIKE MBEW-VERPR,    "Bolivares/unidad
      VERPR211  LIKE MBEW-VERPR,    "Diferencia * Estandar

      MENGEMES12 LIKE MSEG-MENGE,   "Indice cant. al mes
      MENGESTD12 LIKE MSEG-MENGE,   "Indice cant. estandar
      MENGEDIF12 LIKE MSEG-MENGE,   "Indice diferencias
      VERPR112  LIKE MBEW-VERPR,    "Bolivares/unidad
      VERPR212  LIKE MBEW-VERPR,    "Diferencia * Estandar

      MENGEMES13 LIKE MSEG-MENGE,   "Indice cant. al mes
      MENGESTD13 LIKE MSEG-MENGE,   "Indice cant. estandar
      MENGEDIF13 LIKE MSEG-MENGE,   "Indice diferencias
      VERPR113  LIKE MBEW-VERPR,    "Bolivares/unidad
      VERPR213  LIKE MBEW-VERPR,    "Diferencia * Estandar

      MENGEMES14 LIKE MSEG-MENGE,   "Indice cant. al mes
      MENGESTD14 LIKE MSEG-MENGE,   "Indice cant. estandar
      MENGEDIF14 LIKE MSEG-MENGE,   "Indice diferencias
      VERPR114  LIKE MBEW-VERPR,    "Bolivares/unidad
      VERPR214  LIKE MBEW-VERPR,    "Diferencia * Estandar

      MENGEMES15 LIKE MSEG-MENGE,   "Indice cant. al mes
      MENGESTD15 LIKE MSEG-MENGE,   "Indice cant. estandar
      MENGEDIF15 LIKE MSEG-MENGE,   "Indice diferencias
      VERPR115  LIKE MBEW-VERPR,    "Bolivares/unidad
      VERPR215  LIKE MBEW-VERPR,    "Diferencia * Estandar

      VERPRMAT  LIKE MBEW-VERPR,    "Precio

END OF ITC_DATOS.


DATA: DA_SW1(1) TYPE C VALUE 'J',
      DA_MBWBEST LIKE S032-MBWBEST,
      DA_MAGBB LIKE S033-MAGBB,
      DA_MZUBB LIKE S033-MZUBB,
      DA_GDATU LIKE TCURR-GDATU,
      DA_UKURS LIKE TCURR-UKURS,
      DA_FECHA LIKE SY-DATUM,
      DA_FCURR LIKE TCURR-FCURR VALUE 'USD',
      DA_TCURR LIKE TCURR-TCURR VALUE 'BS',
      DA_MENGE LIKE MSEG-MENGE,
      DA_CNT   TYPE I,
      DA_CNT2  TYPE I,
      DA_INDICE(2) TYPE C,
      DA_MOD   TYPE I.
.
* DEFINICION DE LA CLASE QUE ATRAPA LAS ACCIONES DEL TOOLBAR
CLASS lcl_event_receiver DEFINITION DEFERRED.

DATA: DA_ALV1        TYPE scrfname VALUE 'ALV1', "NOMBRE DE ALV
      DA_ALV2        TYPE scrfname VALUE 'ALV2', "NOMBRE DE ALV
      DA_GRID1       TYPE REF TO cl_gui_alv_grid, "OBJETO GRID/ALV
      DA_GRID2       TYPE REF TO cl_gui_alv_grid, "OBJETO GRID/ALV
      DA_CONTAINER1  TYPE REF TO cl_gui_custom_container, "OBJ.DYNPRO
      DA_CONTAINER2  TYPE REF TO cl_gui_custom_container, "OBJ.DYNPRO
      DA_GSLAYOUT    TYPE LVC_S_LAYO, "LAYOUT ALV
      DA_RECEPEVENT1 TYPE REF TO lcl_event_receiver,
      ls_reprep_id type lvc_s_rprp,
*      DA_RECEPEVENT2 TYPE REF TO lcl_event_receiver,
      ITC_CATALOGO   TYPE LVC_T_FCAT WITH HEADER LINE,"Catalogo
      ITC_CATALOGO2  TYPE LVC_T_FCAT WITH HEADER LINE,"Catalogo
      DA_TOP         TYPE REF TO cl_dd_document, "ENCABEZADO
      DA_REPID       LIKE SY-REPID. "Nombre programa


****************************************************************
* LOCAL CLASSES: Definition
****************************************************************
CLASS lcl_event_receiver DEFINITION.

  PUBLIC SECTION.

* ACOPLAMIENTO DEL METODO CON LA EJECUCIÓN DEL EVENTO
* TOOLBAR DE LA CLASE CL_GUI_ALV_GRID DE DONDE SE INSTANCIA EL OBJETO
* ALV
    METHODS:
    TOP_OF_PAGE for event top_of_page of cl_gui_alv_grid
                     importing e_dyndoc_id,
    toolbar1
        FOR EVENT toolbar OF CL_GUI_ALV_GRID
            IMPORTING e_object e_interactive,

    USER_COMMAND for event user_command of cl_gui_alv_grid
                     importing e_ucomm sender,

    after_user_command   for event after_user_command
                     of cl_gui_alv_grid
                     importing e_ucomm
                               e_not_processed.

  PRIVATE SECTION.

ENDCLASS.
*
* lcl_event_receiver (Definition)
*===============================================================

****************************************************************
* LOCAL CLASSES: Implementation
****************************************************************
*===============================================================
CLASS lcl_event_receiver IMPLEMENTATION.

METHOD TOP_OF_PAGE.
  PERFORM FO_TOP_OF_PAGE using e_dyndoc_id.
ENDMETHOD.

METHOD AFTER_USER_COMMAND.
    perform d0100_event_after_ucomm using e_ucomm
                                          e_not_processed.
ENDMETHOD.


METHOD USER_COMMAND.
  write '400' to sy-mandt.
ENDMETHOD.

METHOD toolbar1.
    DATA: ls_toolbar TYPE stb_button.


* ADICION DEL SEPARADOR EN EL TOOLBAR
    CLEAR ls_toolbar.
    MOVE 3 TO ls_toolbar-butn_type.
    APPEND ls_toolbar TO e_object->mt_toolbar.

* ADICION DEL BOTON PARA EXCEL IN PLACE
    CLEAR ls_toolbar.
    MOVE '&VEXCELS' TO ls_toolbar-function.
    MOVE 'Microsoft Excel' TO ls_toolbar-quickinfo.
    MOVE ' ' TO ls_toolbar-disabled.
    APPEND ls_toolbar TO e_object->mt_toolbar.

  ENDMETHOD.


ENDCLASS.
*
* lcl_event_receiver (Implementation)
*===================================================================



SELECTION-SCREEN: BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.

SELECT-OPTIONS:  SO_WERKS FOR MSEG-WERKS,  "Centro
                 SO_MATN1 FOR MSEG-MATNR ,"OBLIGATORY,
                                           "Material cabecera
                 SO_MATN2 FOR MSEG-MATNR ,"OBLIGATORY,
                                           "Material componente
                 SO_MATN3 FOR MSEG-MATNR NO-DISPLAY,
                                           "Todos los materiales
                 SO_BLDAT FOR MKPF-BLDAT ,"OBLIGATORY,
                                           "Fecha documento
                 SO_BWART FOR MSEG-BWART NO-DISPLAY.
                                           "Clase de movimiento

SELECTION-SCREEN: END OF BLOCK B1.


************************************************************************
INITIALIZATION.

* SE INICIALIZAN LOS CATALOGOS DE DATOS PARA LOS ALV
  DA_REPID = SY-REPID.

  SO_BWART-SIGN = 'I'.
  SO_BWART-OPTION = 'BT'.
  SO_BWART-LOW = '101'.
  SO_BWART-HIGH = '102'.
  APPEND SO_BWART.

  SO_BWART-LOW = '201'.
  SO_BWART-HIGH = '202'.
  APPEND SO_BWART.

  SO_BWART-LOW = '261'.
  SO_BWART-HIGH = '262'.
  APPEND SO_BWART.


************************************************************************
START-OF-SELECTION.

*  IF SO_BLDAT IS INITIAL.
*      CALL FUNCTION 'POPUP_TO_CONFIRM_WITH_MESSAGE'
*        EXPORTING
**         DEFAULTOPTION        = 'Y'
*          DIAGNOSETEXT1        = 'Campo de Fecha de Documento vacio'
**         DIAGNOSETEXT2        = ' '
**         DIAGNOSETEXT3        = ' '
*      TEXTLINE1  = 'Si el campo de fecha se encuentra vacio, el tiempo'
*      TEXTLINE2  = 'de ejecución se verá afectado. Desea continuar?'
*          TITEL                = 'Advertencia'
**         START_COLUMN         = 25
**         START_ROW            = 6
**         CANCEL_DISPLAY       = 'X'
*       IMPORTING
*         ANSWER               = DA_SW1
*            .
*  ENDIF.
*
*  IF DA_SW1 = 'A'.
*    LEAVE PROGRAM.
*  ENDIF.
*
*  IF DA_SW1 = 'J'.
      PERFORM FO_DATOS.

*     PERFORM FO_TABLA_DINAMICA.
*  ENDIF.



************************************************************************
END-OF-SELECTION.

*  CLEAR DA_VARIANT.
*  DA_VARIANT-REPORT = DA_REPID.


  CALL SCREEN 1010.


*&---------------------------------------------------------------------*
*&      Form  FO_DATOS
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM FO_DATOS.

LOOP AT SO_MATN1.
    APPEND SO_MATN1 TO SO_MATN3.
ENDLOOP.
LOOP AT SO_MATN2.
    APPEND SO_MATN2 TO SO_MATN3.
ENDLOOP.


CALL FUNCTION 'FU_READ_MKPFMSEG'
  TABLES
*   S_MBLNR          =
*   S_BUDAT          =
*   S_BWART          =
*   S_MJAHR          =
   S_BLDAT          = SO_BLDAT
   S_WERKS          = SO_WERKS
   S_MATNR          = SO_MATN3
    ITC_DOCMAT       = ITC_DOCMAT
 EXCEPTIONS
   NODATA           = 1
   OTHERS           = 2
          .
IF SY-SUBRC = 0.

    ITC_DOCMAT2[] = ITC_DOCMAT[].

    SORT ITC_DOCMAT2 BY MBLNR.
    LOOP AT ITC_DOCMAT2 WHERE NOT BWART IN SO_BWART.
        IF ITC_DOCMAT2-SHKZG = 'S'.
            READ TABLE ITC_DOCMAT WITH KEY MBLNR = ITC_DOCMAT2-MBLNR
                                           SHKZG = 'H'.
            IF SY-SUBRC = 0.
                DELETE ITC_DOCMAT INDEX SY-TABIX.
            ENDIF.
        ELSE.
            READ TABLE ITC_DOCMAT WITH KEY MBLNR = ITC_DOCMAT2-MBLNR
                                           SHKZG = 'S'.
            IF SY-SUBRC = 0.
                DELETE ITC_DOCMAT INDEX SY-TABIX.
            ENDIF.
        ENDIF.
    ENDLOOP.

    SORT ITC_DOCMAT BY MBLNR.

    LOOP AT ITC_DOCMAT WHERE ( BWART = '261' OR
                               BWART = '262' ) AND
                             MATNR IN SO_MATN2.

        SELECT SINGLE *
          FROM AFKO
          WHERE AUFNR = ITC_DOCMAT-AUFNR.

        IF SY-SUBRC = 0 AND NOT AFKO-PLNBEZ IS INITIAL AND
           NOT AFKO-STLBEZ IS INITIAL.

            ITC_SALCON-AUFNR   = AFKO-AUFNR.
            ITC_SALCON-MATNRB  = AFKO-STLBEZ.
            ITC_SALCON-MATNRC  = ITC_DOCMAT-MATNR.
            ITC_SALCON-MENGESC = ITC_DOCMAT-MENGE.
            COLLECT ITC_SALCON.
            CLEAR ITC_SALCON.

        ENDIF.


    ENDLOOP.




    SELECT MARA~MATNR MAKT~MAKTX MARA~MEINS
      INTO TABLE ITC_MOVI
      FROM MARA INNER JOIN MAKT ON
           MARA~MATNR = MAKT~MATNR
      WHERE MARA~MATNR IN SO_MATN2 AND
            MARA~LVORM NE 'X' AND
            MAKT~SPRAS EQ 'S'.

    SORT ITC_MOVI BY MATNRC.

    LOOP AT ITC_MOVI.

        SELECT SUM( MBWBEST )
          INTO DA_MBWBEST
        FROM S032
        WHERE WERKS IN SO_WERKS AND
              MATNR = ITC_MOVI-MATNRC.

        SELECT SUM( MAGBB ) SUM( MZUBB )
          INTO (DA_MAGBB,
                DA_MZUBB)
        FROM S033
        WHERE SPTAG IN SO_BLDAT AND
              WERKS IN SO_WERKS AND
              MATNR = ITC_MOVI-MATNRC.

        ITC_MOVI-MBWBEST = DA_MBWBEST + DA_MAGBB - DA_MZUBB.

        LOOP AT ITC_DOCMAT WHERE MATNR = ITC_MOVI-MATNRC.

            CASE ITC_DOCMAT-BWART.

                WHEN '101' OR '102'.
                    IF ITC_DOCMAT-BWART = '101'.
                        ADD ITC_DOCMAT-MENGE TO ITC_MOVI-MENGE1.
                    ELSE.
                        SUBTRACT ITC_DOCMAT-MENGE FROM ITC_MOVI-MENGE1.
                    ENDIF.
                WHEN '201' OR '202'.
                    IF ITC_DOCMAT-BWART = '201'.
                        ADD ITC_DOCMAT-MENGE TO ITC_MOVI-MENGE2.
                    ELSE.
                        SUBTRACT ITC_DOCMAT-MENGE FROM ITC_MOVI-MENGE2.
                    ENDIF.
*                WHEN '261' OR '262'.
*                    "ESTOS MOVIMIENTOS SE UTILIZAN EN OTRO CALCULO
                WHEN OTHERS.
                    IF ITC_DOCMAT-SHKZG = 'S'.
                        ADD ITC_DOCMAT-MENGE TO ITC_MOVI-MENGE1.
                    ELSE.
                        ADD ITC_DOCMAT-MENGE TO ITC_MOVI-MENGE2.
                    ENDIF.

            ENDCASE.

            MODIFY ITC_MOVI.

        ENDLOOP.


        LOOP AT ITC_SALCON WHERE MATNRC = ITC_MOVI-MATNRC.

            ADD ITC_SALCON-MENGESC TO ITC_MOVI-MENGET.

        ENDLOOP.

        ITC_MOVI-MENGEF = ITC_MOVI-MBWBEST + ITC_MOVI-MENGE1 -
                          ITC_MOVI-MENGE2 - ITC_MOVI-MENGET.

        IF ITC_MOVI-MENGET NE 0.
          ITC_MOVI-MENGEM = ITC_MOVI-MENGEF / ITC_MOVI-MENGET.
        ENDIF.

        MODIFY ITC_MOVI.

    ENDLOOP.

    LOOP AT ITC_DOCMAT WHERE MATNR IN SO_MATN1 AND
                             ( BWART = '101' OR BWART = '102' ).

        IF NOT ITC_DOCMAT-MATNR IS INITIAL.

            SELECT SINGLE MAKTX
              INTO ITC_PRODUC-MAKTX
              FROM MAKT
              WHERE MATNR = ITC_DOCMAT-MATNR.

            CASE ITC_DOCMAT-BWART.

                WHEN '101'.
                    ITC_PRODUC-MATNR = ITC_DOCMAT-MATNR.
                    ITC_PRODUC-MENGE = ITC_DOCMAT-MENGE.
                WHEN '102'.
                    ITC_PRODUC-MATNR = ITC_DOCMAT-MATNR.
                    ITC_PRODUC-MENGE = ITC_DOCMAT-MENGE * ( -1 ).

            ENDCASE.

            COLLECT ITC_PRODUC.

        ENDIF.

    ENDLOOP.
    SORT ITC_PRODUC BY MATNR.

    SELECT DISTINCT MAST~MATNR STKO~BMEIN STKO~BMENG
                    STPO~IDNRK STPO~MEINS STPO~MENGE
      INTO TABLE ITC_LISMAT
      FROM ( MAST INNER JOIN STKO ON
        MAST~STLNR = STKO~STLNR ) INNER JOIN STPO ON
            STKO~STLNR = STPO~STLNR
      WHERE MAST~MATNR IN SO_MATN1 AND
            MAST~WERKS IN SO_WERKS AND
            ( MAST~STLAN = 'E' OR MAST~STLAN = '1' ) AND
            STPO~IDNRK IN SO_MATN2.


    LOOP AT ITC_SALCON .
        IF ITC_SALCON-MATNRB NE ITC_SALCON-MATNRC.

            ITC_INDICE-MATNRB = ITC_SALCON-MATNRB.
            ITC_INDICE-MATNRC = ITC_SALCON-MATNRC.

            READ TABLE ITC_PRODUC WITH KEY MATNR = ITC_SALCON-MATNRB.
            READ TABLE ITC_LISMAT WITH KEY MATNR = ITC_SALCON-MATNRB
                                           IDNRK = ITC_SALCON-MATNRC.
            IF SY-SUBRC = 0.
                ITC_INDICE-MENGEMES = ( ( ITC_SALCON-MENGESC /
                                      ITC_PRODUC-MENGE ) *
                                      ITC_LISMAT-BMENG ) /
                                      10000.
                ITC_INDICE-MENGESTD = ITC_LISMAT-MENGE.
                ITC_INDICE-MENGEDIF = ITC_INDICE-MENGESTD -
                                      ITC_INDICE-MENGEMES.

                SELECT SINGLE *
                  FROM MBEW
                  WHERE MATNR = ITC_SALCON-MATNRC AND
                        BWKEY IN SO_WERKS.

                ITC_PRECIO-MATNRPR  = MBEW-MATNR.
                ITC_PRECIO-VERPRMAT = MBEW-VERPR.
                APPEND ITC_PRECIO.

                ITC_INDICE-VERPR1 = ( ( ITC_INDICE-MENGEMES *
                                        MBEW-VERPR ) /
                                    ITC_LISMAT-BMENG ) /
                                    10000.
                ITC_INDICE-VERPR2 = ( ( ( ITC_INDICE-MENGESTD -
                                      ITC_INDICE-MENGEMES ) *
                                      MBEW-VERPR ) / ITC_LISMAT-BMENG )
                                      / 10000.
                APPEND ITC_INDICE.
            ENDIF.

        ENDIF.
    ENDLOOP.
    SORT ITC_INDICE BY MATNRB.

    LOOP AT ITC_INDICE.

        ITC_TCOMP-MATNRB  = ITC_INDICE-MATNRB.
        ITC_TCOMP-VERPR1T = ITC_INDICE-VERPR1  / 10000.
        READ TABLE ITC_LISMAT WITH KEY MATNR = ITC_INDICE-MATNRB.
        IF SY-SUBRC = 0.
            ITC_TCOMP-VERPR2T = ( ITC_INDICE-VERPR2 * ITC_LISMAT-BMENG )
                                / 10000.
        ENDIF.
        COLLECT ITC_TCOMP.
    ENDLOOP.

    LOOP AT ITC_TCOMP.

        READ TABLE ITC_PRODUC WITH KEY MATNR = ITC_TCOMP-MATNRB.
        ITC_TCOMP-VERPR1MM = ITC_TCOMP-VERPR1T * ITC_PRODUC-MENGE /
                             10000.
        ITC_TCOMP-VERPR2MM = ITC_TCOMP-VERPR2T * ITC_PRODUC-MENGE /
                             10000.

        SELECT SINGLE *
          FROM MARM
          WHERE MATNR = ITC_TCOMP-MATNRB AND
                MEINH = 'KGH'.
        IF SY-SUBRC = 0.
           ITC_TCOMP-UMREZTG = MARM-UMREN / MARM-UMREZ.
           ITC_TCOMP-VERPRTG1 = ITC_TCOMP-VERPR1T * ITC_TCOMP-UMREZTG.
           ITC_TCOMP-VERPRTG2 = ITC_TCOMP-VERPR2T * ITC_TCOMP-UMREZTG.
           ITC_TCOMP-VERPRTGE = ITC_TCOMP-VERPRTG1 + ITC_TCOMP-VERPRTG2.
        ELSE.
           ITC_TCOMP-VERPRTG1 = 0.
           ITC_TCOMP-VERPRTG2 = 0.
           ITC_TCOMP-VERPRTGE = 0.
        ENDIF.

        MODIFY ITC_TCOMP.

    ENDLOOP.


    LOOP AT ITC_TCOMP.

        ITC_TOTAL-VERPRTMM1 = ITC_TCOMP-VERPRTG1.
        ITC_TOTAL-VERPRTMM2 = ITC_TCOMP-VERPRTG2.

        COLLECT ITC_TOTAL.

    ENDLOOP.


* BUSQUEDA DE TASA DE CAMBIO BS - USD
    DA_FECHA = SY-DATUM.

    CALL FUNCTION 'READ_EXCHANGE_RATE'
      EXPORTING
        DATE                    = DA_FECHA
        FOREIGN_CURRENCY        = DA_TCURR
        LOCAL_CURRENCY          = DA_FCURR
     IMPORTING
        VALID_FROM_DATE         = DA_FECHA
     EXCEPTIONS
       NO_RATE_FOUND           = 1
       NO_FACTORS_FOUND        = 2
       NO_SPREAD_FOUND         = 3
       DERIVED_2_TIMES         = 4
       OVERFLOW                = 5
       OTHERS                  = 6
              .
    IF SY-SUBRC <> 0.
         MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
                 WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.

    WRITE DA_FECHA TO DA_FECHA.

    CALL FUNCTION 'CONVERSION_EXIT_INVDT_INPUT'
      EXPORTING
        INPUT        = DA_FECHA
     IMPORTING
       OUTPUT        = DA_GDATU
              .

    SELECT SINGLE UKURS
      INTO DA_UKURS
      FROM TCURR CLIENT SPECIFIED
      WHERE MANDT EQ SY-MANDT AND
            KURST EQ 'M' AND
            TCURR EQ DA_FCURR AND
            FCURR EQ DA_TCURR AND
            GDATU EQ DA_GDATU.


    LOOP AT ITC_DOCMAT WHERE BWART = '261' OR
                             BWART = '262'.
        SELECT SINGLE *
          FROM AUFK
          WHERE AUFNR = ITC_DOCMAT-AUFNR AND
                AUART = 'ZCM4'.
        IF SY-SUBRC = 0.
            SELECT SINGLE *
            FROM MARA
            WHERE MATNR = ITC_DOCMAT-MATNR AND
                  MTART = 'HALB'.
            IF SY-SUBRC = 0.
                IF ITC_DOCMAT-BWART = '261'.
                    ADD ITC_DOCMAT-MENGE TO DA_MENGE.
                ELSE.
                    SUBTRACT ITC_DOCMAT-MENGE FROM DA_MENGE.
                ENDIF.
            ENDIF.
        ENDIF.
    ENDLOOP.


    LOOP AT ITC_TOTAL.

        ITC_TOTAL-VERPRTDR1 = ITC_TOTAL-VERPRTMM1 * DA_UKURS.
        ITC_TOTAL-VERPRTDR2 = ITC_TOTAL-VERPRTMM2 * DA_UKURS.
        ITC_TOTAL-VERPRTHL1 = ITC_TOTAL-VERPRTDR1 * DA_MENGE.
        ITC_TOTAL-VERPRTHL2 = ITC_TOTAL-VERPRTDR2 * DA_MENGE.

    ENDLOOP.

    PERFORM FO_ORG_DATOS.
    PERFORM CATALOGO.
*    PERFORM CATALOGO2.
ELSE.
    MESSAGE I162(00) WITH 'No se encontraron datos para la selección.'.
ENDIF.


ENDFORM.                    " FO_DATOS
*&---------------------------------------------------------------------*
*&      Module  STATUS_1010  OUTPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE STATUS_1010 OUTPUT.

* SE CONFIGURA LA BARRA DE MENUS Y EL TITULO DEL REPORTE
  SET PF-STATUS 'MAIN1001'.
  SET TITLEBAR 'TITULO'.

* VARIABLES QUE CONTROLAN LA SALIDA EN LA DYNPRO 1001
*  DA_REPORTE = DA_REPID.
*  CONCATENATE PA_GSTRS+6(2) '.'
*              PA_GSTRS+4(2) '.'
*              PA_GSTRS(4)
*              INTO DA_FECHA.
*  IF PA_GSTRS = SY-DATUM.
*    CONCATENATE 'HORA: '
*                SY-UZEIT(2) ':'
*                SY-UZEIT+2(2) ':'
*                SY-UZEIT+4(2)
*                INTO DA_HORA.
*  ENDIF.
*
* VERIFICA SI LOS OBJETOS CUSTOM CONTROL DE LA DYNPRO 1001 YA FUERON
* INSTANCIADOS
  IF DA_CONTAINER1 IS INITIAL. " AND DA_CONTAINER2 IS INITIAL.

* INSTANCIA LOS OBJETOS CUSTOM CONTROL DE LA DYNPRO 1001
    CREATE OBJECT DA_CONTAINER1
      EXPORTING
        CONTAINER_NAME              = DA_ALV1
      EXCEPTIONS
        CNTL_ERROR                  = 1
        CNTL_SYSTEM_ERROR           = 2
        CREATE_ERROR                = 3
        LIFETIME_ERROR              = 4
        LIFETIME_DYNPRO_DYNPRO_LINK = 5
        .
    IF SY-SUBRC <> 0.
      CALL FUNCTION 'POPUP_TO_INFORM'
           EXPORTING
                titel = DA_REPID
                txt2  = SY-SUBRC
                txt1  = 'The control could not be created'(510).
    ENDIF.

    CREATE OBJECT DA_CONTAINER2
      EXPORTING
        CONTAINER_NAME              = DA_ALV2
      EXCEPTIONS
        CNTL_ERROR                  = 1
        CNTL_SYSTEM_ERROR           = 2
        CREATE_ERROR                = 3
        LIFETIME_ERROR              = 4
        LIFETIME_DYNPRO_DYNPRO_LINK = 5
        .
    IF SY-SUBRC <> 0.
      CALL FUNCTION 'POPUP_TO_INFORM'
           EXPORTING
                titel = DA_REPID
                txt2  = SY-SUBRC
                txt1  = 'The control could not be created'(510).
    ENDIF.


* INSTANCIA LOS OBJETO ALV GRID Y LOS ASOCIA A LOS OBJETOS CONTAINER
    CREATE OBJECT DA_GRID1
      EXPORTING
        I_PARENT          = DA_CONTAINER1.

    CREATE OBJECT DA_GRID2
      EXPORTING
        I_PARENT          = DA_CONTAINER2.


* SE DEFINEN LOS PARAMETROS DE PRESENTACION DE LOS GRID Y SE LANZAN EN
* PANTALLA
*   CONCATENATE 'Sección Ordenes de Proceso Centro Productivo-'
*                   INTO DA_GSLAYOUT-GRID_TITLE.
    DA_GSLAYOUT-SEL_MODE = 'A'.

* SE INSTANCIAN LOS OBJETOS REFERIDOS A LA CLASE QUE SE IMPLEMENTO PARA
* ACOPLAR LOS EVENTOS DEL ALV GRID1
    CREATE OBJECT DA_RECEPEVENT1.
    SET HANDLER DA_RECEPEVENT1->TOP_OF_PAGE FOR DA_GRID1.
    SET HANDLER DA_RECEPEVENT1->USER_COMMAND FOR DA_GRID1.


*
    CREATE OBJECT DA_RECEPEVENT2.
    SET HANDLER DA_RECEPEVENT1->toolbar1 FOR DA_GRID1.    
    SET HANDLER DA_RECEPEVENT2->toolbar2 FOR DA_GRID2.
*
*
        create object da_top
                          exporting style = 'ALV_GRID'.
        create object da_top2
                          exporting style = 'ALV_GRID'.


        call method DA_TOP->initialize_document.

        call method DA_TOP2->initialize_document.


    CALL METHOD DA_GRID1->set_table_for_first_display
         EXPORTING i_structure_name = 'ITC_DATOS1'
*                   IS_VARIANT       = DA_VARIANT
                   is_layout        = DA_GSLAYOUT
                   I_SAVE                        = 'A'
                   I_DEFAULT                     = 'X'
         CHANGING  it_outtab        = ITC_DATOS[]
                   it_fieldcatalog  = ITC_CATALOGO[].


          ls_reprep_id-s_rprp_id-tool = 'RT'.
          ls_reprep_id-s_rprp_id-onam = SY-REPID.
          ls_reprep_id-cb_repid   = SY-REPID.

*          call method DA_GRID1->activate_reprep_interface
*                                exporting is_reprep = ls_reprep_id
*                                exceptions no_sender = 1.
*

      CALL METHOD DA_GRID1->LIST_PROCESSING_EVENTS
        EXPORTING
          I_EVENT_NAME      = 'TOP_OF_PAGE'
          I_DYNDOC_ID       = DA_TOP
**          IS_SUBTOTTXT_INFO =
**          IP_SUBTOT_LINE    =
**        CHANGING
**          C_SUBTOTTXT       =
          .

    CONCATENATE 'Sección Ordenes Previsionales Centro Productivo-'
                PA_WERKS INTO DA_GSLAYOUT-GRID_TITLE.

    DA_GSLAYOUT-SEL_MODE = 'A'.

    CALL METHOD DA_GRID2->set_table_for_first_display
         EXPORTING i_structure_name = 'ITC_DATOS1'
                   IS_VARIANT       = DA_VARIANT
                   is_layout        = DA_GSLAYOUT
                   I_SAVE                        = 'A'
                   I_DEFAULT                     = 'X'
         CHANGING  it_outtab        = ITC_OPREVISION[]
                   it_fieldcatalog  = ITC_CATALOGO2[].

* METODO QUE LE INDICA AL OBJETO GRID QUE ACEPTE LA FUNCIONALIDAD DE
* AGREGAR BOTONES ADICIONALES AL TOOLBAR
    CALL METHOD DA_GRID1->set_toolbar_interactive.
    CALL METHOD DA_GRID2->set_toolbar_interactive.




* LLEVA EL FOCO DEL PROGRAMA HACIA EL PRIMER GRID.
    CALL METHOD cl_gui_control=>set_focus EXPORTING control = DA_GRID1.
  ENDIF.


ENDMODULE.                 " STATUS_1010  OUTPUT
*&---------------------------------------------------------------------*
*&      Module  USER_COMMAND_1010  INPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE USER_COMMAND_1010 INPUT.

*CONTROL DE COMANDOS DEL USUARIO
  CASE SY-UCOMM.
    WHEN 'EXIT'.
      PERFORM EXIT.
    WHEN 'BACK'.
      PERFORM BACK.
    WHEN 'REFRH'.
      PERFORM REFRH.
  ENDCASE.
  CLEAR SY-UCOMM.


ENDMODULE.                 " USER_COMMAND_1010  INPUT


*&---------------------------------------------------------------------*
*&      Form  EXIT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM EXIT.
* SALE DEL PROGRAMA AL MENU DE SAP Y LIBERA LOS OBJETOS GRID DE MEMORIA
  LEAVE PROGRAM.
  CALL METHOD DA_CONTAINER1->free.
  CALL METHOD DA_CONTAINER2->free.
  IF SY-SUBRC ne 0.
    CALL FUNCTION 'POPUP_TO_INFORM'
         EXPORTING
              titel = DA_REPID
              txt2  = sy-subrc
              txt1  = 'Error in Flush'(500).
  ENDIF.

ENDFORM.                    " SALIR
*&---------------------------------------------------------------------*
*&      Form  BACK
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM BACK.

* SALE DEL PROGRAMA A LA PANTALLA DE SELECCION DE DATOS Y LIBERA LOS
* OBJETOS GRID DE MEMORIA
  LEAVE TO SCREEN 0.
  CALL METHOD DA_CONTAINER1->free.
  CALL METHOD DA_CONTAINER2->free.
  CALL METHOD cl_gui_cfw=>flush.
  IF SY-SUBRC ne 0.
    CALL FUNCTION 'POPUP_TO_INFORM'
         EXPORTING
              titel = DA_REPID
              txt2  = sy-subrc
              txt1  = 'Error in Flush'(500).
  ENDIF.

ENDFORM.                    " BACK

*&---------------------------------------------------------------------*
*&      Form  REFRH
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM REFRH.

* INICIALIZA TODAS LAS ITAB DEL PROGRAMA, EJECUTA DE NUEVO LA BUSQUEDA
* DE DATOS Y REFRESCA LOS OBJETOS GRID
*
*  PERFORM INICIALIZAR.
*  PERFORM FO_DATOS.

  CALL METHOD DA_GRID1->REFRESH_TABLE_DISPLAY.
  CALL METHOD DA_GRID2->REFRESH_TABLE_DISPLAY.
  CALL METHOD cl_gui_cfw=>flush.
  IF SY-SUBRC ne 0.
    CALL FUNCTION 'POPUP_TO_INFORM'
         EXPORTING
              titel = DA_REPID
              txt2  = sy-subrc
              txt1  = 'Error in Flush'(500).
  ENDIF.
  CLEAR SY-UCOMM.


ENDFORM.                    " REFRH


*&---------------------------------------------------------------------*
*&      Form  CATALOGO
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM CATALOGO.

* CREA EL CATALOGO PARA EL GRID 1

  CLEAR ITC_CATALOGO.
  ITC_CATALOGO-TABNAME = 'ITC_DATOS'.
  ITC_CATALOGO-FIELDNAME = 'MATNRC'.
  ITC_CATALOGO-REF_TABLE = 'MAKT'.
  ITC_CATALOGO-REF_FIELD = 'MATNR'.
  ITC_CATALOGO-OUTPUTLEN = '10'.
  ITC_CATALOGO-KEY = 'X'.
  APPEND ITC_CATALOGO.

  CLEAR ITC_CATALOGO.
  ITC_CATALOGO-TABNAME = 'ITC_DATOS'.
  ITC_CATALOGO-FIELDNAME = 'MAKTX'.
  ITC_CATALOGO-REF_TABLE = 'MAKT'.
  ITC_CATALOGO-REF_FIELD = 'MAKTX'.
  ITC_CATALOGO-KEY = 'X'.
  APPEND ITC_CATALOGO.

  CLEAR ITC_CATALOGO.
  ITC_CATALOGO-TABNAME = 'ITC_DATOS'.
  ITC_CATALOGO-FIELDNAME = 'MEINS'.
  ITC_CATALOGO-REF_TABLE = 'MARA'.
  ITC_CATALOGO-REF_FIELD = 'MEINS'.
  ITC_CATALOGO-KEY = 'X'.
  APPEND ITC_CATALOGO.

  CLEAR ITC_CATALOGO.
  ITC_CATALOGO-TABNAME = 'ITC_DATOS'.
  ITC_CATALOGO-FIELDNAME = 'MBWBEST'.
  ITC_CATALOGO-OUTPUTLEN = '18'.
  ITC_CATALOGO-COLTEXT = 'Inicial'.
  ITC_CATALOGO-SELTEXT = 'Stock Inicial'.
  ITC_CATALOGO-NO_ZERO = 'X'.
  APPEND ITC_CATALOGO.

  CLEAR ITC_CATALOGO.
  ITC_CATALOGO-TABNAME = 'ITC_DATOS'.
  ITC_CATALOGO-FIELDNAME = 'MENGE1'.
  ITC_CATALOGO-OUTPUTLEN = '18'.
  ITC_CATALOGO-COLTEXT = 'Entrada'.
  ITC_CATALOGO-SELTEXT = 'Entrada de Material'.
  ITC_CATALOGO-NO_ZERO = 'X'.
  APPEND ITC_CATALOGO.

  CLEAR ITC_CATALOGO.
  ITC_CATALOGO-TABNAME = 'ITC_DATOS'.
  ITC_CATALOGO-FIELDNAME = 'MENGE2'.
  ITC_CATALOGO-OUTPUTLEN = '18'.
  ITC_CATALOGO-COLTEXT = 'Salida'.
  ITC_CATALOGO-SELTEXT = 'Salida de Material'.
  ITC_CATALOGO-NO_ZERO = 'X'.
  APPEND ITC_CATALOGO.

  DO DA_CNT TIMES.

      READ TABLE ITC_PRODUC INDEX SY-INDEX.
      DA_INDICE = SY-INDEX.
      CLEAR ITC_CATALOGO.
      ITC_CATALOGO-TABNAME = 'ITC_DATOS'.
      CONCATENATE 'MENGESC' DA_INDICE INTO ITC_CATALOGO-FIELDNAME.
      ITC_CATALOGO-OUTPUTLEN = '18'.
      CONCATENATE 'SC-' ITC_PRODUC-MAKTX INTO ITC_CATALOGO-COLTEXT.
      CONCATENATE 'SC-' ITC_PRODUC-MAKTX INTO ITC_CATALOGO-SELTEXT.
      ITC_CATALOGO-EMPHASIZE = 'C211'.
      ITC_CATALOGO-NO_ZERO = 'X'.
      APPEND ITC_CATALOGO.

  ENDDO.

  CLEAR ITC_CATALOGO.
  ITC_CATALOGO-TABNAME = 'ITC_DATOS'.
  ITC_CATALOGO-FIELDNAME = 'MENGET'.
  ITC_CATALOGO-OUTPUTLEN = '18'.
  ITC_CATALOGO-COLTEXT = 'Total'.
  ITC_CATALOGO-SELTEXT = 'Total salidas x consumo'.
  ITC_CATALOGO-NO_ZERO = 'X'.
  APPEND ITC_CATALOGO.

  CLEAR ITC_CATALOGO.
  ITC_CATALOGO-TABNAME = 'ITC_DATOS'.
  ITC_CATALOGO-FIELDNAME = 'MENGEF'.
  ITC_CATALOGO-OUTPUTLEN = '18'.
  ITC_CATALOGO-COLTEXT = 'Final'.
  ITC_CATALOGO-SELTEXT = 'Stock final del periodo'.
  ITC_CATALOGO-NO_ZERO = 'X'.
  APPEND ITC_CATALOGO.

  CLEAR ITC_CATALOGO.
  ITC_CATALOGO-TABNAME = 'ITC_DATOS'.
  ITC_CATALOGO-FIELDNAME = 'MENGEM'.
  ITC_CATALOGO-OUTPUTLEN = '18'.
  ITC_CATALOGO-COLTEXT = 'Mes'.
  ITC_CATALOGO-SELTEXT = 'Rotación inventario del componente'.
  ITC_CATALOGO-NO_ZERO = 'X'.
  APPEND ITC_CATALOGO.

  DO DA_CNT TIMES.

      READ TABLE ITC_PRODUC INDEX SY-INDEX.
      DA_INDICE = SY-INDEX.
      DA_MOD = SY-INDEX MOD 2.

      CLEAR ITC_CATALOGO.
      ITC_CATALOGO-TABNAME = 'ITC_DATOS'.
      CONCATENATE 'MENGEMES' DA_INDICE INTO ITC_CATALOGO-FIELDNAME.
      ITC_CATALOGO-OUTPUTLEN = '20'.
      CONCATENATE 'AL MES-' ITC_PRODUC-MAKTX INTO ITC_CATALOGO-COLTEXT.
      CONCATENATE 'AL MES-' ITC_PRODUC-MAKTX INTO ITC_CATALOGO-SELTEXT.
      IF DA_MOD = 0.
          ITC_CATALOGO-EMPHASIZE = 'C211'.
      ENDIF.
      ITC_CATALOGO-NO_ZERO = 'X'.
      APPEND ITC_CATALOGO.

      CLEAR ITC_CATALOGO.
      ITC_CATALOGO-TABNAME = 'ITC_DATOS'.
      CONCATENATE 'MENGESTD' DA_INDICE INTO ITC_CATALOGO-FIELDNAME.
      ITC_CATALOGO-OUTPUTLEN = '20'.
      CONCATENATE 'ESTN-' ITC_PRODUC-MAKTX INTO ITC_CATALOGO-COLTEXT.
      CONCATENATE 'ESTN-' ITC_PRODUC-MAKTX INTO ITC_CATALOGO-SELTEXT.
      IF DA_MOD = 0.
          ITC_CATALOGO-EMPHASIZE = 'C211'.
      ENDIF.
      ITC_CATALOGO-NO_ZERO = 'X'.
      APPEND ITC_CATALOGO.

      CLEAR ITC_CATALOGO.
      ITC_CATALOGO-TABNAME = 'ITC_DATOS'.
      CONCATENATE 'MENGEDIF' DA_INDICE INTO ITC_CATALOGO-FIELDNAME.
      ITC_CATALOGO-OUTPUTLEN = '20'.
      CONCATENATE 'DIF-' ITC_PRODUC-MAKTX INTO ITC_CATALOGO-COLTEXT.
      CONCATENATE 'DIF-' ITC_PRODUC-MAKTX INTO ITC_CATALOGO-SELTEXT.
      IF DA_MOD = 0.
          ITC_CATALOGO-EMPHASIZE = 'C211'.
      ENDIF.
      ITC_CATALOGO-NO_ZERO = 'X'.
      APPEND ITC_CATALOGO.

      CLEAR ITC_CATALOGO.
      ITC_CATALOGO-TABNAME = 'ITC_DATOS'.
      CONCATENATE 'VERPR1' DA_INDICE INTO ITC_CATALOGO-FIELDNAME.
      ITC_CATALOGO-OUTPUTLEN = '20'.
      CONCATENATE 'Bs./KEX-' ITC_PRODUC-MAKTX INTO ITC_CATALOGO-COLTEXT.
      CONCATENATE 'Bs./KEX-' ITC_PRODUC-MAKTX INTO ITC_CATALOGO-SELTEXT.
      IF DA_MOD = 0.
          ITC_CATALOGO-EMPHASIZE = 'C211'.
      ENDIF.
      ITC_CATALOGO-NO_ZERO = 'X'.
      APPEND ITC_CATALOGO.

      CLEAR ITC_CATALOGO.
      ITC_CATALOGO-TABNAME = 'ITC_DATOS'.
      CONCATENATE 'VERPR2' DA_INDICE INTO ITC_CATALOGO-FIELDNAME.
      ITC_CATALOGO-OUTPUTLEN = '20'.
      CONCATENATE 'DIF vs. EST-' ITC_PRODUC-MAKTX INTO
                  ITC_CATALOGO-COLTEXT.
      CONCATENATE 'DIF vs. EST-' ITC_PRODUC-MAKTX INTO
                  ITC_CATALOGO-SELTEXT.
      IF DA_MOD = 0.
          ITC_CATALOGO-EMPHASIZE = 'C211'.
      ENDIF.
      ITC_CATALOGO-NO_ZERO = 'X'.
      APPEND ITC_CATALOGO.

  ENDDO.

  CLEAR ITC_CATALOGO.
  ITC_CATALOGO-TABNAME = 'ITC_DATOS'.
  ITC_CATALOGO-FIELDNAME = 'VERPRMAT'.
  ITC_CATALOGO-OUTPUTLEN = '13'.
  ITC_CATALOGO-COLTEXT = 'Bs/Und'.
  ITC_CATALOGO-SELTEXT = 'Precio Bs/Und'.
  ITC_CATALOGO-NO_ZERO = 'X'.
  ITC_CATALOGO-KEY = 'X'.
  APPEND ITC_CATALOGO.


ENDFORM.                    " CATALOGO

*&---------------------------------------------------------------------*
*&      Form  CATALOGO2
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM CATALOGO2.

* CREA EL CATALOGO PARA EL GRID 2
  CLEAR ITC_CATALOGO2.
  ITC_CATALOGO2-TABNAME = 'ITC_OPREVISION'.
  ITC_CATALOGO2-FIELDNAME = 'ARBPL'.
  ITC_CATALOGO2-REF_TABLE = 'CRHD'.
  ITC_CATALOGO2-REF_FIELD = 'ARBPL'.
  ITC_CATALOGO2-KEY = 'X'.
  APPEND ITC_CATALOGO2 .

  CLEAR ITC_CATALOGO2.
  ITC_CATALOGO2-TABNAME = 'ITC_OPREVISION'.
  ITC_CATALOGO2-FIELDNAME = 'ICON'.
  ITC_CATALOGO2-OUTPUTLEN = '4'.
  ITC_CATALOGO2-COLTEXT = 'Estado'.
  ITC_CATALOGO2-SELTEXT = 'Estado TCC'.
  ITC_CATALOGO2-ICON = 'X'.
  ITC_CATALOGO-KEY = 'X'.
  APPEND ITC_CATALOGO2 .

  CLEAR ITC_CATALOGO2.
  ITC_CATALOGO2-TABNAME = 'ITC_OPREVISION'.
  ITC_CATALOGO2-FIELDNAME = 'MATNR'.
  ITC_CATALOGO2-REF_TABLE = 'PLAF'.
  ITC_CATALOGO2-REF_FIELD = 'MATNR'.
  ITC_CATALOGO2-COLTEXT = 'Material'.
  APPEND ITC_CATALOGO2 .

  CLEAR ITC_CATALOGO2.
  ITC_CATALOGO2-TABNAME = 'ITC_OPREVISION'.
  ITC_CATALOGO2-FIELDNAME = 'MAKTX'.
  ITC_CATALOGO2-REF_TABLE = 'MAKT'.
  ITC_CATALOGO2-REF_FIELD = 'MAKTX'.
  ITC_CATALOGO2-COLTEXT = 'Nombre Material'.
  APPEND ITC_CATALOGO2 .

  CLEAR ITC_CATALOGO2.
  ITC_CATALOGO2-TABNAME = 'ITC_OPREVISION'.
  ITC_CATALOGO2-FIELDNAME = 'ANG_MAX'.
  ITC_CATALOGO2-REF_TABLE = 'KAKO'.
  ITC_CATALOGO2-REF_FIELD = 'ANG_MAX'.
  ITC_CATALOGO2-COLTEXT = 'Vol.Teórico'.
  APPEND ITC_CATALOGO2 .

  CLEAR ITC_CATALOGO2.
  ITC_CATALOGO2-TABNAME = 'ITC_OPREVISION'.
  ITC_CATALOGO2-FIELDNAME = 'ANG_UNIT'.
  ITC_CATALOGO2-REF_TABLE = 'KAKO'.
  ITC_CATALOGO2-REF_FIELD = 'ANG_UNIT'.
  APPEND ITC_CATALOGO2 .


ENDFORM.                                                    " CATALOGO2
*&---------------------------------------------------------------------*
*&      Form  FO_TABLA_DINAMICA
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM FO_TABLA_DINAMICA.

*    ASSIGN STPO-IDNRK TO .
*
*
*
*    DATA  IT_DATOS TYPE REF TO .
*


ENDFORM.                    " FO_TABLA_DINAMICA
*&---------------------------------------------------------------------*
*&      Form  FO_ORG_DATOS
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM FO_ORG_DATOS.

SORT ITC_MOVI BY MATNRC.
LOOP AT ITC_MOVI.

    ITC_DATOS-MATNRC = ITC_MOVI-MATNRC.
    ITC_DATOS-MAKTX  = ITC_MOVI-MAKTX.
    ITC_DATOS-MEINS  = ITC_MOVI-MEINS.
    ITC_DATOS-MBWBEST = ITC_MOVI-MBWBEST.
    ITC_DATOS-MENGE1 = ITC_MOVI-MENGE1.
    ITC_DATOS-MENGE2 = ITC_MOVI-MENGE2.

    DESCRIBE TABLE ITC_PRODUC LINES DA_CNT.
    SORT ITC_PRODUC BY MATNR.

    DA_CNT2 = 1.
    IF DA_CNT GE DA_CNT2.
        READ TABLE ITC_PRODUC INDEX DA_CNT2.
        READ TABLE ITC_SALCON WITH KEY MATNRB = ITC_PRODUC-MATNR
                                       MATNRC = ITC_DATOS-MATNRC.
        IF SY-SUBRC = 0.
            ITC_DATOS-MENGESC1 = ITC_SALCON-MENGESC.
        ENDIF.
        DA_CNT2 = DA_CNT2 + 1.
    ENDIF.

    IF DA_CNT GE DA_CNT2.
        READ TABLE ITC_PRODUC INDEX DA_CNT2.
        READ TABLE ITC_SALCON WITH KEY MATNRB = ITC_PRODUC-MATNR
                                       MATNRC = ITC_DATOS-MATNRC.
        IF SY-SUBRC = 0.
            ITC_DATOS-MENGESC2 = ITC_SALCON-MENGESC.
        ENDIF.
        DA_CNT2 = DA_CNT2 + 1.
    ENDIF.

    IF DA_CNT GE DA_CNT2.
        READ TABLE ITC_PRODUC INDEX DA_CNT2.
        READ TABLE ITC_SALCON WITH KEY MATNRB = ITC_PRODUC-MATNR
                                       MATNRC = ITC_DATOS-MATNRC.
        IF SY-SUBRC = 0.
            ITC_DATOS-MENGESC3 = ITC_SALCON-MENGESC.
        ENDIF.
        DA_CNT2 = DA_CNT2 + 1.
    ENDIF.

    IF DA_CNT GE DA_CNT2.
        READ TABLE ITC_PRODUC INDEX DA_CNT2.
        READ TABLE ITC_SALCON WITH KEY MATNRB = ITC_PRODUC-MATNR
                                       MATNRC = ITC_DATOS-MATNRC.
        IF SY-SUBRC = 0.
            ITC_DATOS-MENGESC4 = ITC_SALCON-MENGESC.
        ENDIF.
        DA_CNT2 = DA_CNT2 + 1.
    ENDIF.

    IF DA_CNT GE DA_CNT2.
        READ TABLE ITC_PRODUC INDEX DA_CNT2.
        READ TABLE ITC_SALCON WITH KEY MATNRB = ITC_PRODUC-MATNR
                                       MATNRC = ITC_DATOS-MATNRC.
        IF SY-SUBRC = 0.
            ITC_DATOS-MENGESC5 = ITC_SALCON-MENGESC.
        ENDIF.
        DA_CNT2 = DA_CNT2 + 1.
    ENDIF.

    IF DA_CNT GE DA_CNT2.
        READ TABLE ITC_PRODUC INDEX DA_CNT2.
        READ TABLE ITC_SALCON WITH KEY MATNRB = ITC_PRODUC-MATNR
                                       MATNRC = ITC_DATOS-MATNRC.
        IF SY-SUBRC = 0.
            ITC_DATOS-MENGESC6 = ITC_SALCON-MENGESC.
        ENDIF.
        DA_CNT2 = DA_CNT2 + 1.
    ENDIF.

    IF DA_CNT GE DA_CNT2.
        READ TABLE ITC_PRODUC INDEX DA_CNT2.
        READ TABLE ITC_SALCON WITH KEY MATNRB = ITC_PRODUC-MATNR
                                       MATNRC = ITC_DATOS-MATNRC.
        IF SY-SUBRC = 0.
            ITC_DATOS-MENGESC6 = ITC_SALCON-MENGESC.
        ENDIF.
        DA_CNT2 = DA_CNT2 + 1.
    ENDIF.

    IF DA_CNT GE DA_CNT2.
        READ TABLE ITC_PRODUC INDEX DA_CNT2.
        READ TABLE ITC_SALCON WITH KEY MATNRB = ITC_PRODUC-MATNR
                                       MATNRC = ITC_DATOS-MATNRC.
        IF SY-SUBRC = 0.
            ITC_DATOS-MENGESC7 = ITC_SALCON-MENGESC.
        ENDIF.
        DA_CNT2 = DA_CNT2 + 1.
    ENDIF.

    IF DA_CNT GE DA_CNT2.
        READ TABLE ITC_PRODUC INDEX DA_CNT2.
        READ TABLE ITC_SALCON WITH KEY MATNRB = ITC_PRODUC-MATNR
                                       MATNRC = ITC_DATOS-MATNRC.
        IF SY-SUBRC = 0.
            ITC_DATOS-MENGESC8 = ITC_SALCON-MENGESC.
        ENDIF.
        DA_CNT2 = DA_CNT2 + 1.
    ENDIF.

    IF DA_CNT GE DA_CNT2.
        READ TABLE ITC_PRODUC INDEX DA_CNT2.
        READ TABLE ITC_SALCON WITH KEY MATNRB = ITC_PRODUC-MATNR
                                       MATNRC = ITC_DATOS-MATNRC.
        IF SY-SUBRC = 0.
            ITC_DATOS-MENGESC9 = ITC_SALCON-MENGESC.
        ENDIF.
        DA_CNT2 = DA_CNT2 + 1.
    ENDIF.

    IF DA_CNT GE DA_CNT2.
        READ TABLE ITC_PRODUC INDEX DA_CNT2.
        READ TABLE ITC_SALCON WITH KEY MATNRB = ITC_PRODUC-MATNR
                                       MATNRC = ITC_DATOS-MATNRC.
        IF SY-SUBRC = 0.
            ITC_DATOS-MENGESC10 = ITC_SALCON-MENGESC.
        ENDIF.
        DA_CNT2 = DA_CNT2 + 1.
    ENDIF.

    IF DA_CNT GE DA_CNT2.
        READ TABLE ITC_PRODUC INDEX DA_CNT2.
        READ TABLE ITC_SALCON WITH KEY MATNRB = ITC_PRODUC-MATNR
                                       MATNRC = ITC_DATOS-MATNRC.
        IF SY-SUBRC = 0.
            ITC_DATOS-MENGESC11 = ITC_SALCON-MENGESC.
        ENDIF.
        DA_CNT2 = DA_CNT2 + 1.
    ENDIF.

    IF DA_CNT GE DA_CNT2.
        READ TABLE ITC_PRODUC INDEX DA_CNT2.
        READ TABLE ITC_SALCON WITH KEY MATNRB = ITC_PRODUC-MATNR
                                       MATNRC = ITC_DATOS-MATNRC.
        IF SY-SUBRC = 0.
            ITC_DATOS-MENGESC12 = ITC_SALCON-MENGESC.
        ENDIF.
        DA_CNT2 = DA_CNT2 + 1.
    ENDIF.

    IF DA_CNT GE DA_CNT2.
        READ TABLE ITC_PRODUC INDEX DA_CNT2.
        READ TABLE ITC_SALCON WITH KEY MATNRB = ITC_PRODUC-MATNR
                                       MATNRC = ITC_DATOS-MATNRC.
        IF SY-SUBRC = 0.
            ITC_DATOS-MENGESC13 = ITC_SALCON-MENGESC.
        ENDIF.
        DA_CNT2 = DA_CNT2 + 1.
    ENDIF.

    IF DA_CNT GE DA_CNT2.
        READ TABLE ITC_PRODUC INDEX DA_CNT2.
        READ TABLE ITC_SALCON WITH KEY MATNRB = ITC_PRODUC-MATNR
                                       MATNRC = ITC_DATOS-MATNRC.
        IF SY-SUBRC = 0.
            ITC_DATOS-MENGESC14 = ITC_SALCON-MENGESC.
        ENDIF.
        DA_CNT2 = DA_CNT2 + 1.
    ENDIF.

    IF DA_CNT GE DA_CNT2.
        READ TABLE ITC_PRODUC INDEX DA_CNT2.
        READ TABLE ITC_SALCON WITH KEY MATNRB = ITC_PRODUC-MATNR
                                       MATNRC = ITC_DATOS-MATNRC.
        IF SY-SUBRC = 0.
            ITC_DATOS-MENGESC15 = ITC_SALCON-MENGESC.
        ENDIF.
        DA_CNT2 = DA_CNT2 + 1.
    ENDIF.

    ITC_DATOS-MENGET = ITC_MOVI-MENGET.
    ITC_DATOS-MENGEF = ITC_MOVI-MENGEF.
    ITC_DATOS-MENGEM = ITC_MOVI-MENGEM.




    DA_CNT2 = 1.
    IF DA_CNT GE DA_CNT2.
        READ TABLE ITC_PRODUC INDEX DA_CNT2.
        READ TABLE ITC_INDICE WITH KEY MATNRB = ITC_PRODUC-MATNR
                                       MATNRC = ITC_DATOS-MATNRC.
        IF SY-SUBRC = 0.
            ITC_DATOS-MENGEMES1 = ITC_INDICE-MENGEMES.
            ITC_DATOS-MENGESTD1 = ITC_INDICE-MENGESTD.
            ITC_DATOS-MENGEDIF1 = ITC_INDICE-MENGEDIF.
            ITC_DATOS-VERPR11 = ITC_INDICE-VERPR1.
            ITC_DATOS-VERPR21 = ITC_INDICE-VERPR2.
        ENDIF.
        DA_CNT2 = DA_CNT2 + 1.
    ENDIF.

    IF DA_CNT GE DA_CNT2.
        READ TABLE ITC_PRODUC INDEX DA_CNT2.
        READ TABLE ITC_INDICE WITH KEY MATNRB = ITC_PRODUC-MATNR
                                       MATNRC = ITC_DATOS-MATNRC.
        IF SY-SUBRC = 0.
            ITC_DATOS-MENGEMES2 = ITC_INDICE-MENGEMES.
            ITC_DATOS-MENGESTD2 = ITC_INDICE-MENGESTD.
            ITC_DATOS-MENGEDIF2 = ITC_INDICE-MENGEDIF.
            ITC_DATOS-VERPR12 = ITC_INDICE-VERPR1.
            ITC_DATOS-VERPR22 = ITC_INDICE-VERPR2.
        ENDIF.
        DA_CNT2 = DA_CNT2 + 1.
    ENDIF.

    IF DA_CNT GE DA_CNT2.
        READ TABLE ITC_PRODUC INDEX DA_CNT2.
        READ TABLE ITC_INDICE WITH KEY MATNRB = ITC_PRODUC-MATNR
                                       MATNRC = ITC_DATOS-MATNRC.
        IF SY-SUBRC = 0.
            ITC_DATOS-MENGEMES3 = ITC_INDICE-MENGEMES.
            ITC_DATOS-MENGESTD3 = ITC_INDICE-MENGESTD.
            ITC_DATOS-MENGEDIF3 = ITC_INDICE-MENGEDIF.
            ITC_DATOS-VERPR13 = ITC_INDICE-VERPR1.
            ITC_DATOS-VERPR23 = ITC_INDICE-VERPR2.
        ENDIF.
        DA_CNT2 = DA_CNT2 + 1.
    ENDIF.

    IF DA_CNT GE DA_CNT2.
        READ TABLE ITC_PRODUC INDEX DA_CNT2.
        READ TABLE ITC_INDICE WITH KEY MATNRB = ITC_PRODUC-MATNR
                                       MATNRC = ITC_DATOS-MATNRC.
        IF SY-SUBRC = 0.
            ITC_DATOS-MENGEMES4 = ITC_INDICE-MENGEMES.
            ITC_DATOS-MENGESTD4 = ITC_INDICE-MENGESTD.
            ITC_DATOS-MENGEDIF4 = ITC_INDICE-MENGEDIF.
            ITC_DATOS-VERPR14 = ITC_INDICE-VERPR1.
            ITC_DATOS-VERPR24 = ITC_INDICE-VERPR2.
        ENDIF.
        DA_CNT2 = DA_CNT2 + 1.
    ENDIF.

    IF DA_CNT GE DA_CNT2.
        READ TABLE ITC_PRODUC INDEX DA_CNT2.
        READ TABLE ITC_INDICE WITH KEY MATNRB = ITC_PRODUC-MATNR
                                       MATNRC = ITC_DATOS-MATNRC.
        IF SY-SUBRC = 0.
            ITC_DATOS-MENGEMES5 = ITC_INDICE-MENGEMES.
            ITC_DATOS-MENGESTD5 = ITC_INDICE-MENGESTD.
            ITC_DATOS-MENGEDIF5 = ITC_INDICE-MENGEDIF.
            ITC_DATOS-VERPR15 = ITC_INDICE-VERPR1.
            ITC_DATOS-VERPR25 = ITC_INDICE-VERPR2.
        ENDIF.
        DA_CNT2 = DA_CNT2 + 1.
    ENDIF.

    IF DA_CNT GE DA_CNT2.
        READ TABLE ITC_PRODUC INDEX DA_CNT2.
        READ TABLE ITC_INDICE WITH KEY MATNRB = ITC_PRODUC-MATNR
                                       MATNRC = ITC_DATOS-MATNRC.
        IF SY-SUBRC = 0.
            ITC_DATOS-MENGEMES6 = ITC_INDICE-MENGEMES.
            ITC_DATOS-MENGESTD6 = ITC_INDICE-MENGESTD.
            ITC_DATOS-MENGEDIF6 = ITC_INDICE-MENGEDIF.
            ITC_DATOS-VERPR16 = ITC_INDICE-VERPR1.
            ITC_DATOS-VERPR26 = ITC_INDICE-VERPR2.
        ENDIF.
        DA_CNT2 = DA_CNT2 + 1.
    ENDIF.

    IF DA_CNT GE DA_CNT2.
        READ TABLE ITC_PRODUC INDEX DA_CNT2.
        READ TABLE ITC_INDICE WITH KEY MATNRB = ITC_PRODUC-MATNR
                                       MATNRC = ITC_DATOS-MATNRC.
        IF SY-SUBRC = 0.
            ITC_DATOS-MENGEMES7 = ITC_INDICE-MENGEMES.
            ITC_DATOS-MENGESTD7 = ITC_INDICE-MENGESTD.
            ITC_DATOS-MENGEDIF7 = ITC_INDICE-MENGEDIF.
            ITC_DATOS-VERPR17 = ITC_INDICE-VERPR1.
            ITC_DATOS-VERPR27 = ITC_INDICE-VERPR2.
        ENDIF.
        DA_CNT2 = DA_CNT2 + 1.
    ENDIF.

    IF DA_CNT GE DA_CNT2.
        READ TABLE ITC_PRODUC INDEX DA_CNT2.
        READ TABLE ITC_INDICE WITH KEY MATNRB = ITC_PRODUC-MATNR
                                       MATNRC = ITC_DATOS-MATNRC.
        IF SY-SUBRC = 0.
            ITC_DATOS-MENGEMES8 = ITC_INDICE-MENGEMES.
            ITC_DATOS-MENGESTD8 = ITC_INDICE-MENGESTD.
            ITC_DATOS-MENGEDIF8 = ITC_INDICE-MENGEDIF.
            ITC_DATOS-VERPR18 = ITC_INDICE-VERPR1.
            ITC_DATOS-VERPR28 = ITC_INDICE-VERPR2.
        ENDIF.
        DA_CNT2 = DA_CNT2 + 1.
    ENDIF.

    IF DA_CNT GE DA_CNT2.
        READ TABLE ITC_PRODUC INDEX DA_CNT2.
        READ TABLE ITC_INDICE WITH KEY MATNRB = ITC_PRODUC-MATNR
                                       MATNRC = ITC_DATOS-MATNRC.
        IF SY-SUBRC = 0.
            ITC_DATOS-MENGEMES9 = ITC_INDICE-MENGEMES.
            ITC_DATOS-MENGESTD9 = ITC_INDICE-MENGESTD.
            ITC_DATOS-MENGEDIF9 = ITC_INDICE-MENGEDIF.
            ITC_DATOS-VERPR19 = ITC_INDICE-VERPR1.
            ITC_DATOS-VERPR29 = ITC_INDICE-VERPR2.
        ENDIF.
        DA_CNT2 = DA_CNT2 + 1.
    ENDIF.

    IF DA_CNT GE DA_CNT2.
        READ TABLE ITC_PRODUC INDEX DA_CNT2.
        READ TABLE ITC_INDICE WITH KEY MATNRB = ITC_PRODUC-MATNR
                                       MATNRC = ITC_DATOS-MATNRC.
        IF SY-SUBRC = 0.
            ITC_DATOS-MENGEMES10 = ITC_INDICE-MENGEMES.
            ITC_DATOS-MENGESTD10 = ITC_INDICE-MENGESTD.
            ITC_DATOS-MENGEDIF10 = ITC_INDICE-MENGEDIF.
            ITC_DATOS-VERPR110 = ITC_INDICE-VERPR1.
            ITC_DATOS-VERPR210 = ITC_INDICE-VERPR2.
        ENDIF.
        DA_CNT2 = DA_CNT2 + 1.
    ENDIF.

    IF DA_CNT GE DA_CNT2.
        READ TABLE ITC_PRODUC INDEX DA_CNT2.
        READ TABLE ITC_INDICE WITH KEY MATNRB = ITC_PRODUC-MATNR
                                       MATNRC = ITC_DATOS-MATNRC.
        IF SY-SUBRC = 0.
            ITC_DATOS-MENGEMES11 = ITC_INDICE-MENGEMES.
            ITC_DATOS-MENGESTD11 = ITC_INDICE-MENGESTD.
            ITC_DATOS-MENGEDIF11 = ITC_INDICE-MENGEDIF.
            ITC_DATOS-VERPR112 = ITC_INDICE-VERPR1.
            ITC_DATOS-VERPR212 = ITC_INDICE-VERPR2.
        ENDIF.
        DA_CNT2 = DA_CNT2 + 1.
    ENDIF.

    IF DA_CNT GE DA_CNT2.
        READ TABLE ITC_PRODUC INDEX DA_CNT2.
        READ TABLE ITC_INDICE WITH KEY MATNRB = ITC_PRODUC-MATNR
                                       MATNRC = ITC_DATOS-MATNRC.
        IF SY-SUBRC = 0.
            ITC_DATOS-MENGEMES12 = ITC_INDICE-MENGEMES.
            ITC_DATOS-MENGESTD12 = ITC_INDICE-MENGESTD.
            ITC_DATOS-MENGEDIF12 = ITC_INDICE-MENGEDIF.
            ITC_DATOS-VERPR112 = ITC_INDICE-VERPR1.
            ITC_DATOS-VERPR212 = ITC_INDICE-VERPR2.
        ENDIF.
        DA_CNT2 = DA_CNT2 + 1.
    ENDIF.

    IF DA_CNT GE DA_CNT2.
        READ TABLE ITC_PRODUC INDEX DA_CNT2.
        READ TABLE ITC_INDICE WITH KEY MATNRB = ITC_PRODUC-MATNR
                                       MATNRC = ITC_DATOS-MATNRC.
        IF SY-SUBRC = 0.
            ITC_DATOS-MENGEMES13 = ITC_INDICE-MENGEMES.
            ITC_DATOS-MENGESTD13 = ITC_INDICE-MENGESTD.
            ITC_DATOS-MENGEDIF13 = ITC_INDICE-MENGEDIF.
            ITC_DATOS-VERPR113 = ITC_INDICE-VERPR1.
            ITC_DATOS-VERPR213 = ITC_INDICE-VERPR2.
        ENDIF.
        DA_CNT2 = DA_CNT2 + 1.
    ENDIF.

    IF DA_CNT GE DA_CNT2.
        READ TABLE ITC_PRODUC INDEX DA_CNT2.
        READ TABLE ITC_INDICE WITH KEY MATNRB = ITC_PRODUC-MATNR
                                       MATNRC = ITC_DATOS-MATNRC.
        IF SY-SUBRC = 0.
            ITC_DATOS-MENGEMES14 = ITC_INDICE-MENGEMES.
            ITC_DATOS-MENGESTD14 = ITC_INDICE-MENGESTD.
            ITC_DATOS-MENGEDIF14 = ITC_INDICE-MENGEDIF.
            ITC_DATOS-VERPR114 = ITC_INDICE-VERPR1.
            ITC_DATOS-VERPR214 = ITC_INDICE-VERPR2.
        ENDIF.
        DA_CNT2 = DA_CNT2 + 1.
    ENDIF.

    IF DA_CNT GE DA_CNT2.
        READ TABLE ITC_PRODUC INDEX DA_CNT2.
        READ TABLE ITC_INDICE WITH KEY MATNRB = ITC_PRODUC-MATNR
                                       MATNRC = ITC_DATOS-MATNRC.
        IF SY-SUBRC = 0.
            ITC_DATOS-MENGEMES15 = ITC_INDICE-MENGEMES.
            ITC_DATOS-MENGESTD15 = ITC_INDICE-MENGESTD.
            ITC_DATOS-MENGEDIF15 = ITC_INDICE-MENGEDIF.
            ITC_DATOS-VERPR115 = ITC_INDICE-VERPR1.
            ITC_DATOS-VERPR215 = ITC_INDICE-VERPR2.
        ENDIF.
        DA_CNT2 = DA_CNT2 + 1.
    ENDIF.

    DA_CNT2 = 1.

    READ TABLE ITC_PRECIO WITH KEY MATNRPR = ITC_MOVI-MATNRC.

    ITC_DATOS-VERPRMAT = ITC_PRECIO-VERPRMAT.

    APPEND ITC_DATOS.

ENDLOOP.


CLEAR ITC_DATOS.
APPEND ITC_DATOS.

DA_CNT2 = 1.
IF DA_CNT GE DA_CNT2.
    READ TABLE ITC_PRODUC INDEX DA_CNT2.
    READ TABLE ITC_TCOMP  WITH KEY MATNRB = ITC_PRODUC-MATNR.
    IF SY-SUBRC = 0.
        CLEAR ITC_DATOS.
        ITC_DATOS-MATNRC = 'A'.
        ITC_DATOS-MAKTX = 'Bs/KEX.'.
        ITC_DATOS-VERPR11 = ITC_TCOMP-VERPR1T.
        ITC_DATOS-VERPR21 = ITC_TCOMP-VERPR2T.
        APPEND ITC_DATOS.
        ITC_DATOS-MATNRC = 'B'.
        ITC_DATOS-MAKTX = 'MM Bs.'.
        ITC_DATOS-VERPR11 = ITC_TCOMP-VERPR1MM.
        ITC_DATOS-VERPR21 = ITC_TCOMP-VERPR2MM.
        APPEND ITC_DATOS.
        ITC_DATOS-MATNRC = 'C'.
        ITC_DATOS-MAKTX = '%Ext. T.G.(p/v).'.
        ITC_DATOS-VERPR11 = ITC_TCOMP-UMREZTG.
        APPEND ITC_DATOS.
        ITC_DATOS-MATNRC = 'D'.
        ITC_DATOS-MAKTX = 'Bs/HL T.G.'.
        ITC_DATOS-VERPR11 = ITC_TCOMP-VERPRTG1.
        ITC_DATOS-VERPR21 = ITC_TCOMP-VERPRTG2.
        APPEND ITC_DATOS.
        ITC_DATOS-MATNRC = 'E'.
        ITC_DATOS-MAKTX = 'Bs/HL T.G. Est.'.
        ITC_DATOS-VERPR11 = ITC_TCOMP-VERPRTGE.
        APPEND ITC_DATOS.
    ENDIF.
    DA_CNT2 = DA_CNT2 + 1.
ENDIF.

IF DA_CNT GE DA_CNT2.
    READ TABLE ITC_PRODUC INDEX DA_CNT2.
    READ TABLE ITC_TCOMP  WITH KEY MATNRB = ITC_PRODUC-MATNR.
    IF SY-SUBRC = 0.
        READ TABLE ITC_DATOS WITH KEY MATNRC = 'A'.
        ITC_DATOS-MAKTX = 'Bs/KEX.'.
        ITC_DATOS-VERPR12 = ITC_TCOMP-VERPR1T.
        ITC_DATOS-VERPR22 = ITC_TCOMP-VERPR2T.
        MODIFY ITC_DATOS INDEX SY-TABIX.
        READ TABLE ITC_DATOS WITH KEY MATNRC = 'B'.
        ITC_DATOS-MAKTX = 'MM Bs.'.
        ITC_DATOS-VERPR12 = ITC_TCOMP-VERPR1MM.
        ITC_DATOS-VERPR22 = ITC_TCOMP-VERPR2MM.
        MODIFY ITC_DATOS INDEX SY-TABIX.
        READ TABLE ITC_DATOS WITH KEY MATNRC = 'C'.
        ITC_DATOS-MAKTX = '%Ext. T.G.(p/v).'.
        ITC_DATOS-VERPR12 = ITC_TCOMP-UMREZTG.
        MODIFY ITC_DATOS INDEX SY-TABIX.
        READ TABLE ITC_DATOS WITH KEY MATNRC = 'D'.
        ITC_DATOS-MAKTX = 'Bs/HL T.G.'.
        ITC_DATOS-VERPR12 = ITC_TCOMP-VERPRTG1.
        ITC_DATOS-VERPR22 = ITC_TCOMP-VERPRTG2.
        MODIFY ITC_DATOS INDEX SY-TABIX.
        READ TABLE ITC_DATOS WITH KEY MATNRC = 'E'.
        ITC_DATOS-MAKTX = 'Bs/HL T.G. Est.'.
        ITC_DATOS-VERPR12 = ITC_TCOMP-VERPRTGE.
        MODIFY ITC_DATOS INDEX SY-TABIX.
    ENDIF.
    DA_CNT2 = DA_CNT2 + 1.
ENDIF.

IF DA_CNT GE DA_CNT2.
    READ TABLE ITC_PRODUC INDEX DA_CNT2.
    READ TABLE ITC_TCOMP  WITH KEY MATNRB = ITC_PRODUC-MATNR.
    IF SY-SUBRC = 0.
        READ TABLE ITC_DATOS WITH KEY MATNRC = 'A'.
        ITC_DATOS-MAKTX = 'Bs/KEX.'.
        ITC_DATOS-VERPR13 = ITC_TCOMP-VERPR1T.
        ITC_DATOS-VERPR23 = ITC_TCOMP-VERPR2T.
        MODIFY ITC_DATOS INDEX SY-TABIX.
        READ TABLE ITC_DATOS WITH KEY MATNRC = 'B'.
        ITC_DATOS-MAKTX = 'MM Bs.'.
        ITC_DATOS-VERPR13 = ITC_TCOMP-VERPR1MM.
        ITC_DATOS-VERPR23 = ITC_TCOMP-VERPR2MM.
        MODIFY ITC_DATOS INDEX SY-TABIX.
        READ TABLE ITC_DATOS WITH KEY MATNRC = 'C'.
        ITC_DATOS-MAKTX = '%Ext. T.G.(p/v).'.
        ITC_DATOS-VERPR13 = ITC_TCOMP-UMREZTG.
        MODIFY ITC_DATOS INDEX SY-TABIX.
        READ TABLE ITC_DATOS WITH KEY MATNRC = 'D'.
        ITC_DATOS-MAKTX = 'Bs/HL T.G.'.
        ITC_DATOS-VERPR13 = ITC_TCOMP-VERPRTG1.
        ITC_DATOS-VERPR23 = ITC_TCOMP-VERPRTG2.
        MODIFY ITC_DATOS INDEX SY-TABIX.
        READ TABLE ITC_DATOS WITH KEY MATNRC = 'E'.
        ITC_DATOS-MAKTX = 'Bs/HL T.G. Est.'.
        ITC_DATOS-VERPR13 = ITC_TCOMP-VERPRTGE.
        MODIFY ITC_DATOS INDEX SY-TABIX.
    ENDIF.
    DA_CNT2 = DA_CNT2 + 1.
ENDIF.

IF DA_CNT GE DA_CNT2.
    READ TABLE ITC_PRODUC INDEX DA_CNT2.
    READ TABLE ITC_TCOMP  WITH KEY MATNRB = ITC_PRODUC-MATNR.
    IF SY-SUBRC = 0.
        READ TABLE ITC_DATOS WITH KEY MATNRC = 'A'.
        ITC_DATOS-MAKTX = 'Bs/KEX.'.
        ITC_DATOS-VERPR14 = ITC_TCOMP-VERPR1T.
        ITC_DATOS-VERPR24 = ITC_TCOMP-VERPR2T.
        MODIFY ITC_DATOS INDEX SY-TABIX.
        READ TABLE ITC_DATOS WITH KEY MATNRC = 'B'.
        ITC_DATOS-MAKTX = 'MM Bs.'.
        ITC_DATOS-VERPR14 = ITC_TCOMP-VERPR1MM.
        ITC_DATOS-VERPR24 = ITC_TCOMP-VERPR2MM.
        MODIFY ITC_DATOS INDEX SY-TABIX.
        READ TABLE ITC_DATOS WITH KEY MATNRC = 'C'.
        ITC_DATOS-MAKTX = '%Ext. T.G.(p/v).'.
        ITC_DATOS-VERPR14 = ITC_TCOMP-UMREZTG.
        MODIFY ITC_DATOS INDEX SY-TABIX.
        READ TABLE ITC_DATOS WITH KEY MATNRC = 'D'.
        ITC_DATOS-MAKTX = 'Bs/HL T.G.'.
        ITC_DATOS-VERPR14 = ITC_TCOMP-VERPRTG1.
        ITC_DATOS-VERPR24 = ITC_TCOMP-VERPRTG2.
        MODIFY ITC_DATOS INDEX SY-TABIX.
        READ TABLE ITC_DATOS WITH KEY MATNRC = 'E'.
        ITC_DATOS-MAKTX = 'Bs/HL T.G. Est.'.
        ITC_DATOS-VERPR14 = ITC_TCOMP-VERPRTGE.
        MODIFY ITC_DATOS INDEX SY-TABIX.
    ENDIF.
    DA_CNT2 = DA_CNT2 + 1.
ENDIF.

IF DA_CNT GE DA_CNT2.
    READ TABLE ITC_PRODUC INDEX DA_CNT2.
    READ TABLE ITC_TCOMP  WITH KEY MATNRB = ITC_PRODUC-MATNR.
    IF SY-SUBRC = 0.
        READ TABLE ITC_DATOS WITH KEY MATNRC = 'A'.
        ITC_DATOS-MAKTX = 'Bs/KEX.'.
        ITC_DATOS-VERPR15 = ITC_TCOMP-VERPR1T.
        ITC_DATO



Comentarios
Buscar
¡Sólo los usuarios registrados pueden escribir comentarios!

3.26 Copyright (C) 2008 Compojoom.com / Copyright (C) 2007 Alain Georgette / Copyright (C) 2006 Frantisek Hliva. All rights reserved."

 
home search