Files
MBS/PROYECTOS/indir/inprrp039.4gl
T

229 lines
6.7 KiB
Plaintext

{
------------------------------------------------------------------
PROGRAMA : INPRRP0039
OBJETIVO : Imprimir listado para saber cuantas veces se han contado
: los Items por Categoria
PROGRAMADOR : Maria Gomez
MODIFICADO :
FECHA REALIZACION : Agosto 20, 1996.
------------------------------------------------------------------
}
globals
"inprgb000.4gl"
FUNCTION inprrp039()
DEFINE p_conteo RECORD
cod_n LIKE intb00015.cod_n,
cod_grupo LIKE intb00015.cod_grupo,
cod_tipo LIKE intb00015.cod_tipo,
cod_sec LIKE intb00015.cod_sec,
# semana_del LIKE intb00015.semana_del,
categoria LIKE intb00014.categoria,
descrip_esp LIKE intb00001.descrip_esp,
cant SMALLINT
END RECORD, i,c,dia,cant1,cant INTEGER
DEFINE tipo_papel, numero_msg SMALLINT
DEFINE fecha_ini,fecha_fin DATE
OPTIONS
FORM LINE 9
OPEN FORM infmrp039 FROM "infmrp039"
CLEAR SCREEN
CALL pantalla()
DISPLAY "inprrp039" at 4,3 attribute(yellow)
DISPLAY "Conteo por Categoria de Fisico Perpetuo" at 6,18
DISPLAY form infmrp039
LET tipo_papel = 1
CALL msgrp000(tipo_papel)
INPUT BY NAME fecha_ini, fecha_fin
AFTER FIELD fecha_ini
IF fecha_ini IS NULL THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD fecha_ini
END IF
BEFORE FIELD fecha_fin
LET fecha_fin = today
DISPLAY BY NAME fecha_fin
AFTER FIELD fecha_fin
IF fecha_fin IS NULL THEN
LET fecha_fin = today
END IF
DISPLAY BY NAME fecha_fin
IF fecha_ini > fecha_fin THEN
LET numero_msg = 51
CALL msg(numero_msg)
NEXT FIELD fecha_ini
END IF
END INPUT
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = false
RETURN
END IF
DECLARE curs1 SCROLL CURSOR FOR
SELECT a.cod_n,a.cod_tipo,a.cod_grupo,a.cod_sec,b.categoria,f.descrip_esp,
COUNT(*) cant
FROM intb00015 a, intb00014 b, intb00001 f
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 = f.cod_n AND a.cod_grupo = f.cod_grupo AND
a.cod_n = f.cod_n AND a.cod_grupo = f.cod_grupo AND
b.cod_tipo = f.cod_tipo AND b.cod_sec = f.cod_sec AND
b.cod_tipo = f.cod_tipo AND b.cod_sec = f.cod_sec AND
(a.semana_del BETWEEN fecha_ini AND fecha_fin) AND
a.status_t IS NULL
GROUP BY 1,2,3,4,5,6
ORDER BY 5
DISPLAY "BuscANDo Informacion ... Espere por favor" AT 19,14
ATtribute(reverse,bold)
IF STATUS < 0 THEN
CALL integridad()
IF bANDera = 1 THEN
LET bANDera = 0
RETURN
END IF
END IF
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = false
RETURN
END IF
START REPORT conteo_f TO "C:\\archivo"
DISPLAY " " AT 19,14
DISPLAY "Reporte Generandose ... Por Favor Espere" AT 19,14
ATTRIBUTE(REVERSE)
FOREACH curs1 INTO p_conteo.*
OUTPUT to REPORT conteo_f(p_conteo.*,fecha_ini,fecha_fin)
END FOREACH
FINISH REPORT conteo_f
RUN "type C:\\archivo > %USPRINT%" END FUNCTION
REPORT conteo_f(x,fecha3,fecha4)
DEFINE x RECORD
cod_n LIKE intb00015.cod_n,
cod_grupo LIKE intb00015.cod_grupo,
cod_tipo LIKE intb00015.cod_tipo,
cod_sec LIKE intb00015.cod_sec,
# semana_del LIKE intb00015.semana_del,
categoria LIKE intb00014.categoria,
descrip_esp LIKE intb00001.descrip_esp,
cant SMALLINT
END RECORD
DEFINE fecha3, fecha4 date
DEFINE doble_on CHAR(2)
DEFINE doble_off CHAR(2)
DEFINE negrillas_on CHAR(2)
DEFINE negrillas_off CHAR(2)
DEFINE comp_on CHAR(3)
DEFINE comp_off CHAR(2)
DEFINE doce CHAR(2)
DEFINE hora CHAR(5)
DEFINE l SMALLINT
DEFINE varia CHAR(10)
DEFINE imprime CHAR(1)
ORDER BY x.categoria,x.cod_n,x.cod_grupo,x.cod_tipo,x.cod_sec
FORMAT
PAGE HEADER
LET doble_on = ASCII 14
LET doble_off = ASCII 20
LET negrillas_on = ASCII 27, ASCII 69
LET negrillas_off = ASCII 27, ASCII 70
LET doce = ASCII 27, ASCII 77
LET hora = time
LET hora = time
LET lj = (78 - LENGTH(p_companias.nombre CLIPPED))/2
PRINT COLUMN 1, negrillas_on
PRINT COLUMN 1, "inprrp039",
COLUMN lj, p_companias.nombre CLIPPED,
COLUMN 71, "Pag. ",pageno USING "###"
PRINT COLUMN 17, "Confirmacion Conteo Fisico Inventario Perpetuo",
COLUMN 71, today USING "dd/mm/yyyy"
PRINT COLUMN 25, "Del ",fecha3 USING "dd/mm/yyyy", " al ",fecha4
USING "dd/mm/yyyy",
COLUMN 74, hora
SKIP 1 LINE
PRINT COLUMN 1, "__________________________________________________",
"____________________________"
PRINT COLUMN 2, "Codigo",
COLUMN 15, "Descripcion",
COLUMN 58, "CANTIDAD"
PRINT COLUMN 1, "__________________________________________________",
"____________________________"
PRINT COLUMN 1, negrillas_off
SKIP 1 LINE
BEFORE GROUP OF x.categoria
SKIP 1 LINE
PRINT COLUMN 2,negrillas_on,"Categoria...",x.categoria,negrillas_off
SKIP 1 LINE
ON EVERY ROW
PRINT COLUMN 2,x.cod_n USING "&","-",x.cod_grupo USING "&","-",
x.cod_tipo USING "&&","-",x.cod_sec USING "&&&",
COLUMN 15, x.descrip_esp,
COLUMN 58, x.cant
SKIP 1 LINE
AFTER GROUP OF x.categoria
SKIP 1 LINE
PRINT COLUMN 2,negrillas_on,"Total en categoria ",
COLUMN 30, GROUP COUNT(*) USING "#####"
ON LAST ROW
SKIP 1 LINE
PRINT COLUMN 2,negrillas_on,"Total registro en general " ,
COUNT(*) USING "######" ,
negrillas_off
END REPORT
#-----------------------------------------------------------------------
{
FUNCTION pantalla()
DEFINE fecha CHAR(8),
hora char(5)
LET fecha = today USING "dd/mm/yyyy"
LET hora = time
DISPLAY p_companias.nombre AT 4,lj ATTRIBUTE (REVERSE,YELLOW)
DISPLAY fecha AT 4,70 ATTRIBUTE (YELLOW)
DISPLAY "Sistema Inventario de Materia Prima" AT 5,22
DISPLAY hora AT 6,73 ATTRIBUTE(YELLOW)
CALL fgl_drawbox(5,79,3,1)
CALL fgl_drawbox(1,79,22,1)
RUN "type C:\\archivo > %USPRINT%" END FUNCTION
}
{
FUNCTION integridad()
IF sqlca.sqlcode < 0 THEN
LET numero_msg = sqlca.sqlcode
CALL msg(numero_msg)
DISPLAY numero_msg AT 23,70
LET bandera = 1
SLEEP 2
RETURN
END IF
RUN "type C:\\archivo > %USPRINT%" END FUNCTION}