{ ------------------------------------------------------------------------------- PROGRAMA : PRPRRP004 OBJETIVO : Validacion 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 prprrp004() #WHENEVER ERROR CONTINUE DEFINE prt_datos4 RECORD 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, detalle LIKE cttb00003.detalle, 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 END RECORD OPTIONS FORM LINE 8, ERROR LINE 23, COMMENT LINE 21 OPEN FORM prfmrp004 FROM "prfmrp005" DISPLAY FORM prfmrp004 CALL pantalla() DISPLAY "prprrp004" AT 4,3 DISPLAY "Validacion 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 DECLARE busca CURSOR FOR SELECT a.num_doc,a.fecha,a.departamento,b.nom_dpto,a.emp_no, c.nom1_emp,c.apell1_emp,a.cod_mq,a.detalle,a.h_directa, a.h_indirecta,a.e_directa,a.e_indirecta,a.cod_prod, d.descripcion,a.cantidad,a.rowid FROM cttb00003 a,adtb00001 b,adtb00003 c,outer cttb00001 d WHERE a.fecha between fecha_inicial and fecha_final and a.departamento=b.departamento AND a.emp_no = c.num_emp and a.cod_prod = d.cod_prod and a.status_t is null ORDER BY 2,1,3,17 DISPLAY "Reporte Generandose... Espere Por Favor" AT 19,14 START REPORT reporte_4 TO "C:\\archivo" FOREACH busca INTO prt_datos4.* OUTPUT TO REPORT reporte_4(prt_datos4.*) END FOREACH FINISH REPORT reporte_4 RUN "type C:\\archivo > %USPRINT%" END FUNCTION # Rutina de Impresion de las informaciones REPORT reporte_4(x) # Variable para tomar las informaciones DEFINE x RECORD 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, detalle LIKE cttb00003.detalle, 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 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 FORMAT PAGE HEADER # Validacion 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, "prprrp004", 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, " Validacion 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.departamento SKIP 1 LINE PRINT COLUMN 3, "SECUENCIA: ",x.num_doc USING "&&&&&&" PRINT COLUMN 3, "DEPARTAMENTO ",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 PRINT COLUMN 1, x.cod_mq using "###"," ",x.detalle, COLUMN 33, x.emp_no using "####"," ",x.nom1 clipped,", ", x.nom2 clipped, 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.fecha SKIP TO TOP OF PAGE ON LAST ROW PRINT comp_off END REPORT