240 lines
7.5 KiB
Plaintext
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
|
|
|