{ ============================================================================ PROGRAMA : INPRRP012 OBJETIVO : ESTABLECER DIFERENCIAS DE VALORIZACION DE COSTOS ENTRE DOS ANOS DADOS. PROGRAMADOR : JUAN F. SOTO FECHA : FEBRERO 9, 1995 ============================================================================ } GLOBALS "inprgb000.4gl" DEFINE cost_ant RECORD LIKE intb00013.* DEFINE cost_act RECORD LIKE intb00013.* DEFINE p_ano,p_ano_act SMALLINT MAIN DEFER INTERRUPT SELECT * INTO p_companias.* FROM companias CALL inprrp012() END MAIN FUNCTION inprrp012() DEFINE tipo_papel SMALLINT OPTIONS FORM LINE 8, ERROR LINE 24 OPEN FORM infmrp012 FROM "infmrp012" DISPLAY FORM infmrp012 CALL pantalla() DISPLAY "Costos Comparativo Anuales" at 6,27 DISPLAY "inprrp012" at 4,3 LET tipo_papel = 1 CALL msgrp000(tipo_papel) INPUT BY NAME p_ano,p_ano_act 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 17,14 DECLARE busca1 CURSOR FOR SELECT unique * FROM intb00013 WHERE ano = p_ano and mes_fin = 12 ORDER BY cod_n,cod_grupo,cod_tipo,cod_sec DISPLAY "Reporte Generandose ... Espere Por Favor" AT 17,14 START REPORT costos1 TO "C:\\archivo" FOREACH busca1 INTO cost_ant.* IF int_flag THEN LET numero_msg = 2 CALL msg(numero_msg) LET int_flag = FALSE RETURN END IF SELECT *INTO cost_act.* FROM intb00013 WHERE @cod_n = cost_ant.cod_n and @cod_grupo = cost_ant.cod_grupo and @cod_tipo = cost_ant.cod_tipo and @cod_sec = cost_ant.cod_sec and @ano = p_ano_act and @status_t is null ORDER BY cod_n,cod_grupo,cod_tipo,cod_Sec OUTPUT TO REPORT costos1() END FOREACH FINISH REPORT costos1 RUN "type C:\\archivo > %USPRINT%" END FUNCTION REPORT costos1() DEFINE comp_on,comp_off CHAR(3) DEFINE fecha_final DATE DEFINE existencia DECIMAL(12,2) DEFINE costo_ant,costo_act DECIMAL(10,4) OUTPUT LEFT MARGIN 0 FORMAT PAGE HEADER LET comp_on = ASCII 15 LET comp_off = ASCII 18 LET lj = (134 - LENGTH(p_companias.nombre CLIPPED))/2 PRINT comp_on PRINT COLUMN 1,"inprrp012", COLUMN lj, p_companias.nombre CLIPPED, COLUMN 127, "Pag. ",pageno using "###" PRINT COLUMN 44, " Sistema de Inventario Materia Prima", COLUMN 127, today using "dd/mm/yyyy" PRINT COLUMN 44, " Diferencia en Costos Anuales", COLUMN 127, time PRINT COLUMN 1, "==================================================", "==================================================", "==================================" PRINT COLUMN 1, "ARTICULOS...", COLUMN 50, "EXISTENCIA", COLUMN 72, p_ano using "####", COLUMN 87, "VALOR", COLUMN 100, p_ano_act using "####", COLUMN 115, "VALOR", COLUMN 132, "DIF" PRINT COLUMN 1, "==================================================", "==================================================", "==================================" ON EVERY ROW SELECT * INTO articulos.* FROM intb00001 WHERE @cod_n = cost_ant.cod_n and @cod_grupo = cost_ant.cod_grupo and @cod_tipo = cost_ant.cod_tipo and @cod_sec = cost_ant.cod_sec and @status_t is null SELECT Max(fecha_corte) INTO fecha_final FROM prdtable WHERE ano = p_ano SELECT SUM(cantidad_2) INTO existencia FROM intb00006 WHERE (fecha <= fecha_final) and (@cod_n = cost_ant.cod_n) and (@cod_grupo = cost_ant.cod_grupo) and (@cod_tipo = cost_ant.cod_tipo) and (@cod_sec = cost_ant.cod_sec) and @status_t is null IF existencia is null THEN LET existencia = 0 END IF LET costo_ant = cost_ant.costo_st LET costo_act = cost_act.costo_st IF costo_ant is null THEN LET costo_ant = 0 END IF IF costo_act is null THEN LET costo_act = 0 END IF PRINT COLUMN 1, cost_ant.cod_n using "&","-", cost_ant.cod_grupo using "&","-", cost_ant.cod_tipo using "&&","-", cost_ant.cod_sec using "&&&"," ", articulos.descrip_esp," ",articulos.unidad_med, COLUMN 50, existencia using "(((,((#,#&&.##)", COLUMN 65, costo_ant using "##,###.##&&", COLUMN 80, costo_ant * existencia using "(,(((,((#.##)", COLUMN 95, costo_act using "#,###.##&&", COLUMN 106, costo_act * existencia using "(((,(((,((#.##)", COLUMN 122, (costo_ant * existencia) - (costo_act * existencia) USING "((,(((,(&&.##)" ON LAST ROW PRINT COLUMN 1, "==================================================", "==================================================", "==================================" PRINT "TOTAL REGISTROS===> ", COUNT(*) USING "###", COLUMN 78, SUM(costo_ant*existencia) USING "(((,(((,(##.##)", COLUMN 106, SUM(costo_act * existencia) using "(((,(((,(&&.##)", COLUMN 122, SUM((costo_ant*existencia) - (costo_act*existencia)) USING "((,(((,(&&.##)" PRINT comp_off END REPORT