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

259 lines
8.7 KiB
Plaintext

{
-------------------------------------------------------------------------------
PROGRAMA : PRPRRP005
OBJETIVO : Reporte de Reporte Diario de produccion
PROGRAMADOR : Juan F. Soto
FECHA REALIZACION : Junio 22, 1994
-------------------------------------------------------------------------------
}
GLOBALS "prprgb000.4gl"
DEFINE fecha_inicial,fecha_final DATE
DEFINE factor DECIMAL(12,2)
FUNCTION prprrp005()
#WHENEVER ERROR CONTINUE
DEFINE prt_datos RECORD
depto CHAR(3),
num_doc LIKE cttb00003.num_doc,
fecha LIKE cttb00003.fecha,
departamento LIKE cttb00003.departamento,
nombre_d CHAR(30),
emp_no LIKE cttb00003.emp_no,
nom1 LIKE adtb00003.nom1_emp,
nom2 LIKE adtb00003.apell1_emp,
cod_mq LIKE cttb00003.cod_mq,
h_directa LIKE cttb00003.h_directa,
h_indirecta LIKE cttb00003.h_indirecta,
e_directa LIKE cttb00003.e_directa,
e_indirecta LIKE cttb00003.e_indirecta,
cod_prod LIKE cttb00003.cod_prod,
descripcion LIKE cttb00001.descripcion,
cantidad LIKE cttb00003.cantidad,
no_reg INTEGER,
fnom1_emp LIKE adtb00036.nom1_emp,
fapell1_emp LIKE adtb00036.apell1_emp
END RECORD
OPTIONS
FORM LINE 8,
ERROR LINE 23,
COMMENT LINE 21
OPEN FORM prfmrp005 FROM "prfmrp005"
DISPLAY FORM prfmrp005
CALL pantalla()
DISPLAY "prprrp005" AT 4,3
DISPLAY "Reporte de Produccion Diaria" AT 6,27
LET tipo_papel = 1
CALL msgrp000(tipo_papel)
########### Captura de valores para el criterio de busqueda ############
INPUT BY NAME fecha_inicial,fecha_final
AFTER FIELD fecha_inicial
IF fecha_inicial IS NULL THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD fecha_inicial
END IF
AFTER FIELD fecha_final
IF fecha_final IS NULL THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD fecha_final
END IF
IF fecha_final < fecha_inicial THEN
LET numero_msg = 86
CALL msg(numero_msg)
NEXT FIELD fecha_final
END IF
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
DISPLAY "Buscando Informacion... Espere Por Favor" AT 19,14
DECLARE busca CURSOR FOR
SELECT e.tipo,a.num_doc,a.fecha,a.departamento,b.nom_dpto,a.emp_no,
c.nom1_emp,c.apell1_emp,a.cod_mq,a.h_directa,
a.h_indirecta,a.e_directa,a.e_indirecta,a.cod_prod,
d.descripcion,a.cantidad,a.rowid,f.nom1_emp,f.apell1_emp
FROM cttb00003 a,adtb00001 b,outer adtb00003 c,prtb00004 e,
outer cttb00001 d, outer adtb00036 f
WHERE a.fecha between fecha_inicial and fecha_final and
a.departamento=b.departamento and a.departamento=e.departamento AND
a.emp_no = c.num_emp and a.cod_prod = d.cod_prod and
a.emp_no = f.num_emp and
a.status_t is null
ORDER BY 3,1,4,17
START REPORT reporte_5 TO "C:\\archivo"
FOREACH busca INTO prt_datos.*
IF int_flag THEN
LET int_flag = FALSE
LET numero_msg = 2
CALL msg(numero_msg)
RETURN
END IF
DISPLAY "Reporte Generandose... Espere Por Favor" AT 19,14
OUTPUT TO REPORT reporte_5(prt_datos.*)
END FOREACH
FINISH REPORT reporte_5
RUN "type C:\\archivo > %USPRINT%" END FUNCTION
# Rutina de Impresion de las informaciones
REPORT reporte_5(x)
# Variable para tomar las informaciones
DEFINE x RECORD
depto CHAR(3),
num_doc LIKE cttb00003.num_doc,
fecha LIKE cttb00003.fecha,
departamento LIKE cttb00003.departamento,
nombre_d CHAR(30),
emp_no LIKE cttb00003.emp_no,
nom1 LIKE adtb00003.nom1_emp,
nom2 LIKE adtb00003.apell1_emp,
cod_mq LIKE cttb00003.cod_mq,
h_directa LIKE cttb00003.h_directa,
h_indirecta LIKE cttb00003.h_indirecta,
e_directa LIKE cttb00003.e_directa,
e_indirecta LIKE cttb00003.e_indirecta,
cod_prod LIKE cttb00003.cod_prod,
descripcion LIKE cttb00001.descripcion,
cantidad LIKE cttb00003.cantidad,
no_reg INTEGER,
fnom1_emp LIKE adtb00036.nom1_emp,
fapell1_emp LIKE adtb00036.apell1_emp
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)
DEFINE detalle CHAR(30)
OUTPUT
TOP MARGIN 0
LEFT MARGIN 0
BOTTOM MARGIN 2
FORMAT
PAGE HEADER
# Reporte de de los caracteres ascii
LET doble_on = ASCII 014
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 3, "prprrp005",
COLUMN 46, "R A Y . O . V A C D O M I N I C A N A, S. A.",
COLUMN 120, "Pag. ",
pageno using "###"
PRINT COLUMN 46, " Sistema de Produccion",
COLUMN 120, today using "dd/mm/yy"
PRINT COLUMN 46, " Reporte de Produccion Diaria x Departamento",
COLUMN 123, hora
SKIP 1 LINE
PRINT COLUMN 3,"Periodo: ",fecha_inicial USING "dd/mm/yy",
" AL ",fecha_final USING "dd/mm/yy"
PRINT COLUMN 1,
"--------------------------------------------------------",
"--------------------------------------------------------",
"---------------------------------"
PRINT COLUMN 65, "Horas |",
COLUMN 85, "Horas |"
PRINT COLUMN 65, "Normal |",
COLUMN 85, "Extras |"
PRINT COLUMN 3, "Departamento",
COLUMN 33, " Empleados ",
COLUMN 60, "Directa",
COLUMN 70, "Indirec |",
COLUMN 80, "Directa",
COLUMN 88, "Indirec|",
COLUMN 96, "Semi-elaborados",
COLUMN 137, "Cantidad"
PRINT COLUMN 1,
"--------------------------------------------------------",
"--------------------------------------------------------",
"----------------------------------"
BEFORE GROUP OF x.fecha
PRINT COLUMN 3, "Fecha de Este Reporte: ",x.fecha using "dd/mm/yy"
SKIP 1 LINE
BEFORE GROUP OF x.depto
PRINT COLUMN 3, doble_on,"Departamento ",x.depto
BEFORE GROUP OF x.departamento
SKIP 1 LINE
PRINT COLUMN 3, x.departamento using "####"," ",x.nombre_d
SKIP 1 LINE
ON EVERY ROW
LET factor = 1
SELECT a.fact_conv INTO factor FROM prtb00006 a
WHERE a.cod_prod = x.cod_prod
IF factor IS NULL THEN
LET factor = 1
END IF
LET detalle = " "
SELECT a.descripcion INTO detalle FROM prtb00005 a
WHERE a.codigo = x.cod_mq AND a.status_t IS NULL
IF STATUS = NOTFOUND THEN
LET detalle = "SIN DESCRIPCION"
END IF
PRINT COLUMN 1, x.cod_mq using "###"," ",detalle,
COLUMN 33, x.emp_no using "####"," ";
IF x.nom1 IS NOT NULL THEN
PRINT x.nom1 clipped,", ", x.nom2 clipped;
ELSE
PRINT x.fnom1_emp clipped,", ",
x.fapell1_emp clipped;
END IF
PRINT COLUMN 60, x.h_directa using "##.##",
COLUMN 70, x.h_indirecta using "##.##",
COLUMN 80, x.e_directa using "##.##",
COLUMN 90, x.e_indirecta using "##.##",
COLUMN 96, x.cod_prod using "&&&&"," ",x.descripcion CLIPPED,
COLUMN 133, (x.cantidad*factor) using "###,###,###.##"
AFTER GROUP OF x.depto
SKIP TO TOP OF PAGE
ON LAST ROW
PRINT comp_off
END REPORT