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

233 lines
7.0 KiB
Plaintext

{
-------------------------------------------------------------------------------
PROGRAMA : COPRRP014
OBJETIVO : Reporte Poliza de Seguros
PROGRAMADOR : Ing. Betania Guerrero Perez
FECHA REALIZACION : Marzo 11, 1993
-------------------------------------------------------------------------------
}
GLOBALS "coprgb000.4gl"
FUNCTION coprrp014()
DEFINE poliza RECORD
cod_n LIKE cotb00017.cod_n,
cod_grupo LIKE cotb00017.cod_grupo,
cod_tipo LIKE cotb00017.cod_tipo,
cod_sec LIKE cotb00017.cod_sec,
descrip_esp LIKE intb00001.descrip_esp,
procedencia LIKE cotb00017.procedencia,
nom_pt LIKE cotb00019.nom_pt,
seguro LIKE cotb00017.seguro,
via_t LIKE cotb00017.via_t,
cod_pt LIKE cotb00017.cod_pt,
codigo CHAR(7)
END RECORD
#WHENEVER ERROR CONTINUE
OPTIONS
FORM LINE 9,
ERROR LINE 23,
COMMENT LINE 21
CLEAR SCREEN
OPEN FORM cofmrp014 FROM "cofmrp014"
DISPLAY FORM cofmrp014
CALL pantalla()
DISPLAY "coprrp014" AT 4,3
DISPLAY "Poliza de Seguros" AT 6,31
## Chequea que el papel para la impresion sea el indicado
LET tipo_papel = 1
CALL msgrp000(tipo_papel)
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = FALSE
RETURN
END IF
## Aqui se prepara el criterio de seleccion
CONSTRUCT criterio ON c.cod_n,c.cod_grupo,c.cod_tipo,c.cod_sec
FROM cod_n,cod_grupo,cod_tipo,cod_sec
LET SELEC =
"SELECT c.cod_n,c.cod_grupo,c.cod_tipo,c.cod_sec,c.descrip_esp, ",
" a.procedencia,b.nom_pt,a.seguro,a.via_t,a.cod_pt ",
"FROM intb00001 c, OUTER (cotb00019 b,cotb00017 a) ",
"WHERE 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 ",
" a.cod_pt = b.cod_pt AND a.status_t is NULL AND ",
criterio clipped
DISPLAY "<< Buscando Informacion ... Espere Por Favor. >>"
AT 19,14 ATTRIBUTE (REVERSE,BOLD)
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = FALSE
RETURN
END IF
## Verifica si el usuario presiono la tecla <Supr>
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
DECLARE accion CURSOR FOR busca
DISPLAY "<< Reporte Generandose ... Por Favor Espere. >>"
AT 19,14 ATTRIBUTE (REVERSE)
START REPORT seguro TO "C:\\archivo"
FOREACH accion INTO poliza.*
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET numero_msg = FALSE
RETURN
END IF
LET poliza.codigo=poliza.cod_n USING "&",poliza.cod_grupo USING "&",
poliza.cod_tipo USING "&&",poliza.cod_sec USING "&&&"
OUTPUT TO REPORT seguro(poliza.*)
END FOREACH
FINISH REPORT seguro
CLEAR SCREEN
RUN "type C:\\archivo > %USPRINT%" END FUNCTION
REPORT seguro(x)
DEFINE x RECORD
cod_n LIKE cotb00017.cod_n,
cod_grupo LIKE cotb00017.cod_grupo,
cod_tipo LIKE cotb00017.cod_tipo,
cod_sec LIKE cotb00017.cod_sec,
descrip_esp LIKE intb00001.descrip_esp,
procedencia LIKE cotb00017.procedencia,
nom_pt LIKE cotb00019.nom_pt,
seguro LIKE cotb00017.seguro,
via_t LIKE cotb00017.via_t,
cod_pt LIKE cotb00017.cod_pt,
codigo CHAR(7)
END RECORD
DEFINE nombre_via CHAR(30)
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 normal CHAR(2)
DEFINE doce CHAR(2)
DEFINE hora CHAR(5)
OUTPUT
LEFT MARGIN 1
ORDER BY x.codigo
## Prepara el formato de impresion para el encabezado y el detalle
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 normal = ASCII 27, ASCII 80
LET doce = ASCII 27, ASCII 77
LET hora = time
LET l = (137 - LENGTH(p_companias.nombre CLIPPED))/2
PRINT COLUMN 1, comp_on,negrillas_on
PRINT COLUMN 1, "coprrp014",
COLUMN l, p_companias.nombre CLIPPED,
COLUMN 130, "Pag. ", pageno using "###"
PRINT COLUMN 46, " Sistema de Compras",
COLUMN 130, today using "dd/mm/yy"
PRINT COLUMN 46, " Poliza de Seguros",
COLUMN 133, hora
PRINT COLUMN 1, "---------------------------------------------------",
"---------------------------------------------",
"------------------------------------------"
PRINT COLUMN 2, "Material",
COLUMN 15, "Descripcion",
COLUMN 48, "Procedencia",
COLUMN 81, "Puerto",
COLUMN 114, "Via",
COLUMN 132, "Seguro"
PRINT COLUMN 1, "---------------------------------------------------",
"---------------------------------------------",
"------------------------------------------"
PRINT COLUMN 1, negrillas_off
BEFORE GROUP OF x.codigo
PRINT COLUMN 2, x.cod_n USING "&","-",
COLUMN 4, x.cod_grupo USING "&","-",
COLUMN 6, x.cod_tipo USING "&&","-",
COLUMN 9, x.cod_sec USING "&&&",
COLUMN 15, x.descrip_esp clipped;
ON EVERY ROW
IF x.via_t IS NULL THEN
LET nombre_via = NULL
END IF
IF x.via_t IS NOT NULL THEN
IF x.via_t = "01" THEN
LET nombre_via = "MARITIMA"
END IF
IF x.via_t = "O2" THEN
LET nombre_via = "AEREA"
END IF
IF x.via_t = "03" THEN
LET nombre_via = "TERRESTRE"
END IF
END IF
PRINT COLUMN 48, x.procedencia clipped,
COLUMN 81, x.nom_pt clipped,
COLUMN 114, nombre_via clipped;
IF x.seguro IS NOT NULL THEN
PRINT COLUMN 131, x.seguro USING "###.##","%"
ELSE
PRINT COLUMN 131, " "
END IF
AFTER GROUP OF x.codigo
SKIP 1 LINE
ON LAST ROW
PRINT COLUMN 1, comp_off
END REPORT