Files
MBS/PROYECTOS/isdir/isprrp002.4gl
T

245 lines
7.7 KiB
Plaintext

{
-------------------------------------------------------------------------------
PROGRAMA : ISPRRP002
OBJETIVO : CATALOGO DE SUMINISTRO
PROGRAMADOR : Ing. Juan Soto
FECHA REALIZACION : Octubre 21, 1993
-------------------------------------------------------------------------------
}
GLOBALS "isprgb000.4gl"
FUNCTION isprrp002()
DEFINE idx_c SMALLINT
DEFINE salir CHAR(1)
DEFINE mes CHAR(2)
DEFINE materia RECORD
cod_n LIKE istb00002.cod_n,
cod_grupo LIKE istb00002.cod_grupo,
cod_tipo LIKE istb00002.cod_tipo,
cod_sec LIKE istb00002.cod_sec,
descrip_esp LIKE intb00001.descrip_esp,
existencia LIKE istb00002.existencia,
pto_reorden LIKE istb00002.pto_reorden,
dia_llegada LIKE istb00002.dia_llegada,
cod_nab LIKE istb00002.cod_nab,
bodega LIKE istb00002.bodega ,
unidad_med LIKE intb00001.unidad_med,
base LIKE istb00002.base,
costo LIKE istb00013.costo_st
END RECORD,
cod smallint
DEFINE select_cost CHAR(1000)
DEFINE costos RECORD
cod_n SMALLINT,
cod_grupo SMALLINT,
cod_tipo SMALLINT,
cod_sec SMALLINT,
fecha CHAR(2),
costo LIKE istb00013.costo_st
END RECORD
OPTIONS
FORM LINE 8,
ERROR LINE 23,
COMMENT LINE 21
CLEAR SCREEN
OPEN FORM isfmrp002 FROM "isfmrp002"
DISPLAY FORM isfmrp002
CALL pantalla()
DISPLAY "isprrp002" AT 4,3 ATTRIBUTE(RED)
DISPLAY "Catalogo de Suministros" AT 6,28 ATTRIBUTE(BLACK)
LET tipo_papel = 1
CALL msgrp000(tipo_papel)
CALL defecto(impresor) RETURNING imprime, letras.*, archivo
INPUT BY NAME decide
ON KEY(CONTROL-P)
CALL busca_printer() RETURNING imprime, letras.*, archivo
AFTER FIELD decide
IF decide IS NULL THEN
NEXT FIELD decide
END IF
END INPUT
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = FALSE
RETURN
END IF
CONSTRUCT BY NAME criterio ON 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
DISPLAY " "
AT 19,14
IF decide = "A" THEN
LET SELEC =
"SELECT a.cod_n,a.cod_grupo,a.cod_tipo,a.cod_sec,b.descrip_esp, ",
" a.existencia,a.pto_reorden,a.dia_llegada,a.cod_nab, ",
" a.bodega,b.unidad_med,a.base ",
"FROM istb00002 a, intb00001 b ",
"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 ",
" a.cod_n = 2 AND ",
" a.status_t is NULL AND ",criterio clipped,
" ORDER BY 5"
ELSE
LET SELEC =
"SELECT a.cod_n,a.cod_grupo,a.cod_tipo,a.cod_sec,b.descrip_esp, ",
" a.existencia,a.pto_reorden,a.dia_llegada,a.cod_nab,",
" a.bodega,b.unidad_med,a.base ",
"FROM istb00002 a, intb00001 b ",
"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 ",
" a.cod_n = 2 AND ",
" a.status_t is NULL AND ",criterio clipped,
" ORDER BY 1,2,3,4"
END IF
DISPLAY "<< Estoy Buscando Los Suministros. >>" AT 19,14
ATTRIBUTE (REVERSE,BOLD)
display "opdeodod"
PREPARE busca FROM selec
DECLARE accion CURSOR FOR busca
OPEN accion
DISPLAY " "
AT 19,14
DISPLAY "<< Reporte Generandose ... Por Favor Espere. >>"
AT 19,14 ATTRIBUTE (REVERSE)
START REPORT maestra TO archivo
FOREACH accion INTO materia.*
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = FALSE
RETURN
END IF
OUTPUT TO REPORT maestra(materia.*)
END FOREACH
FINISH REPORT maestra
RUN imprime
CLEAR SCREEN
END FUNCTION
REPORT maestra(x)
DEFINE x RECORD
cod_n LIKE istb00002.cod_n,
cod_grupo LIKE istb00002.cod_grupo,
cod_tipo LIKE istb00002.cod_tipo,
cod_sec LIKE istb00002.cod_sec,
descrip_esp LIKE intb00001.descrip_esp,
existencia LIKE istb00002.existencia,
pto_reorden LIKE istb00002.pto_reorden,
dia_llegada LIKE istb00002.dia_llegada,
cod_nab LIKE istb00002.cod_nab,
bodega LIKE istb00002.bodega,
unidad_med LIKE intb00001.unidad_med,
base LIKE istb00002.base,
costo LIKE istb00013.costo_st
END RECORD
DEFINE l SMALLINT
DEFINE hora CHAR(5)
DEFINE varia CHAR(19)
OUTPUT
LEFT MARGIN 2
FORMAT
PAGE HEADER
LET hora = time
PRINT COLUMN 1, letras.comp_on
PRINT COLUMN 1, "isprrp002",
COLUMN 48, "R A Y . O . V A C D O M I N I C A N A, S. A.",
COLUMN 135, "Pag. ",
COLUMN 140, pageno using "###"
PRINT COLUMN 1,
COLUMN 51, "Sistema de Inventario de Suministro",
COLUMN 135, today using "dd/mm/yyyy"
PRINT COLUMN 1,
COLUMN 56, "Catalogo de Suministro",
COLUMN 138, hora
IF decide = "N" THEN
LET varia = "N u m e r i c o" #clipped
ELSE
LET varia = "A l f a b e t i c o"
END IF
LET l = (142 - LENGTH(varia)) / 2
PRINT COLUMN l, varia
# ESTA LINEA TIENE 50 GUIONES
PRINT COLUMN 1, letras.comp_on
PRINT COLUMN 1, "--------------------------------------------------",
"--------------------------------------------------",
"------------------------------------------"
PRINT COLUMN 76, "Punto",
COLUMN 93, "Base De",
COLUMN 105, "Dia de"
PRINT COLUMN 1, "Nivel",
COLUMN 15, "Descripcion",
COLUMN 59, "Existencia",
COLUMN 76, "Reorden ",
COLUMN 93, "Cotizacion",
COLUMN 105, "Llegada",
COLUMN 120, "Arancel",
COLUMN 131, "Bodega"
# ESTA LINEA TIENE 50 GUIONES
PRINT COLUMN 1, "--------------------------------------------------",
"--------------------------------------------------",
"------------------------------------------"
ON EVERY ROW
PRINT COLUMN 1, x.cod_n USING "&","-",
COLUMN 3, x.cod_grupo USING "&","-",
COLUMN 5, x.cod_tipo USING "&&","-",
COLUMN 8, x.cod_sec USING "&&&",
COLUMN 15, x.descrip_esp,
COLUMN 46, x.unidad_med,
COLUMN 53, x.existencia USING "##,###.##",
COLUMN 70, x.pto_reorden USING "##,###.##",
COLUMN 88, x.base using "##,###,###.##",
COLUMN 105, x.dia_llegada USING "###",
COLUMN 116, x.cod_nab clipped,
COLUMN 135, x.bodega USING "&&"
ON LAST ROW
SKIP 1 LINE
PRINT COLUMN 3, "Total de Registros Impresos = ", count(*) USING "####"
PRINT COLUMN letras.comp_off
END REPORT