Files
MBS/PROYECTOS/irdir/irprrp019.4gl
T

240 lines
7.5 KiB
Plaintext

{
=============================================================================
PROGRAMA : IRPRRP019
OBJETIVO : IMPRIMIR EL CONSUMO DE UN REPUESTO EN FORMA PANORAMICA
EN UN ANO DETALLANDO TODOS LOS MESES ACUMULADO.
PROGRAMADOR : JUAN F. SOTO
FECHA : FEBRERO 17, 1994
=============================================================================
}
GLOBALS
"irprgb000.4gl"
DEFINE fecha1,fecha2,fecha3 DATE
DEFINE j,mes_ini,mes_fin SMALLINT
DEFINE p_ano CHAR(4)
MAIN
DEFER INTERRUPT
CALL ARG_VAL(1) RETURNING usuarios
CALL ARG_VAL(2) RETURNING clave
CALL ARG_VAL(3) RETURNING impresor
CONNECT to "smarmotech" AS "SQL_C" USER usuarios USING clave
SELECT * INTO p_companias.* FROM companias
CALL irprrp019()
END MAIN
FUNCTION irprrp019()
DEFINE imp_datos RECORD
cod_n LIKE intb00001.cod_n,
cod_grupo LIKE intb00001.cod_n,
cod_tipo LIKE intb00001.cod_n,
cod_sec LIKE intb00001.cod_n,
descrip LIKE intb00001.descrip_esp,
unidad LIKE intb00001.unidad_med,
costo LIKE irtb00002.exist_min,
existencia LIKE irtb00006.cantidad_2,
mes SMALLINT,
consumo LIKE irtb00006.cantidad_2,
clave CHAR(10)
END RECORD
OPTIONS
ERROR LINE 24,
FORM LINE 8
OPEN FORM irfmrp019 FROM "irfmrp019"
DISPLAY FORM irfmrp019
DISPLAY "irprrp019" AT 4,3
DISPLAY "Panoramico Consumo" AT 6,30
# CALL pantalla()
LET tipo_papel = 2
CALL msgrp000(tipo_papel)
INPUT BY NAME p_ano,mes_ini,mes_fin,fecha3
BEFORE FIELD fecha3
LET fecha3 = today
AFTER INPUT
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = false
RETURN
END IF
EXIT INPUT
END INPUT
CONSTRUCT BY NAME criterio ON a.cod_n,a.cod_grupo,a.cod_tipo,a.cod_sec
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = false
RETURN
END IF
LET selec =
"SELECT a.cod_n,a.cod_grupo,a.cod_tipo,a.cod_sec,b.descrip_esp,",
" b.unidad_med,MAX(c.costo_st) ",
"FROM intb00001 b,irtb00002 a left OUTER joinning irtb00013 c ON
(a.cod_n = c.cod_n and a.cod_grupo = c.cod_grupo and ",
" a.cod_tipo = c.cod_tipo and a.cod_sec = c.cod_sec) ",
"WHERE (a.cod_n = b.cod_n and a.cod_grupo = b.cod_grupo and ",
" a.cod_tipo = b.cod_tipo and a.cod_sec = b.cod_sec) and ",
criterio clipped," and a.status_t is null AND c.ano = ? AND ",
" c.mes_ini <= ? AND c.mes_fin >= ? ",
"GROUP BY 1,2,3,4,5,6 ORDER BY 1,2,3,4 "
PREPARE comando FROM selec
DECLARE busca CURSOR FOR comando
OPEN busca USING p_ano,mes_fin,mes_fin
LET idx = 1
LET r_filename = 'irprrp019.4rp'
LET preview=1
FOREACH busca INTO imp_datos.*
IF idx = 1 THEN
IF fgl_report_loadCurrentSettings(r_filename) THEN
LET preview=1
CALL seleccionarsalida() RETURNING r_output -- load the .4rp file
CALL fgl_report_selectDevice(r_output) -- changing default
CALL fgl_report_selectPreview(preview) -- changing default
CALL fgl_report_configurexlsxdevice(null,null,null,false,false,null,1)
LET handler = fgl_report_commitCurrentSettings() -- commit changes
START REPORT irpr19 TO XML HANDLER handler
END IF
LET idx = 2
END IF
IF imp_datos.costo IS NULL THEN
LET imp_datos.costo = 0
END IF
# Busca Existencia repuestos
SELECT SUM(cantidad_2) INTO imp_datos.existencia
FROM irtb00006
WHERE (cod_n = imp_datos.cod_n and cod_grupo = imp_datos.cod_grupo and
cod_tipo = imp_datos.cod_tipo and cod_sec = imp_datos.cod_sec and
fecha <= fecha3) and status_t is null
IF imp_datos.existencia is null THEN
LET imp_datos.existencia = 0
END IF
FOR idx = 1 TO mes_fin
SELECT fecha_inicio,fecha_corte INTO fecha1,fecha2
FROM prdtable WHERE mes = idx and ano = p_ano
LET imp_datos.consumo = 0
SELECT SUM(cantidad_2) INTO imp_datos.consumo
FROM irtb00006
WHERE (cod_n = imp_datos.cod_n and cod_grupo = imp_datos.cod_grupo and
cod_tipo = imp_datos.cod_tipo and cod_sec = imp_datos.cod_sec and
fecha between fecha1 and fecha2) and cantidad_2 < 0 and
cod_mov IN (21,22,23,24,26,27,40) AND status_t is null
IF imp_datos.consumo is null THEN
LET imp_datos.consumo = 0
END IF
LET imp_datos.mes = idx
LET imp_datos.clave = imp_datos.cod_n using "&","-",
imp_datos.cod_grupo using "&","-",
imp_datos.cod_tipo using "&&","-",
imp_datos.cod_sec using "&&&"
OUTPUT TO REPORT irpr19(imp_datos.*)
END FOR
END WHILE
FINISH REPORT irpr19
RUN "type C:\\archivo > %USPRINT%" END FUNCTION
REPORT irpr19(x)
DEFINE x RECORD
cod_n LIKE intb00001.cod_n,
cod_grupo LIKE intb00001.cod_n,
cod_tipo LIKE intb00001.cod_n,
cod_sec LIKE intb00001.cod_n,
descrip LIKE intb00001.descrip_esp,
unidad LIKE intb00001.unidad_med,
costo LIKE irtb00002.exist_min,
existencia LIKE irtb00006.cantidad_2,
mes SMALLINT,
consumo LIKE irtb00006.cantidad_2,
clave CHAR(10)
END RECORD,
nomb1,nomb2 CHAR(12),
comp_on,comp_of CHAR(3)
OUTPUT
LEFT MARGIN 0
FORMAT
PAGE HEADER
LET comp_on = ASCII 031
PRINT comp_on
PRINT COLUMN 1,"irprrp019",
COLUMN 80, "R A Y .O. V A C D O M I N I C A N A, S. A.",
COLUMN 207, "PAG. ",pageno using "###"
PRINT COLUMN 88, "SISTEMA DE REPUESTOS",
COLUMN 207, TODAY USING "DD/MM/yyyy"
PRINT COLUMN 87, "PANORAMICO DE CONSUMOS",
COLUMN 207, TIME
SKIP 1 LINE
SELECT descrip INTO nomb1 FROM mestable WHERE mes = mes_ini
SELECT descrip INTO nomb2 FROM mestable WHERE mes = mes_fin
PRINT "PERIODO: ",nomb1 clipped," - ",nomb2 clipped," DE ",p_ano
PRINT "======================================================================",
"======================================================================",
"======================================================================",
"======="
PRINT COLUMN 57, "EXISTENCIA"
PRINT COLUMN 1, "REPUESTOS",
COLUMN 45, " COSTO",
COLUMN 57, fecha3 using "dd/mm/yyyy",
COLUMN 71, "ENERO",
COLUMN 81, "FEBRERO",
COLUMN 96, "MARZO",
COLUMN 108, "ABRIL",
COLUMN 121, "MAYO",
COLUMN 132, "JUNIO",
COLUMN 144, "JULIO",
COLUMN 155, "AGOSTO",
COLUMN 165, "SEPTIEMB.",
COLUMN 178, "OCTUBRE",
COLUMN 190, "NOVIEMB",
COLUMN 201, "DICIEMBRE",
COLUMN 213, "TOTAL"
PRINT "======================================================================",
"======================================================================",
"======================================================================",
"======="
BEFORE GROUP OF x.clave
PRINT COLUMN 1,x.clave," ",x.descrip," ",x.unidad,
COLUMN 45, x.costo using "#,###,###.##",
COLUMN 58, x.existencia using "##,###.##";
LET j = 69
ON EVERY ROW
PRINT COLUMN j, x.consumo using "#,###.##";
LET j = j + 12
AFTER GROUP OF x.clave
PRINT COLUMN 210, GROUP SUM(x.consumo) using "#,###.##"
END REPORT