205 lines
6.2 KiB
Plaintext
205 lines
6.2 KiB
Plaintext
{
|
|
-------------------------------------------------------------------------------
|
|
PROGRAMA : IRPRRP006
|
|
OBJETIVO : CATALOGO DE REPUESTOS CON EXISTENCIAS
|
|
PROGRAMADOR : Ing. Juan Fco. Soto.
|
|
FECHA REALIZACION : Mayo 18, 1993.
|
|
-------------------------------------------------------------------------------
|
|
}
|
|
GLOBALS "irprgb000.4gl"
|
|
DEFINE existencia VARCHAR(2)
|
|
MAIN
|
|
DEFER INTERRUPT
|
|
CALL arg_val(1) RETURNING usuarios
|
|
CALL arg_val(2) RETURNING clave
|
|
CALL arg_val(3) RETURNING impresor
|
|
CONNECT TO "smarmotech" USER usuarios USING clave
|
|
SELECT * INTO p_companias.* FROM companias
|
|
CALL irprrp006()
|
|
END MAIN
|
|
|
|
FUNCTION irprrp006()
|
|
DEFINE idx SMALLINT
|
|
|
|
DEFINE materia RECORD
|
|
cod_n LIKE intb00002.cod_n,
|
|
cod_grupo LIKE intb00002.cod_grupo,
|
|
cod_tipo LIKE intb00002.cod_tipo,
|
|
cod_sec LIKE intb00002.cod_sec,
|
|
descrip_esp LIKE irtb00002.descrip_esp,
|
|
descrip_ing LIKE irtb00002.descrip_ing,
|
|
unidad_med LIKE irtb00002.unidad_med,
|
|
exist_min FLOAT,
|
|
existencia LIKE irtb00002.existencia
|
|
END RECORD,
|
|
cod smallint
|
|
|
|
#WHENEVER ERROR CONTINUE
|
|
|
|
OPTIONS
|
|
FORM LINE 8,
|
|
ERROR LINE 23,
|
|
COMMENT LINE 21
|
|
|
|
CLEAR SCREEN
|
|
|
|
OPEN FORM irfmrp006 FROM "irfmrp006"
|
|
DISPLAY FORM irfmrp006
|
|
|
|
LET tipo_papel = 1
|
|
CALL msgrp000(tipo_papel)
|
|
|
|
INPUT BY NAME decide,existencia
|
|
|
|
IF int_flag THEN
|
|
LET numero_msg = 2
|
|
CALL msg(numero_msg)
|
|
LET int_flag = FALSE
|
|
RETURN
|
|
END IF
|
|
|
|
|
|
CONSTRUCT criterio ON b.cod_n,b.cod_grupo,b.cod_tipo,b.cod_sec
|
|
FROM cod_n,cod_grupo,cod_tipo,cod_sec
|
|
|
|
IF decide = "A" THEN
|
|
LET SELEC =
|
|
"SELECT b.cod_n,b.cod_grupo,b.cod_tipo,b.cod_sec,b.descrip_esp, ",
|
|
" b.descrip_ing,b.unidad_med,b.exist_min,ISNULL(sum(c.cantidad_2),0) ",
|
|
"FROM irtb00002 b,irtb00006 c ",
|
|
"WHERE ",criterio CLIPPED,
|
|
" AND (c.cod_n = c.cod_n AND b.cod_Grupo = c.cod_Grupo AND b.cod_tipo = c.cod_tipo AND b.cod_sec = c.cod_sec) ",
|
|
" AND c.status_t IS NULL " ,
|
|
" AND b.status_t IS NULL ",
|
|
"GROUP BY b.cod_n,b.cod_grupo,b.cod_tipo,b.cod_sec,b.exist_min,b.descrip_esp,b.descrip_ing,b.unidad_med ",
|
|
"ORDER BY b.descrip_esp"
|
|
ELSE
|
|
LET SELEC =
|
|
"SELECT b.cod_n,b.cod_grupo,b.cod_tipo,b.cod_sec,b.descrip_esp, ",
|
|
" b.descrip_ing,b.unidad_med,b.exist_min,ISNULL(sum(c.cantidad_2),0) ",
|
|
"FROM irtb00002 b,irtb00006 c ",
|
|
"WHERE ",criterio CLIPPED,
|
|
" AND (c.cod_n = c.cod_n AND b.cod_Grupo = c.cod_Grupo AND b.cod_tipo = c.cod_tipo AND b.cod_sec = c.cod_sec) ",
|
|
" AND c.status_t IS NULL " ,
|
|
" AND b.status_t IS NULL ",
|
|
"GROUP BY b.cod_n,b.cod_grupo,b.cod_tipo,b.cod_sec,b.exist_min,b.descrip_esp,b.descrip_ing,b.unidad_med ",
|
|
"ORDER BY b.cod_n,b.cod_grupo,b.cod_tipo,b.cod_sec "
|
|
END IF
|
|
|
|
IF int_flag THEN
|
|
LET numero_msg = 2
|
|
CALL msg(numero_msg)
|
|
LET int_flag = FALSE
|
|
RETURN
|
|
END IF
|
|
|
|
|
|
PREPARE busca FROM selec
|
|
|
|
IF int_flag THEN
|
|
LET numero_msg = 2
|
|
CALL msg(numero_msg)
|
|
LET int_flag = FALSE
|
|
RETURN
|
|
END IF
|
|
|
|
DECLARE accion SCROLL CURSOR FOR busca
|
|
OPEN accion
|
|
|
|
LET idx = 1
|
|
LET p_param = "S"
|
|
WHILE status != notfound
|
|
FETCH ABSOLUTE idx accion INTO materia.*
|
|
IF status = NOTFOUND THEN
|
|
EXIT WHILE
|
|
END IF
|
|
|
|
IF idx = 1 THEN
|
|
LET r_filename = 'irprrp006.4rp'
|
|
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
|
|
|
|
END IF
|
|
START REPORT p_cero TO XML HANDLER handler
|
|
|
|
END IF
|
|
LET idx = idx + 1
|
|
|
|
IF int_flag THEN
|
|
LET numero_msg = 2
|
|
CALL msg(numero_msg)
|
|
LET int_flag = false
|
|
RETURN
|
|
END IF
|
|
|
|
LET p_param = "N"
|
|
IF existencia = 'SI' THEN
|
|
IF materia.existencia =0 OR materia.existencia IS NULL THEN
|
|
CONTINUE WHILE
|
|
END IF
|
|
END IF
|
|
OUTPUT TO REPORT p_cero(materia.*)
|
|
END WHILE
|
|
IF idx > 1 THEN
|
|
FINISH REPORT p_cero
|
|
ELSE
|
|
CALL fgl_winmessage("INFO","NO EXISTEN INFORMACIONES CON ESTOS PARAMETROS","INFO")
|
|
END IF
|
|
END FUNCTION
|
|
|
|
REPORT p_cero(x)
|
|
DEFINE x RECORD
|
|
cod_n LIKE intb00002.cod_n,
|
|
cod_grupo LIKE intb00002.cod_grupo,
|
|
cod_tipo LIKE intb00002.cod_tipo,
|
|
cod_sec LIKE intb00002.cod_sec,
|
|
descrip_esp LIKE irtb00002.descrip_esp,
|
|
descrip_ing LIKE irtb00002.descrip_ing,
|
|
unidad_med LIKE irtb00002.unidad_med,
|
|
exist_min FLOAT,
|
|
existencia LIKE irtb00002.existencia
|
|
END RECORD
|
|
|
|
DEFINE dia_l,l smallint
|
|
DEFINE varia CHAR(20)
|
|
DEFINE descripcion CHAR(60)
|
|
DEFINE primera CHAR(1)
|
|
DEFINE hora CHAR(5),
|
|
codigo VARCHAR(25),
|
|
cantidad_registros INT
|
|
OUTPUT
|
|
TOP MARGIN 0
|
|
LEFT MARGIN 0
|
|
BOTTOM MARGIN 2
|
|
FORMAT
|
|
PAGE HEADER
|
|
LET hora = TIME
|
|
IF decide = "N" THEN
|
|
LET varia = "N u m e r i c o"
|
|
ELSE
|
|
LET varia = "A l f a b e t i c o"
|
|
END IF
|
|
PRINTX hora,p_companias.nombre,varia
|
|
|
|
|
|
|
|
|
|
ON EVERY ROW
|
|
LET codigo = x.cod_n USING "&","-",x.cod_grupo USING "&&","-",x.cod_tipo USING "&&&","-",
|
|
x.cod_sec USING "&&&&"
|
|
|
|
PRINTX x.*,p_companias.nombre,codigo
|
|
|
|
|
|
ON LAST ROW
|
|
LET cantidad_registros= count(*)
|
|
PRINTX cantidad_registros
|
|
|
|
END REPORT
|
|
|