{ ------------------------------------------------------------------------------- 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