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

258 lines
9.6 KiB
Plaintext

{
-------------------------------------------------------------------------------
PROGRAMA : PRPRRP009
OBJETIVO : Reporte Diario de Manofactura
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 prprrp009()
#WHENEVER ERROR CONTINUE
DEFINE prt_datos9 RECORD
nomenclatura CHAR(10),
cod_prod LIKE cttb00001.cod_prod,
factor LIKE prtb00006.fact_conv,
fecha DATE,
cantidad INTEGER
END RECORD
OPTIONS
FORM LINE 8,
ERROR LINE 23,
COMMENT LINE 21
OPEN FORM prfmrp009 FROM "prfmrp009"
DISPLAY FORM prfmrp009
CALL pantalla()
DISPLAY "prprrp009" AT 4,3
DISPLAY "Reporte Diario de Manofactura" AT 6,25
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
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.cod_prod,a.fact_conv,b.fecha,SUM(b.cantidad)
FROM cttb00003 b,cttb00001 c,OUTER prtb00006 a
WHERE b.cod_prod = c.cod_prod AND b.cod_prod = a.cod_prod AND
YEAR(b.fecha) = YEAR(fecha) AND b.fecha <= fecha AND
b.status_t IS NULL AND b.cod_prod BETWEEN 700 AND 1399
GROUP BY 1,2,3,4
DISPLAY "Buscando Informacion... Espere Por Favor" AT 19,14
START REPORT reporte_9 TO "C:\\archivo"
DISPLAY "Impresion En Proceso... Espere Por Favor" AT 19,14
FOREACH busca INTO prt_datos9.*
IF prt_datos9.factor IS NULL THEN
LET prt_datos9.factor = 1
END IF
IF prt_datos9.cantidad <> 0 THEN
LET prt_datos9.cantidad = prt_datos9.cantidad*prt_datos9.factor
END IF
DISPLAY " " AT 20,14
DISPLAY prt_datos9.nomenclatura AT 20,14
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = FALSE
RETURN
END IF
OUTPUT TO REPORT reporte_9(prt_datos9.*)
END FOREACH
FINISH REPORT reporte_9
RUN "type C:\\archivo > %USPRINT%" END FUNCTION
# Rutina de Impresion de las informaciones
REPORT reporte_9(x)
# Variable para tomar las informaciones
DEFINE x RECORD
nomenclatura CHAR(10),
cod_prod LIKE cttb00001.cod_prod,
factor LIKE prtb00006.fact_conv,
fecha DATE,
cantidad 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.cod_prod,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, "prprrp009",
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, " Reporte Diario de Manofactura",
COLUMN 106, hora
SKIP 1 LINE
PRINT COLUMN 1, "FECHA: ",fecha USING "dd/mm/yy"
PRINT COLUMN 1,
"--------------------------------------------------------",
"--------------------------------------------------------"
PRINT COLUMN 18, "| PILAS PRODUCIDAS ",
COLUMN 54, "| PILAS CERRADAS ",
COLUMN 90, "| PROM. DIA PROD. |"
PRINT COLUMN 1,
"--------------------------------------------------------",
"--------------------------------------------------------"
PRINT COLUMN 1, "TIPO",
COLUMN 18, "| DIARIO | ACUM. MES | ACUM. ANO ",
COLUMN 54, "| DIARIO | ACUM. MES | ACUM. ANO ",
COLUMN 90, "|ACUM. MES.|ACUM. ANO.|"
PRINT COLUMN 1,
"--------------------------------------------------------",
"--------------------------------------------------------"
AFTER GROUP OF x.nomenclatura
LET cantidad2 = GROUP SUM(x.cantidad)
WHERE x.fecha = fecha AND x.cod_prod >= 1100
LET cantidad3 = GROUP SUM(x.cantidad)
WHERE x.fecha >= fecha1 AND x.fecha <= fecha AND
x.cod_prod >= 1100
LET cantidad4 = GROUP SUM(x.cantidad)
WHERE x.fecha <= fecha AND x.cod_prod >= 1100
PRINT COLUMN 1, x.nomenclatura CLIPPED,
COLUMN 18, "|",GROUP SUM(x.cantidad)
WHERE x.fecha = fecha AND x.cod_prod >= 1100
USING "###,###,###",
"|",GROUP SUM(x.cantidad)
WHERE x.fecha >= fecha1 AND x.cod_prod >= 1100
AND x.fecha <= fecha USING "###,###,###",
"|",GROUP SUM(x.cantidad)
WHERE x.fecha <= fecha AND x.cod_prod >= 1100
USING "###,###,###",
COLUMN 54, "|",GROUP SUM(x.cantidad)
WHERE x.fecha = fecha AND x.cod_prod <= 999
USING "###,###,###",
"|",GROUP SUM(x.cantidad)
WHERE x.fecha >= fecha1 AND x.fecha <= fecha
AND x.cod_prod <= 999
USING "###,###,###",
"|",GROUP SUM(x.cantidad)
WHERE x.fecha <= fecha AND x.cod_prod <= 999
USING "###,###,###",
COLUMN 90, "|",(cantidad2/cantidad3)*100 USING "###,###.##",
"|",(cantidad2/cantidad4)*100 USING "###,###.##","|"
ON LAST ROW
PRINT COLUMN 1,
"--------------------------------------------------------",
"--------------------------------------------------------"
LET cantidad2 = SUM(x.cantidad)
WHERE x.fecha = fecha AND x.cod_prod >= 1100
LET cantidad3 = SUM(x.cantidad)
WHERE x.fecha >= fecha1 AND x.fecha <= fecha AND
x.cod_prod >= 1100
LET cantidad4 = SUM(x.cantidad)
WHERE x.fecha <= fecha AND x.cod_prod >= 1100
PRINT COLUMN 1, "TOTAL --->",
COLUMN 18, "|",SUM(x.cantidad)
WHERE x.fecha = fecha AND x.cod_prod >= 1100
USING "###,###,###",
"|",SUM(x.cantidad)
WHERE x.fecha >= fecha1 AND x.fecha <= fecha AND
x.cod_prod >= 1100
USING "###,###,###",
"|",SUM(x.cantidad)
WHERE x.fecha <= fecha AND x.cod_prod >= 1100
USING "###,###,###",
COLUMN 54, "|",SUM(x.cantidad)
WHERE x.fecha = fecha AND x.cod_prod <= 999
USING "###,###,###",
"|",SUM(x.cantidad)
WHERE x.fecha >= fecha1 AND x.fecha <= fecha AND
x.cod_prod <= 999
USING "###,###,###",
"|",SUM(x.cantidad)
WHERE x.fecha <= fecha AND x.cod_prod <= 999
USING "###,###,###",
COLUMN 90, "|",(cantidad2/cantidad3)*100 USING "###,###.##",
"|",(cantidad2/cantidad4)*100 USING "###,###.##","|"
PRINT COLUMN 1,
"--------------------------------------------------------",
"--------------------------------------------------------"
PRINT comp_off
END REPORT