Reporte Basico

posted under by Antonio Lopez
REPORT ZANTONIO2 NO STANDARD PAGE HEADING.


*tablas de la base de datos a utilizar
TABLES: ZPEDIDOS, ZPRODXPED, ZPRODUCTO, ZMTLXPROD.

*VARIABLES Y TABLAS INTERNAS
DATA: BEGIN OF T_MAT OCCURS 0,
ID_PEDIDO LIKE ZPEDIDOS-ID_PEDIDO,
ID_PRODUCTO LIKE ZPRODUCTO-ID_PRODUCTO,
CANTIDAD LIKE ZPRODXPED-CANTIDAD,
DESCRIPCION LIKE ZPRODUCTO-DESCRIPCION,
FECHA LIKE ZPEDIDOS-FECHA,
SUM_MATERIALES TYPE P,
SUM_CANTIDAD TYPE P,
END OF T_MAT.
DATA: BEGIN OF T_AUX OCCURS 0,
ID_PRODUCTO2 LIKE ZPRODUCTO-ID_PRODUCTO,
DESCRIPCION2 LIKE ZPRODUCTO-DESCRIPCION,
CANTIDAD2 LIKE ZPRODXPED-CANTIDAD,
FECHA2 LIKE ZPEDIDOS-FECHA,
END OF T_AUX.
DATA: BEGIN OF T_AUX2 OCCURS 0,
ID_MATERIAL LIKE ZMTLXPROD-ID_MATERIAL,
CANTIDAD LIKE ZMTLXPROD-CANTIDAD,
END OF T_AUX2.
DATA: LMAT LIKE LINE OF T_MAT.
DATA: LAUX LIKE LINE OF T_AUX.
DATA: VAR TYPE P.
DATA: TPEDIDOS LIKE ZPEDIDOS OCCURS 0 WITH HEADER LINE.

*OPCIONES DE SELECCION (FECHA INICIAL Y FECHA FINAL)
SELECT-OPTIONS: RANGO FOR T_MAT-FECHA.

*CODIGO
WRITE 10'PERIODO:'.
WRITE: 60'REPORTE DE CONSUMO DE MATERIAL' COLOR 2 ON.
WRITE: /'DE', RANGO-LOW, 'AL', RANGO-HIGH.
WRITE: 63 'FECHA ACTUAL : ' INVERSE COLOR 6, SY-DATUM INVERSE COLOR 6,
SY-ULINE.
SKIP 2.

*QUERY DE SELECCION Y COPIA A TABLA INTERNA.
SELECT * INTO TABLE TPEDIDOS FROM ZPEDIDOS WHERE ZPEDIDOS~FECHA IN RANGO.
SELECT ZPRODXPED~ID_PRODUCTO ZPRODUCTO~DESCRIPCION ZPRODXPED~CANTIDAD
ZPEDIDOS~FECHA INTO TABLE T_AUX FROM ZPRODXPED
JOIN ZPEDIDOS ON ZPRODXPED~ID_PEDIDO = ZPEDIDOS~ID_PEDIDO
JOIN ZPRODUCTO ON ZPRODXPED~ID_PRODUCTO = ZPRODUCTO~ID_PRODUCTO
WHERE ZPEDIDOS~FECHA IN RANGO.

*IMPRESION DE LA TABLA DE PEDIDOS (TABLA 1)
VAR = 5.
WRITE 'PEDIDOS ACTUALES' COLOR 4 ON.
WRITE / ' '.
ULINE AT 6(100).
WRITE / ' '.
LOOP AT TPEDIDOS.
AT END OF ID_PEDIDO.
IF VAR >= 100.
VAR = 5.
WRITE /' '.
ENDIF.
WRITE: AT VAR ' ', TPEDIDOS-ID_PEDIDO, ' '.
VAR = VAR + 10.
ENDAT.
ENDLOOP.
SKIP 2.


*IMPRESION DE LA TABLA DE PRODUCTOS (TABLA 2)
WRITE 'CANTIDAD DE PRODUCTO' COLOR 4 ON.
WRITE /' '.
ULINE AT 6(46).
WRITE: /' '.
WRITE: /5 ' ', 10 'Id' COLOR 2 ON, 15 'Descripcion' COLOR 2 ON, 40
'Cantidad' COLOR 2 ON, 50 ' '.
WRITE: /' '.
ULINE AT 6(46).
WRITE /' '.
SORT T_AUX BY ID_PRODUCTO2.
LOOP AT T_AUX.
MOVE T_AUX TO LAUX.
AT END OF ID_PRODUCTO2.
SUM.
WRITE: /5 ' ', T_AUX-ID_PRODUCTO2, LAUX-DESCRIPCION2,
T_AUX-CANTIDAD2, 50 ' '.
******************************************************************
PERFORM RUTINA_MTLS USING T_AUX-ID_PRODUCTO2 T_AUX-CANTIDAD2.
******************************************************************
ENDAT.
ENDLOOP.
SKIP 2.

*IMPRESION DE LA TABLA DE MATERIALES (TABLA 3)
VAR = 1.
WRITE 'CANTIDAD DE MATERIALES Y COSTOS' COLOR 4 ON.
WRITE /' '.
ULINE AT 11(26).
WRITE: /10' ', 13 'MATERIAL' COLOR 2 ON, 21 ' ', 25 'CANTIDAD' COLOR
2 ON, 35' '.
write /' '.
ULINE AT 11(26).
WRITE /' '.
SORT T_AUX2 BY ID_MATERIAL.
LOOP AT T_AUX2.
AT END OF ID_MATERIAL.
SUM.
WRITE: /10 ' ', T_AUX2-ID_MATERIAL, 20 ' ', T_AUX2-CANTIDAD, 35
' '.
ENDAT.
AT LAST.
SUM.
WRITE: 50 'TOTAL DE DINERO REQUERIDO = ' COLOR 6 ON, T_AUX2-CANTIDAD
COLOR 6 ON.
ENDAT.
ENDLOOP.
SKIP 5.

************************************************************************
*RUTINA
************************************************************************
FORM RUTINA_MTLS USING P_PROD P_CANT.
SELECT * INTO ZMTLXPROD FROM ZMTLXPROD WHERE ID_PRODUCTO = P_PROD.
T_AUX2-ID_MATERIAL = ZMTLXPROD-ID_MATERIAL.
T_AUX2-CANTIDAD = P_CANT * ZMTLXPROD-CANTIDAD.
APPEND T_AUX2.
ENDSELECT.
ENDFORM.

0 comentarios

Make A Comment
Google
 
top