Files
MBS/PROYECTO/PRDIR/prprrp010.4gl
T

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