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
|