Files
MBS/PROYECTO/ctdir/ctprrp020.4gl
T

195 lines
6.3 KiB
Plaintext

{
-------------------------------------------------------------------------------
PROGRAMA : CTPRRP020
OBJETIVO : Validacion de la Relacion de Prod. Term. y Semi-Elab.
PROGRAMADOR : Tadeo A. Ferreras F.
FECHA REALIZACION : Junio 22, 1994.
-------------------------------------------------------------------------------
}
GLOBALS "ctprgb000.4gl"
DEFINE idx_b SMALLINT
DEFINE salir CHAR(1)
DEFINE val_rel RECORD
cod_n LIKE cttb00006.cod_n,
cod_grupo LIKE cttb00006.cod_grupo,
cod_tipo LIKE cttb00006.cod_tipo,
cod_sec LIKE cttb00006.cod_sec,
descrip_esp LIKE intb00001.descrip_esp,
cod_prod LIKE cttb00006.cod_prod,
descripcion LIKE cttb00001.descripcion,
unidad_med LIKE cttb00001.unidad_med,
cantidad LIKE cttb00006.cantidad,
codigo CHAR(7)
END RECORD
DEFINE codigo_ant RECORD
cod_n SMALLINT,
cod_grupo SMALLINT,
cod_tipo SMALLINT,
cod_sec SMALLINT
END RECORD
DEFINE balances RECORD
cod_n SMALLINT,
cod_grupo SMALLINT,
cod_tipo SMALLINT,
cod_sec SMALLINT,
balance LIKE cttb00006.cantidad
END RECORD
DEFINE select_balan CHAR(1000)
FUNCTION ctprrp020()
#WHENEVER ERROR CONTINUE
OPTIONS
FORM LINE 9,
ERROR LINE 23,
COMMENT LINE 21
OPEN FORM ctfmrp020 FROM "ctfmrp020"
DISPLAY FORM ctfmrp020
CALL pantalla()
DISPLAY "ctprrp020" AT 4,3
DISPLAY "Relacion Prod. Terminado Y Semi-Elaborado" AT 6,23
LET tipo_papel = 1
CALL msgrp000(tipo_papel)
CONSTRUCT criterio ON a.cod_n,a.cod_grupo,a.cod_tipo,a.cod_sec,a.cod_prod
FROM cod_n,cod_grupo,cod_tipo,cod_sec,cod_prod
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, ",
" a.cod_prod,c.descripcion,c.unidad_med,a.cantidad ",
"FROM cttb00006 a,intb00001 b,cttb00001 c ",
"WHERE a.status_t is null AND b.status_t IS NULL AND c.status_t IS NULL AND ",
" a.cod_prod = c.cod_prod AND 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
DISPLAY "<< Estoy Buscando Informacion... Espere Por Favor "
AT 19,14 ATTRIBUTE (REVERSE,BOLD)
PREPARE comando FROM selec
DECLARE busco CURSOR FOR comando
OPEN busco
START REPORT reporte20 TO PIPE "lp -dcentral" #"C:\\archivo"
DISPLAY "<< Reporte Generandose ... Por Favor Espere. >>"
AT 19,14 ATTRIBUTE (REVERSE,BOLD)
WHILE STATUS != NOTFOUND
FETCH busco INTO val_rel.*
IF status = notfound THEN
EXIT WHILE
END IF
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = FALSE
RETURN
END IF
LET val_rel.codigo = val_rel.cod_n USING "&",
val_rel.cod_grupo USING "&",
val_rel.cod_tipo USING "&&",
val_rel.cod_sec USING "&&&"
OUTPUT TO REPORT reporte20(val_rel.*)
END WHILE
FINISH REPORT reporte20
CLEAR SCREEN
RUN "type C:\\archivo > %USPRINT%" END FUNCTION
REPORT reporte20(x)
DEFINE x RECORD
cod_n LIKE cttb00006.cod_n,
cod_grupo LIKE cttb00006.cod_grupo,
cod_tipo LIKE cttb00006.cod_tipo,
cod_sec LIKE cttb00006.cod_sec,
descrip_esp LIKE intb00001.descrip_esp,
cod_prod LIKE cttb00006.cod_prod,
descripcion LIKE cttb00001.descripcion,
unidad_med LIKE cttb00001.unidad_med,
cantidad LIKE cttb00006.cantidad,
codigo CHAR(7)
END RECORD,
cantidad DECIMAL(12,2)
DEFINE t_valor,valor,costo DECIMAL(12,4)
DEFINE nombre CHAR(8),
und CHAR(3) ,
doble_on CHAR(3),
doble_off CHAR(3),
negrillas_on CHAR(6),
negrillas_off CHAR(6),
comprimido_on CHAR(2),
comprimido_off,doce CHAR(3),
primera, busca,imprime CHAR(1),
hora CHAR(5),
balan_ini,canti,balance_rp DECIMAL(12,2),
entrada,salida DECIMAL(12,2)
OUTPUT
LEFT MARGIN 0
ORDER BY x.codigo
FORMAT
PAGE HEADER
LET doble_on = ASCII 001
LET doble_off = ASCII 002
LET negrillas_on = ASCII 027, ASCII 098
LET negrillas_off = ASCII 027, ASCII 099
LET comprimido_on = ASCII 31
LET comprimido_off = ASCII 029
LET doce = ASCII 030
LET hora = time
LET l = (100 - LENGTH(p_compania.nombre CLIPPED))/2
PRINT COLUMN 1, negrillas_on
PRINT COLUMN 1, "ctprrp020",
COLUMN l, p_compania.nombre CLIPPED,
COLUMN 73, "Pag. ",pageno using "<&&"
LET l = (100 - LENGTH("Sistema de Costos"))/2
PRINT COLUMN l, "Sistema de Costos",
COLUMN 73, today using "dd/mm/yy"
LET l = (100 - LENGTH("Relacion Prod. Term. y Semi-Elaborado"))/2
PRINT COLUMN l, "Relacion Prod. Term. y Semi-Elaborado",
COLUMN 76, hora
SKIP 1 LINES
PRINT COLUMN 1, "--------------------------------------------------",
"------------------------------"
PRINT COLUMN 1, "Semi-Elaborado",
COLUMN 73, "Cantidad"
PRINT COLUMN 1, "--------------------------------------------------",
"------------------------------"
BEFORE GROUP OF x.codigo
PRINT COLUMN 1, negrillas_on
PRINT COLUMN 1, x.cod_n USING "&","-",x.cod_grupo USING "&","-",
x.cod_tipo USING "&&","-",x.cod_sec USING "&&&",
" ",x.descrip_esp
PRINT COLUMN 1, negrillas_off
ON EVERY ROW
PRINT COLUMN 1, x.cod_prod USING "&&&"," ",
x.descripcion," ",x.unidad_med CLIPPED,
COLUMN 70, x.cantidad USING "##,###.####"
END REPORT