Files
MBS/PROYECTO/codir/coprrp006.4gl
T

223 lines
7.8 KiB
Plaintext

{
-------------------------------------------------------------------------------
PROGRAMA : COPRRP006
OBJETIVO : Relacion Producto Terminado - Materia Prima
PROGRAMADOR : Ing. Betania Guerrero Perez
FECHA REALIZACION : Octubre 21, 1992
-------------------------------------------------------------------------------
}
GLOBALS "coprgb000.4gl"
FUNCTION coprrp006()
DEFINE prodterm RECORD
num_formula LIKE catb00001.num_formula,
base_medida LIKE catb00002.base_medida,
cod_n_pt LIKE catb00001.cod_n_pt,
cod_grupo_pt LIKE catb00001.cod_grupo_pt,
cod_tipo_pt LIKE catb00001.cod_tipo_pt,
cod_sec_pt LIKE catb00001.cod_sec_pt,
descrip_esp LIKE intb00001.descrip_esp,
cod_n_mp LIKE catb00001.cod_n_mp,
cod_grupo_mp LIKE catb00001.cod_grupo_mp,
cod_tipo_mp LIKE catb00001.cod_tipo_mp,
cod_sec_mp LIKE catb00001.cod_sec_mp,
cantidad LIKE catb00001.cantidad
END RECORD
DEFINE codigo CHAR(7)
WHENEVER ERROR CONTINUE
OPTIONS
FORM LINE 8,
ERROR LINE 23,
COMMENT LINE 21
OPEN FORM cofmrp006 FROM "cofmrp006"
DISPLAY FORM cofmrp006
CALL pantalla()
DISPLAY "coprrp006" AT 4,3
DISPLAY "Producto Terminado - Materia Prima" AT 6,23
LET tipo_papel = 1
CALL msgrp000(tipo_papel)
CONSTRUCT criterio ON a.num_formula,a.cod_n_pt,a.cod_grupo_pt,
a.cod_tipo_pt,a.cod_sec_pt
FROM num_formula,cod_n_pt,cod_grupo_pt,cod_tipo_pt,
cod_sec_pt
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = false
RETURN
END IF
LET SELEC =
"SELECT a.num_formula,e.base_medida,a.cod_n_pt,a.cod_grupo_pt, ",
" a.cod_tipo_pt,a.cod_sec_pt,b.descrip_esp,a.cod_n_mp, ",
" a.cod_grupo_mp,a.cod_tipo_mp,a.cod_sec_mp,a.cantidad ",
"FROM catb00001 a,intb00001 b,intb00002 c,iptb00002 d,catb00002 e ",
"WHERE a.num_formula = e.num_formula AND a.cod_n_pt = d.cod_n AND ",
" a.cod_grupo_pt= d.cod_grupo AND a.cod_tipo_pt= d.cod_tipo AND ",
" a.cod_sec_pt = d.cod_sec AND a.cod_n_pt = b.cod_n AND ",
" a.cod_grupo_pt = b.cod_grupo AND a.cod_tipo_pt=b.cod_tipo AND ",
" a.cod_sec_pt = b.cod_sec AND a.cod_n_mp = c.cod_n AND ",
" a.cod_grupo_mp = c.cod_grupo AND a.cod_tipo_mp = c.cod_tipo AND ",
" a.cod_sec_mp = c.cod_sec AND a.status_t is null AND ",
criterio clipped," ORDER BY 3,4,5,6,8,9,10,11"
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = false
RETURN
END IF
DISPLAY "Buscando Informacion ... Espere Por Favor" AT 19,14
ATTRIBUTE (REVERSE,BOLD)
PREPARE busca FROM selec
CALL integridad()
IF bandera = 1 THEN
LET bandera = 0
RETURN
END IF
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = false
RETURN
END IF
DISPLAY " " AT 19,14
DISPLAY "<< Reporte Generandose ... Por Favor Espere. >>"
AT 19,14 ATTRIBUTE (REVERSE)
DECLARE accion CURSOR FOR busca
START REPORT producto TO "C:\\archivo"
FOREACH accion INTO prodterm.*
LET codigo = prodterm.cod_n_pt using "&",prodterm.cod_grupo_pt using "&",
prodterm.cod_tipo_pt using "&&",prodterm.cod_sec_pt using "&&&"
OUTPUT TO REPORT producto(prodterm.*,codigo)
END FOREACH
FINISH REPORT producto
CLEAR SCREEN
RUN "type C:\\archivo > %USPRINT%" END FUNCTION
REPORT producto(x,q_codigo)
DEFINE x RECORD
num_formula LIKE catb00001.num_formula,
base_medida LIKE catb00002.base_medida,
cod_n_pt LIKE catb00001.cod_n_pt,
cod_grupo_pt LIKE catb00001.cod_grupo_pt,
cod_tipo_pt LIKE catb00001.cod_tipo_pt,
cod_sec_pt LIKE catb00001.cod_sec_pt,
descrip_esp LIKE intb00001.descrip_esp,
cod_n_mp LIKE catb00001.cod_n_mp,
cod_grupo_mp LIKE catb00001.cod_grupo_mp,
cod_tipo_mp LIKE catb00001.cod_tipo_mp,
cod_sec_mp LIKE catb00001.cod_sec_mp,
cantidad LIKE catb00001.cantidad
END RECORD,
q_codigo CHAR(7)
DEFINE bandera,bandera1 CHAR(1)
DEFINE total_formula SMALLINT
DEFINE doble_on CHAR(2)
DEFINE doble_off CHAR(2)
DEFINE negrillas_on CHAR(2)
DEFINE negrillas_off CHAR(2)
DEFINE comp_on CHAR(2)
DEFINE comp_off CHAR(2)
DEFINE doce CHAR(2)
DEFINE normal CHAR(2)
DEFINE hora CHAR(5)
OUTPUT
TOP MARGIN 0
LEFT MARGIN 2
BOTTOM MARGIN 2
ORDER BY q_codigo,x.cod_n_mp,x.cod_grupo_mp,x.cod_tipo_mp,x.cod_sec_mp,
x.num_formula
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 comp_on = ASCII 15
LET comp_off = ASCII 18
LET doce = ASCII 27, ASCII 77
LET normal = ASCII 27, ASCII 80
LET bandera1 = "N"
LET hora = time
LET l = (139 - LENGTH(p_companias.nombre CLIPPED))/2
PRINT COLUMN 3, comp_on,negrillas_on
PRINT COLUMN 1, "coprrp006",
COLUMN l, p_companias.nombre CLIPPED,
COLUMN 132, "Pag. ",pageno using "###"
PRINT COLUMN 60, "Sistema de Compras",
COLUMN 132, today using "dd/mm/yy"
PRINT COLUMN 54, "Producto Terminado - Materia Prima",
COLUMN 135, hora
SKIP 1 LINES
PRINT COLUMN 1, "--------------------------------------------------",
"--------------------------------------------------",
"---------------------------------------"
PRINT COLUMN 11, "Base de"
PRINT COLUMN 1, "Formula",
COLUMN 11, "Medida",
COLUMN 23, "Producto Terminado",
COLUMN 69, "Materia Prima",
COLUMN 118, "Und",
COLUMN 132, "Cantidad"
PRINT COLUMN 1, "--------------------------------------------------",
"--------------------------------------------------",
"---------------------------------------"
SKIP 1 LINE
BEFORE GROUP OF q_codigo
PRINT COLUMN 1, negrillas_on,
COLUMN 3, x.num_formula using "##",
COLUMN 11, x.base_medida using "#########",
COLUMN 23, x.cod_n_pt using "&","-",x.cod_grupo_pt using "&","-",
x.cod_tipo_pt using "&&","-",x.cod_sec_pt using "&&&",
" ",x.descrip_esp,
COLUMN 73, negrillas_off
ON EVERY ROW
SELECT descrip_esp,unidad_med INTO descrip3,unidad FROM intb00001
WHERE cod_n = x.cod_n_mp AND cod_grupo = x.cod_grupo_mp AND
cod_tipo = x.cod_tipo_mp AND cod_sec = x.cod_sec_mp
PRINT COLUMN 69, x.cod_n_mp USING "&","-",x.cod_grupo_mp USING "&","-",
x.cod_tipo_mp USING "&&","-",x.cod_sec_mp USING "&&&",
" ",descrip3,
COLUMN 118, unidad,
COLUMN 128, x.cantidad USING "###,###.####"
LET bandera = "N"
ON LAST ROW
PRINT comp_off
END REPORT