{ ------------------------------------------------------------------------------- PROGRAMA : IPPRRP009 OBJETIVO : REPORTE EXISTENCIAS PROGRAMADOR : Juan Fco. Soto. FECHA REALIZACION : Febrero 1997 DIRECTOR PROYECTO : JOSE ALFREDO PAULINO ALEJO ------------------------------------------------------------------------------- } GLOBALS "ipprgb000.4gl" FUNCTION ipprrp09() DEFINE mes CHAR(2) DEFINE idx_ant,idx_cos,idx_act SMALLINT DEFINE salir2,salir,salir1,primera CHAR(1) DEFINE balance_in DECIMAL(12,2) DEFINE p_ano CHAR(4) DEFINE existe RECORD cod_n LIKE iptb00002.cod_n, cod_grupo LIKE iptb00002.cod_grupo, cod_tipo LIKE iptb00002.cod_tipo, cod_sec LIKE iptb00002.cod_sec, descrip_esp CHAR(30), descrip_ing CHAR(15), unidad_med CHAR(3), existe_act DECIMAL(12,5), fecha DATE, codigo CHAR(7) END RECORD DEFINE actual RECORD cod_n SMALLINT, cod_grupo SMALLINT, cod_tipo SMALLINT, cod_sec SMALLINT, descrip_esp LIKE iptb00002.descrip_esp, unidad_med LIKE iptb00002.unidad_med, balance LIKE iptb00006.cantidad_2 END RECORD DEFINE anterior RECORD cod_n SMALLINT, cod_grupo SMALLINT, cod_tipo SMALLINT, cod_sec SMALLINT, balance LIKE iptb00006.cantidad_2 END RECORD DEFINE select_cost,select_act,select_ant CHAR(1000) # WHENEVER ERROR CONTINUE OPTIONS FORM LINE 8, ERROR LINE 23, COMMENT LINE 21 OPEN FORM ipfmrp009 FROM "ipfmrp009" DISPLAY FORM ipfmrp009 CALL pantalla() DISPLAY "ipprrp009" AT 4,3 DISPLAY "Existencia a Diferente Fechas" AT 6,28 LET tipo_papel = 1 CALL msgrp000(tipo_papel) INPUT BY NAME datos_cons.fech_in,datos_cons.fech_fi AFTER FIELD fech_in IF datos_cons.fech_in IS NULL THEN LET numero_msg = 16 CALL msg(numero_msg) NEXT FIELD fech_in END IF AFTER FIELD fech_fi IF datos_cons.fech_fi IS NULL THEN LET numero_msg = 16 CALL msg(numero_msg) NEXT FIELD fech_fi END IF END INPUT IF int_flag THEN LET numero_msg = 2 CALL msg(numero_msg) LET int_flag = false RETURN END IF LET p_ano = year(datos_cons.fech_fi) CONSTRUCT criterio ON a.cod_n,a.cod_grupo,a.cod_tipo,a.cod_sec FROM cod_n,cod_grupo,cod_tipo,cod_sec LET select_act = "SELECT a.cod_n,a.cod_grupo,a.cod_tipo,a.cod_sec,a.descrip_esp, ", " a.descrip_ing, a.unidad_med, SUM(d.cantidad_2) ", "FROM iptb00002 a, iptb00006 d ", "WHERE (a.cod_n = d.cod_n AND a.cod_grupo = d.cod_grupo AND ", " a.cod_tipo = d.cod_tipo AND a.cod_sec = d.cod_sec) AND ", " d.status_t IS NULL and (d.fecha <= ?) AND ",criterio CLIPPED, " GROUP BY 1,2,3,4,5,6,7 ", " ORDER BY 8 DESC " DISPLAY "<< Estoy Buscando Los Balances Actuales >>" AT 19,14 ATTRIBUTE (REVERSE,BOLD) PREPARE busca_act FROM select_act DECLARE busca_balan_act CURSOR FOR busca_act OPEN busca_balan_act USING datos_cons.fech_fi DISPLAY " " AT 19,14 DISPLAY "<< Reporte Generandose ... Por Favor Espere. >>" AT 19,14 ATTRIBUTE (REVERSE) START REPORT paul TO "C:\\archivo" WHILE status != notfound FETCH busca_balan_act INTO existe.* IF status = notfound THEN EXIT WHILE END IF IF int_flag THEN LET int_flag = FALSE LET numero_msg = 2 CALL msg(numero_msg) RETURN END IF LET existe.codigo = existe.cod_n using "&",existe.cod_grupo using "&", existe.cod_tipo using "&&",existe.cod_sec using "&&&" OUTPUT TO REPORT paul(existe.*) END WHILE FINISH REPORT paul CLEAR SCREEN RUN "type C:\\archivo > %USPRINT%" END FUNCTION REPORT paul(x) DEFINE x RECORD cod_n LIKE iptb00002.cod_n, cod_grupo LIKE iptb00002.cod_grupo, cod_tipo LIKE iptb00002.cod_tipo, cod_sec LIKE iptb00002.cod_sec, descrip_esp CHAR(30), descrip_ing CHAR(15), unidad_med CHAR(3), existe_act DECIMAL(12,5), fecha DATE , codigo CHAR(7) END RECORD DEFINE tt INTEGER DEFINE p_costo,costo1,labor1,gasto1,total_c,total_p DECIMAL (12,4) DEFINE doble_on CHAR(2) DEFINE doble_off CHAR(2) DEFINE negrillas_on CHAR(2) DEFINE negrillas_off CHAR(2) DEFINE comp_on CHAR(2) DEFINE comp_off CHAR(2) DEFINE doce CHAR(3) DEFINE hora CHAR(5) DEFINE l INTEGER OUTPUT TOP MARGIN 0 LEFT MARGIN 0 BOTTOM MARGIN 2 #ORDER BY x.cod_n,x.cod_grupo,x.cod_tipo,x.cod_sec,x.fecha FORMAT PAGE HEADER LET doble_on = ASCII 14 LET doble_off = ASCII 20 LET negrillas_on = ASCII 27, ASCII 69 LET negrillas_off = ASCII 27, ASCII 70 LET comp_on = ASCII 15 LET comp_off = ASCII 18 LET doce = ASCII 030 LET hora = time LET l = (130 - LENGTH(p_companias.nombre CLIPPED))/2 PRINT COLUMN 1, comp_on PRINT COLUMN 1, "ipprrp009", COLUMN l, p_companias.nombre CLIPPED, COLUMN 123, "Pag. ",pageno using "###" PRINT COLUMN 49, "Sistema de Inventario Productos ", COLUMN 123, today using "dd/mm/yyyy" PRINT COLUMN 49, " Existencia a Diferente Fechas", COLUMN 126, hora SKIP 1 LINES PRINT COLUMN 1, "--------------------------------------------------", "--------------------------------------------------" , "-----------------------------------------------" PRINT COLUMN 78, "Existencia", COLUMN 94, "Existencia", COLUMN 114, "Costo", COLUMN 135, "Total" PRINT COLUMN 1, "Codigo", COLUMN 12, "Descripcion", COLUMN 78, "Al ",datos_cons.fech_in using "dd/mm/yyyy", COLUMN 95, "Al ", datos_cons.fech_fi using "dd/mm/yyyy", COLUMN 114, "Standard", COLUMN 129, "Al ",datos_cons.fech_fi using "dd/mm/yyyy" PRINT COLUMN 1, "--------------------------------------------------", "--------------------------------------------------", "-----------------------------------------------" SKIP 1 LINE BEFORE GROUP OF x.codigo SELECT MAX(d.material+d.labor+d.gastos) INTO p_costo FROM iptb00004 d WHERE d.mes_fin=12 AND d.status_t is null AND d.ano = year(datos_cons.fech_fi) and d.cod_n=x.cod_n AND d.cod_grupo=x.cod_grupo AND d.cod_tipo = x.cod_tipo AND d.cod_sec = x.cod_sec IF p_costo IS NULL THEN LET p_costo = 0 END IF LET total_c = 0 ON EVERY ROW IF tt IS NULL THEN LET tt = 0 END IF LET tt = tt + 1 IF total_p is null THEN LET total_p = 0 END IF LET total_c = x.existe_act * p_costo IF total_c is null THEN LET total_c = 0 END IF LET total_p = total_c + total_p LET descripcion = x.descrip_esp CLIPPED PRINT COLUMN 1, x.cod_n USING "&","-",x.cod_grupo USING "&","-", COLUMN 5, x.cod_tipo USING "&&","-",x.cod_sec USING "&&&", COLUMN 12, descripcion CLIPPED," ",x.unidad_med CLIPPED, COLUMN 77, x.existe_act USING "--,---,---.###", COLUMN 91, x.existe_act USING "---,---,---.###", COLUMN 111, p_costo USING "#,###.####", COLUMN 127, total_c USING "##,###,###.##" ON LAST ROW PRINT COLUMN 77, "-------------", COLUMN 91, "--------------", COLUMN 127, "-------------" PRINT COLUMN 77, SUM(x.existe_act) WHERE x.fecha <= datos_cons.fech_in USING "--,---,---.###", COLUMN 91, SUM(x.existe_act) USING "---,---,---.###", COLUMN 127, total_p USING "##,###,###.##" LET total_p = 0 SKIP 1 LINES PRINT COLUMN 1, "==================================================", "==================================================", "===============================================" PRINT COLUMN 4, "Total Registros Impresos =", tt USING "<<<<" PRINT comp_off END REPORT