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

154 lines
4.5 KiB
Plaintext

{
-------------------------------------------------------------------------------
PROGRAMA : ISPRRP012
FUNCION : Comparativo de la existencia calculada por movimientos y
existencia en la maestra
PROGRAMADOR : Juan Fco. Soto
FECHA : Noviembre 24, 1992.
-------------------------------------------------------------------------------
}
GLOBALS
"isprgb000.4gl"
FUNCTION isprrp012()
DEFINE comparativo RECORD
cod_n SMALLINT,
cod_grupo SMALLINT,
cod_tipo SMALLINT,
cod_sec SMALLINT,
descrip_esp CHAR(30),
unidad_med CHAR(3),
base LIKE istb00002.base,
existencia LIKE istb00002.existencia,
movimiento LIKE istb00006.cantidad_2
END RECORD
OPTIONS
FORM LINE 8,
ERROR LINE 24,
COMMENT LINE 21
OPEN FORM isfmrp012 FROM "isfmrp012"
DISPLAY FORM isfmrp012
CALL pantalla()
DISPLAY "isprrp012" AT 4,3 ATTRIBUTE(RED)
DISPLAY "Comparativo Existencias" AT 6,28 ATTRIBUTE(BLACK)
# OPEN FORM INFMRP012 FROM "isfmrp012"
# DISPLAY FORM INFMRP012
LET tipo_papel = 1
CALL msgrp000(tipo_papel)
CALL defecto(impresor) RETURNING imprime, letras.*, archivo
CONSTRUCT criterio ON a.cod_n,a.cod_grupo,a.cod_tipo,a.cod_sec
FROM cod_n,cod_grupo,cod_tipo,cod_sec
ON KEY(CONTROL-P)
CALL busca_printer() RETURNING imprime, letras.*, archivo
AFTER CONSTRUCT
EXIT CONSTRUCT
END CONSTRUCT
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,c.descrip_esp, ",
" c.unidad_med,a.base,a.existencia,sum(b.cantidad_2) ",
"FROM istb00002 a,intb00001 c,istb00006 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 = c.cod_n and a.cod_grupo = c.cod_grupo and ",
" a.cod_tipo = c.cod_tipo and a.cod_sec = c.cod_sec and ",
criterio clipped," GROUP BY 1,2,3,4,5,6,7,8"
DISPLAY "<< Buscando Informacion ... Espere Por Favor. >>" AT 19,14
ATTRIBUTE (REVERSE,BOLD)
PREPARE busca_maestra FROM selec
DECLARE diferencia CURSOR FOR busca_maestra
OPEN diferencia
DISPLAY " " AT 19,14
DISPLAY "<< Reporte Generandose ... Por Favor Espere. >>" AT 19,14
ATTRIBUTE (REVERSE)
START REPORT dife TO archivo
FOREACH diferencia INTO comparativo.*
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = FALSE
RETURN
END IF
OUTPUT TO REPORT dife(comparativo.*)
END FOREACH
FINISH REPORT dife
RUN imprime
CLEAR SCREEN
END FUNCTION
REPORT dife(x)
DEFINE x RECORD
cod_n SMALLINT,
cod_grupo SMALLINT,
cod_tipo SMALLINT,
cod_sec SMALLINT,
descrip_esp CHAR(30),
unidad_med CHAR(3),
base LIKE istb00002.base,
existencia LIKE istb00002.existencia,
movimiento LIKE istb00006.cantidad_2
END RECORD,
hora char(5)
OUTPUT
LEFT MARGIN 0
FORMAT
PAGE HEADER
LET hora = time
PRINT COLUMN 1, "isprrp012",
COLUMN 19, "R A Y . O . V A C D O M I N I C A N A, S. A.",
COLUMN 73, "Pag. ",
COLUMN 76, pageno using "###"
PRINT COLUMN 24, "Sistema de Inventario de Suministros",
COLUMN 73, today using "dd/mm/yyyy"
PRINT COLUMN 20, "Comparativo Existencia Maestra - S/ Movtos.",
COLUMN 76, hora
PRINT COLUMN 1,
"--------------------------------------------------------------------------------"
PRINT COLUMN 50, "Existencia",
COLUMN 69, "Existencia"
PRINT COLUMN 1, "Suministros",
COLUMN 13, "Descripcion",
COLUMN 50, "S/Maestra",
COLUMN 69, "S/Movtos."
PRINT COLUMN 1,
"--------------------------------------------------------------------------------"
ON EVERY ROW
IF x.base IS NULL THEN
LET x.base = 1
END IF
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 13, x.descrip_esp,
COLUMN 34, x.unidad_med,
COLUMN 38, x.existencia/x.base using "---,---,---.##",
COLUMN 65, x.movimiento/x.base using "---,---,---.##"
ON LAST ROW
PRINT COLUMN 10, "Total Registros ==> ",count(*) using "#,###"
END REPORT