258 lines
9.6 KiB
Plaintext
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
|