257 lines
9.4 KiB
Plaintext
257 lines
9.4 KiB
Plaintext
{
|
|
-------------------------------------------------------------------------------
|
|
PROGRAMA : PRPRRP010
|
|
OBJETIVO : Relacion Productos Terminados
|
|
PROGRAMADOR : Tadeo A. Ferreras
|
|
FECHA REALIZACION : Oct. 04, 1994
|
|
-------------------------------------------------------------------------------
|
|
}
|
|
|
|
GLOBALS "prprgb000.4gl"
|
|
|
|
DEFINE mes_d CHAR(10)
|
|
DEFINE ano,mes SMALLINT
|
|
DEFINE ano1,ano2 CHAR(4)
|
|
DEFINE fecha,fecha1,fecha3,fecha4 DATE
|
|
DEFINE cantidad2,cantidad3,cantidad4,total DECIMAL(12,2)
|
|
DEFINE fecha_inicial,fecha_final DATE
|
|
FUNCTION prprrp010()
|
|
#WHENEVER ERROR CONTINUE
|
|
|
|
DEFINE prt_datos10 RECORD
|
|
nomenclatura CHAR(10),
|
|
fecha DATE,
|
|
cod_n SMALLINT,
|
|
cod_grupo SMALLINT,
|
|
cod_tipo SMALLINT,
|
|
cod_sec SMALLINT,
|
|
num_doc INTEGER,
|
|
cod_mov SMALLINT,
|
|
cantidad INTEGER,
|
|
cantidad3 INTEGER
|
|
END RECORD
|
|
|
|
OPTIONS
|
|
FORM LINE 8,
|
|
ERROR LINE 23,
|
|
COMMENT LINE 21
|
|
|
|
OPEN FORM prfmrp010 FROM "prfmrp009"
|
|
DISPLAY FORM prfmrp010
|
|
CALL pantalla()
|
|
DISPLAY "prprrp010" AT 4,3
|
|
DISPLAY "Relacion Producto Terminado" AT 6,26
|
|
|
|
LET tipo_papel = 1
|
|
CALL msgrp000(tipo_papel)
|
|
########### Captura de valores para el criterio de busqueda ############
|
|
INPUT BY NAME fecha
|
|
|
|
AFTER FIELD fecha
|
|
IF fecha IS NULL THEN
|
|
LET numero_msg = 16
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD fecha
|
|
END IF
|
|
LET mes = MONTH(fecha)
|
|
LET ano1 = YEAR(fecha) USING "&&&&"
|
|
|
|
SELECT a.fecha_inicio INTO fecha1 FROM prdtable a
|
|
WHERE a.mes = mes AND a.ano = ano1
|
|
|
|
SELECT a.fecha_inicio INTO fecha3 FROM prdtable a
|
|
WHERE a.mes = 1 AND a.ano = ano1
|
|
|
|
END INPUT
|
|
|
|
########### Facilidad para cancelar la variacioncon la tecla DELETE ####
|
|
|
|
IF int_flag THEN
|
|
LET numero_msg = 2
|
|
CALL msg(numero_msg)
|
|
LET int_flag = false
|
|
RETURN
|
|
END IF
|
|
|
|
DECLARE busca CURSOR FOR
|
|
SELECT c.nomenclatura,b.fecha,b.cod_n,b.cod_grupo,b.cod_tipo,
|
|
b.cod_sec,b.num_doc,b.cod_mov,b.cantidad_2
|
|
FROM iptb00006 b,iptb00002 c
|
|
WHERE b.cod_n = c.cod_n AND b.cod_grupo = c.cod_grupo AND
|
|
b.cod_tipo = c.cod_tipo AND b.cod_sec = c.cod_sec AND
|
|
b.fecha BETWEEN fecha3 AND fecha AND b.status_t IS NULL AND
|
|
b.cod_n = 3 ORDER BY 1
|
|
|
|
DISPLAY "Buscando Informacion... Espere Por Favor" AT 19,14
|
|
|
|
START REPORT reporte_10 TO "C:\\archivo"
|
|
DISPLAY "Impresion En Proceso... Espere Por Favor" AT 19,14
|
|
|
|
FOREACH busca INTO prt_datos10.*
|
|
# LET prt_datos10.cantidad1 = 0
|
|
# LET prt_datos10.cantidad2 = 0
|
|
LET prt_datos10.cantidad3 = 0
|
|
|
|
DISPLAY " " AT 20,14
|
|
DISPLAY prt_datos10.nomenclatura AT 20,14
|
|
|
|
IF int_flag THEN
|
|
LET numero_msg = 2
|
|
CALL msg(numero_msg)
|
|
LET int_flag = FALSE
|
|
RETURN
|
|
END IF
|
|
|
|
SELECT b.cantidad INTO prt_datos10.cantidad3
|
|
FROM vetb00014 b
|
|
WHERE b.cod_n=prt_datos10.cod_n AND b.cod_grupo=prt_datos10.cod_grupo AND
|
|
b.cod_tipo=prt_datos10.cod_tipo AND b.cod_sec=prt_datos10.cod_sec
|
|
|
|
IF prt_datos10.cantidad3 IS NULL OR prt_datos10.cantidad3 = 0 THEN
|
|
LET prt_datos10.cantidad3 = 0
|
|
END IF
|
|
|
|
OUTPUT TO REPORT reporte_10(prt_datos10.*)
|
|
END FOREACH
|
|
FINISH REPORT reporte_10
|
|
RUN "type C:\\archivo > %USPRINT%" END FUNCTION
|
|
|
|
# Rutina de Impresion de las informaciones
|
|
REPORT reporte_10(x)
|
|
|
|
# Variable para tomar las informaciones
|
|
DEFINE x RECORD
|
|
nomenclatura CHAR(10),
|
|
fecha DATE,
|
|
cod_n SMALLINT,
|
|
cod_grupo SMALLINT,
|
|
cod_tipo SMALLINT,
|
|
cod_sec SMALLINT,
|
|
num_doc INTEGER,
|
|
cod_mov SMALLINT,
|
|
cantidad INTEGER,
|
|
cantidad3 INTEGER
|
|
END RECORD
|
|
|
|
DEFINE doble_on CHAR(3)
|
|
DEFINE doble_off CHAR(3)
|
|
DEFINE negrillas_on CHAR(6)
|
|
DEFINE negrillas_off CHAR(6)
|
|
DEFINE comp_on CHAR(2)
|
|
DEFINE comp_off CHAR(2)
|
|
DEFINE doce CHAR(2)
|
|
DEFINE normal CHAR(3)
|
|
DEFINE hora CHAR(5)
|
|
|
|
OUTPUT
|
|
TOP MARGIN 0
|
|
LEFT MARGIN 0
|
|
BOTTOM MARGIN 2
|
|
ORDER BY x.nomenclatura,x.fecha
|
|
|
|
FORMAT
|
|
|
|
PAGE HEADER
|
|
|
|
# Validacion de los caracteres ascii
|
|
LET doble_on = ASCII 001
|
|
LET doble_off = ASCII 002
|
|
LET negrillas_on = ASCII 27, ASCII 098
|
|
LET negrillas_off = ASCII 27, ASCII 099
|
|
LET comp_on = ASCII 15
|
|
LET comp_off = ASCII 18
|
|
LET doce = ASCII 27, ASCII 77
|
|
LET normal = ASCII 029
|
|
LET hora = time
|
|
|
|
# Impresion de los encabezados
|
|
PRINT comp_on
|
|
PRINT COLUMN 1, "prprrp010",
|
|
COLUMN 33, "R A Y . O . V A C D O M I N I C A N A, S. A.",
|
|
COLUMN 103, "Pag. ", pageno using "###"
|
|
PRINT COLUMN 33, " Sistema de Produccion",
|
|
COLUMN 103, today using "dd/mm/yy"
|
|
PRINT COLUMN 33, " RELACION PRODUCTOS TERMINADOS ",
|
|
COLUMN 106, hora
|
|
SKIP 1 LINE
|
|
PRINT COLUMN 1, "FECHA: ",fecha USING "dd/mm/yy"
|
|
PRINT COLUMN 1,
|
|
"--------------------------------------------------------",
|
|
"--------------------------------------------------------"
|
|
|
|
PRINT COLUMN 18, "| PILAS EMPACADAS ",
|
|
COLUMN 54, "| VENTAS ",
|
|
COLUMN 90, "| EXISTENCIA |"
|
|
|
|
PRINT COLUMN 1,
|
|
"--------------------------------------------------------",
|
|
"--------------------------------------------------------"
|
|
|
|
PRINT COLUMN 1, "TIPO",
|
|
COLUMN 18, "| DIARIO | ACUM. MES | ACUM. ANO ",
|
|
COLUMN 54, "| DIARIO | ACUM. MES | ACUM. ANO ",
|
|
COLUMN 90, "| UNIDADES | CAJAS |"
|
|
|
|
PRINT COLUMN 1,
|
|
"--------------------------------------------------------",
|
|
"--------------------------------------------------------"
|
|
|
|
AFTER GROUP OF x.nomenclatura
|
|
DISPLAY x.nomenclatura AT 20,14
|
|
|
|
PRINT COLUMN 1, x.nomenclatura CLIPPED,
|
|
COLUMN 18, "|",GROUP SUM(x.cantidad) WHERE x.fecha = fecha
|
|
AND x.cod_mov =20 USING "###,###,###",
|
|
"|",GROUP SUM(x.cantidad) WHERE x.fecha >= fecha1
|
|
AND x.fecha <= fecha AND x.cod_mov =20
|
|
USING "###,###,###",
|
|
"|",GROUP SUM(x.cantidad) WHERE x.fecha <= fecha
|
|
AND x.cod_mov =20 USING "###,###,###",
|
|
COLUMN 54, "|",GROUP SUM(x.cantidad) WHERE x.fecha = fecha
|
|
AND x.cod_mov >=30 AND x.cod_mov <= 31
|
|
USING "###,###,###",
|
|
"|",GROUP SUM(x.cantidad) WHERE x.fecha >= fecha1
|
|
AND x.fecha <= fecha AND x.cod_mov >=30 AND
|
|
x.cod_mov <= 31 USING "###,###,###",
|
|
"|",GROUP SUM(x.cantidad) WHERE x.fecha <= fecha
|
|
AND x.cod_mov >=30 AND x.cod_mov <= 31
|
|
USING "###,###,###",
|
|
COLUMN 90, "|",GROUP SUM(x.cantidad) USING "--,---,---",
|
|
"|",(GROUP SUM(x.cantidad))/GROUP AVG(x.cantidad3)
|
|
USING "--,---,---","|"
|
|
|
|
ON LAST ROW
|
|
|
|
PRINT COLUMN 1,
|
|
"--------------------------------------------------------",
|
|
"--------------------------------------------------------"
|
|
|
|
PRINT COLUMN 1, "TOTAL --->",
|
|
COLUMN 18, "|",SUM(x.cantidad) WHERE x.fecha = fecha
|
|
AND x.cod_mov =20 USING "###,###,###",
|
|
"|",SUM(x.cantidad) WHERE x.fecha >= fecha1
|
|
AND x.fecha <= fecha AND x.cod_mov =20
|
|
USING "###,###,###",
|
|
"|",SUM(x.cantidad) WHERE x.fecha <= fecha
|
|
AND x.cod_mov =20 USING "###,###,###",
|
|
COLUMN 54, "|",SUM(x.cantidad) WHERE x.fecha = fecha
|
|
AND x.cod_mov >=30 AND x.cod_mov <= 31
|
|
USING "###,###,###",
|
|
"|",SUM(x.cantidad) WHERE x.fecha >= fecha1
|
|
AND x.fecha <= fecha AND x.cod_mov >=30 AND
|
|
x.cod_mov <= 31 USING "###,###,###",
|
|
"|",SUM(x.cantidad) WHERE x.fecha <= fecha
|
|
AND x.cod_mov >=30 AND x.cod_mov <= 31
|
|
USING "###,###,###",
|
|
COLUMN 90, "|",SUM(x.cantidad) USING "--,---,---",
|
|
"|",(SUM(x.cantidad))/AVG(x.cantidad3)
|
|
USING "--,---,---","|"
|
|
|
|
PRINT COLUMN 1,
|
|
"--------------------------------------------------------",
|
|
"--------------------------------------------------------"
|
|
|
|
PRINT comp_off
|
|
|
|
END REPORT
|